Commit Graph

186 Commits

Author SHA1 Message Date
Sebastian Lackner 8f8626feef services: Implement functionality to transfer extra data when sending service control.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-10 16:17:29 +09:00
Sebastian Lackner 5f2b96b859 services: Preparation to allow arbitrary data in service RPC messages.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-10 16:16:04 +09:00
Sebastian Lackner 37097ce95c services: Track services and processes separately.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-21 16:25:58 +09:00
Sebastian Lackner 72ae095d75 services: Change scmdatabase_remove_service to a void function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-20 21:51:42 +09:00
Sebastian Lackner 168af6e750 services: Hold a reference to process in svcctl_ControlService.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:11 +09:00
Sebastian Lackner 4f3f502886 services: Improve implementation of service_get_pipe_name.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-19 21:06:11 +09:00
Sebastian Lackner ce07a77610 services: Initialize environment block immediately after startup.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-15 17:57:10 +09:00
Sebastian Lackner ed54b88173 services: Pass a process argument to wait_for_startup function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:42 +09:00
Sebastian Lackner fa593d4d87 services: Pass a process argument to send_control function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:42 +09:00
Sebastian Lackner 7e2176459d services: Pass a process argument to send_start_message function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:42 +09:00
Sebastian Lackner 6617ff24f2 services: Introduce refcounting for processes.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:42 +09:00
Sebastian Lackner 7fc3107b4c services: Initialize service ref_count directly in service_create.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Sebastian Lackner 38a09f9c7b services: Hold scmdatabase lock while checking marked_for_delete.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Sebastian Lackner 4a3d712608 services: Fix a typo.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-16 21:59:41 +09:00
Sebastian Lackner 7fc3f72de7 services: Move process related fields into a separate struct.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:59 +09:00
Sebastian Lackner 00b1184f10 services: Store a separate variable instead of clearing control_mutex.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:57 +09:00
Sebastian Lackner d98194e791 services/tests: Initialize critical section just once.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:42 +09:00
Sebastian Lackner a80c0d3cf2 services/tests: Consistently terminate service_{ok,trace} strings with linebreak.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-03 15:26:39 +09:00
Sebastian Lackner 6780c20342 services: Fix calculation of service timeout.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-02 23:29:02 +09:00
Sebastian Lackner 4931f5fbe9 services: Get rid of unnecessary locks.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-02 23:29:00 +09:00
Sebastian Lackner 34fd639801 services: Do not distinguish between shared/exclusive lock.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-02 23:28:58 +09:00
Sebastian Lackner 0819c739ec services: Remove pipe argument from service_send_command function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-02 23:28:55 +09:00
Sebastian Lackner 20633b292b services: Consistently use InterlockedIncrement to increment refcount.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-02 23:28:53 +09:00
Sebastian Lackner 94fb7c3b8b services: Start SERVICE_FILE_SYSTEM_DRIVER services with winedevice.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-16 14:46:26 +09:00
André Hentschel 67e5e8edf6 services: Fix access adjustment by reordering code (Clang).
Signed-off-by: André Hentschel <nerv@dawncrow.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-24 11:59:20 +01:00
Nikolay Sivov ebbb8fa5da services: Fix GetNotifyResults() prototype. 2015-03-05 21:17:56 +09:00
Nikolay Sivov 38bba54f32 services: Locate service image in proper system dir for WOW64 case. 2015-03-02 23:00:32 +09:00
Francois Gouget 123cfee93c services: Fix compilation on systems that don't support nameless unions. 2015-03-02 13:49:13 +09:00
Nikolay Sivov 1896064332 services: Mark WOW64 services in registry. 2015-02-27 14:20:25 +09:00
Nikolay Sivov daf0af4313 advapi32: Forward to CreateServiceWOW64W() when appropriate. 2015-02-27 14:20:25 +09:00
Nikolay Sivov 0f80d4b619 services: Make RPC interface compatible with native. 2015-02-27 14:20:24 +09:00
Andrew Eikum 1e783dbfaa services: Monitor process handles for process quit. 2015-02-26 23:04:55 +09:00
Nikolay Sivov c0b0d3b4e2 services: Pass resume index to server. 2015-02-25 20:35:23 +09:00
Nikolay Sivov 3c186a65d3 services: Make ChangeServiceConfig2W() rpc call compatible with native one. 2015-02-25 20:35:23 +09:00
Andreas Mohr 6a86e2e983 kernel32: Fix naming/spelling/typo of macro to HasOverlappedIoCompleted(). 2014-08-04 19:28:04 +02:00
Nikolay Sivov 6a4c146962 services: Defer service delete until all handles are closed. 2014-06-12 18:24:17 +02:00
Nikolay Sivov fdbd8ffffc services: Remove loop that's not really used anymore (Coverity). 2014-04-21 10:40:40 +02:00
Jacek Caban 98e9e4a3b0 services: Skip tests if OpenSCManager failed.
This should also fix failures on VMs with insufficient privileges.
2014-04-08 19:23:25 +02:00
Nikolay Sivov 5300364dfd services: Remove redundant error code check (Coverity). 2014-04-07 15:34:36 +02:00
Alexandre Julliard 99ef0d6ff0 makefiles: Get rid of the MAKE_TEST_RULES variable. 2014-01-02 12:13:16 +01:00
Alexandre Julliard 86b1f94d28 makefiles: Get rid of the MAKE_PROG_RULES variable. 2014-01-02 12:12:57 +01:00
Alexandre Julliard d08ff3ff19 makefiles: Use a single variable for all types of idl files. 2013-12-31 18:15:17 +01:00
Alexandre Julliard c3a48aab20 makefiles: Add makedep pragmas for client and server idl files. 2013-11-05 20:38:18 +01:00
Michael Stefaniuc ba3f11023f services/tests: Compile with -D__WINESRC__. 2013-10-16 11:41:20 +02:00
Frédéric Delanoy debd1346b0 services: Use BOOL type where appropriate. 2013-10-09 10:09:00 +02:00
Michael Stefaniuc 0e681027a2 tests: Compile the tests by default with -D__WINESRC__. 2013-10-02 11:04:02 +02:00
Marcus Meissner d82de9b9a7 services: Fix handle leak for service handles (Coverity). 2013-05-28 14:33:30 +02:00
Francois Gouget cbeae4ca3d services: Fix compilation on systems that don't support nameless unions. 2012-10-29 10:41:16 +01:00
Piotr Caban afc4284d05 services: Added tests for service thread termination without setting service state to stopped. 2012-10-22 16:22:20 +02:00
Piotr Caban 522bc15b45 services: Kill service thread after timeout so it can terminate cleanly. 2012-10-22 16:19:53 +02:00
Jacek Caban cea783ddda services: Fixed memory leak. 2012-10-09 16:12:30 +02:00
Jacek Caban 52363aef65 advapi32: Pass service name as argv[0] to ServiceMain. 2012-06-15 18:35:42 +02:00
Jacek Caban d0244d761d services.exe: Added tests. 2012-06-15 18:35:42 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
André Hentschel e7f414556e services: Remove unneeded shadow variable. 2012-04-18 17:13:26 +02:00
Alexandre Julliard 154aef98d8 services: Don't close the overlapped event when terminating a service.
An overlapping I/O operation may still be in progress.
2012-02-08 13:19:04 -06:00
Alexandre Julliard c9eee73450 makefiles: Define __WINESRC__ when building programs. 2012-01-23 16:07:37 +01:00
Alexandre Julliard da35622b83 makefiles: Disable use of Unicode macros globally for all the programs. 2012-01-20 13:14:16 +01:00
Piotr Caban c21ede4474 services: Terminate service when its status is set to SERVICE_STOPPED. 2011-12-12 15:50:41 +01:00
Piotr Caban 01ef66cb1e services: Move service cleanup code to separate function. 2011-12-12 15:50:40 +01:00
Piotr Caban bc866c899f services: Don't close control_pipe when SERVICE_CONTROL_STOP is sent.
This prevents service_control_dispatcher from being stopped. Thanks to
it the service may continue to work and do the clean up.
2011-12-12 15:50:40 +01:00
Piotr Caban b9797b5caa services: Check process status to determine if service has terminated. 2011-12-12 15:50:39 +01:00
Piotr Caban c11e163eb7 services: Fix SERVICE_STATUS initialization in svcctl_ControlService. 2011-12-12 15:50:39 +01:00
Piotr Caban c368e55196 services: Set result inside service_send_command. 2011-12-09 21:15:30 +01:00
Piotr Caban 8e915c51e1 services: Accept SERVICE_START_PENDING as valid service start status. 2011-12-09 21:15:29 +01:00
Piotr Caban 60a273569c services: Wait for all services to terminate before exiting. 2011-11-30 16:32:17 +01:00
Piotr Caban b8704a4929 services: Added support for SERVICE_CONFIG_PRESHUTDOWN_INFO. 2011-11-30 16:31:47 +01:00
Piotr Caban 8141fb80eb services: Create service environment when first service is started. 2011-11-15 19:37:33 +01:00
Francois Gouget 97ab9cc7e5 services: Give a name to the scmdatabase critical section. 2011-10-27 14:20:51 +02:00
Francois Gouget d494733353 services: Issue a fixme when a service fails to start. 2011-09-08 20:08:06 +02:00
Francois Gouget fe3f2e3258 services: If a service is not started, then say so when ControlService() is called on it. 2011-08-30 11:47:37 +02:00
Francois Gouget eafb44d4e1 services: Refuse to start disabled services. 2011-08-30 11:47:35 +02:00
Francois Gouget 9183a171f1 services: Cleanup when a service fails to start so it is still fully considered to be stopped. 2011-08-30 11:47:32 +02:00
Alexandre Julliard 717bd66440 widl: Default to the cdecl calling convention in client/server functions. 2011-06-13 11:53:28 +02:00
Alexandre Julliard f51668fdf9 services: Add a timeout to all pipe communications with the service process. 2011-05-20 12:34:39 +02:00
Alexandre Julliard c9dc9a1063 services: Load some timeout parameters from the registry. 2011-05-20 12:33:58 +02:00
Alexandre Julliard 0c1c1fc20d services: Add a helper function to send a command to the service. 2011-05-20 12:32:32 +02:00
Eric Pouech 0b9ddd1ce4 services: Be sure to unlock the current database in all error cases in service_start_process. 2011-04-25 11:38:44 +02:00
Francois Gouget ba3542bca7 services: Make find_service_by_group() static. 2011-03-16 14:14:23 +01:00
André Hentschel 7abdbe62d1 services: Mention the unkown type in the error message. 2010-11-02 11:16:32 +01:00
Hans Leidekker 7135ac7641 advapi32: Implement EnumServicesStatusExA/W. 2010-10-29 14:33:57 +02:00
Hans Leidekker ae7d41bfa2 advapi32: Implement EnumServicesStatusA/W. 2010-10-27 13:31:04 +02:00
Hans Leidekker e01455d41d services: Support setting and changing service dependencies. 2010-10-22 12:06:24 +02:00
Hans Leidekker eae2cf56cb services: Save service dependencies. 2010-10-22 12:06:15 +02:00
Alexandre Julliard 81b8ee863e makefiles: Add a standard header for all makefiles to replace the common variable initializations. 2010-09-19 12:36:48 +02:00
Alexandre Julliard 6fb39dfe4a programs: Remove explicit imports of kernel32 and ntdll. 2010-07-21 17:38:37 +02:00
Alexandre Julliard 3f6f036b4d services: Start the 32-bit winedevice.exe for 32-bit kernel drivers. 2010-06-01 13:38:21 +02:00
Mikhail Maroukhine 93d9d8a3af programs: Fix compiler warnings with flag -Wcast-qual. 2010-03-29 12:18:48 +02:00
Alexandre Julliard bef5645eb1 makefiles: Remove the no longer needed explicit separators for dependencies. 2010-03-16 13:28:19 +01:00
Paul Chitescu 910b191574 services.exe: Reduce Registry access to KEY_READ or MAXIMUM_ALLOWED wherever possible. 2009-12-07 14:51:05 +01:00
Eric Pouech 7cdf3389dd services: Correctly store the service's PID upon startup. 2009-08-29 17:11:19 +02:00
Paul Chitescu 8fd619618f services.exe: When asked to search by display name skip NULL names. 2009-07-01 14:53:13 +02:00
Paul Vriens 76c0babdcf services: Fix a typo. 2009-04-29 13:08:45 +02:00
Rob Shearman 286dc62e34 services: Always initialise the out buffer in svcctl_QueryServiceStatusEx and svcctl_QueryServiceConfig2W. 2009-03-24 13:11:53 +01:00
Rob Shearman 1c89dacf9c services: svcctl_GetServiceDisplayNameW and svcctl_GetServiceKeyNameW should have string attribute on output buffer.
They also should not have two parameters for specifying the size of the buffer.

The buffer size should also not include in the nul-terminating character.
2009-03-24 13:11:41 +01:00
Rob Shearman 8f07e6932b services: Add a ref count to the service entry in svcctl_CreateServiceW.
The ref count will be released by SC_RPC_HANDLE_destroy when the
returned handle is destroyed.

Change svcctl_OpenServiceW to use InterlockedIncrement to increment
the ref count since the service is in the database and therefore could
be shared and SC_RPC_HANDLE_destroy doesn't take the scmdatabase lock
when decrementing the ref count.
2009-03-24 13:10:57 +01:00
Marcus Meissner 2c7ac13662 services: Handle realloc failures better (Coverity). 2009-02-02 15:21:43 +01:00
Rob Shearman d3085abc08 Change parameter type from size_t to SIZE_T for MIDL_user_allocate. 2009-02-02 11:55:21 +01:00
Michael Stefaniuc 24c4f1de95 services: Remove superfluous pointer casts. 2009-01-29 14:06:11 +01:00
Alexandre Julliard 746948551a services: Add stub implementation for SERVICE_CONFIG_FAILURE_ACTIONS in ChangeServiceConfig2W. 2009-01-27 11:27:45 +01:00