Commit Graph

206 Commits

Author SHA1 Message Date
Sebastian Lackner f628cbbaa1 services: Add a separate winedevice service for each kernel driver.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 21:21:29 +09:00
Sebastian Lackner b783f207fe services: Do not create environment block before first service startup.
This basically reverts ce07a77610.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-01 20:47:51 +09:00
Sebastian Lackner 1c5affa205 advapi32: Unify service startup and control handling.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-31 22:22:59 +09:00
Sebastian Lackner 328fbb6880 services/tests: Add test for passing arguments to a service.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-31 22:22:58 +09:00
Sebastian Lackner bc8f74f92f services: Remove synchronization for CloseThreadpoolCleanupGroupMembers.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-22 12:51:30 +09:00
Sebastian Lackner 039471ec37 services: Allocate a separate status_changed_event for each service.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-19 15:31:43 +09:00
Sebastian Lackner 51f36c220e services: Return an error instead of BOOL from process_send_start_message.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-19 15:31:41 +09:00
Sebastian Lackner 9dfa1022e9 services: Use threadpool API instead of custom wait implementation.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:14 +09:00
Sebastian Lackner 6fc42341ec services: Sort autostart services by dwTagId config value.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:14 +09:00
Sebastian Lackner 4c01feb714 services: Hold startup lock before calling service_start.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:14 +09:00
Sebastian Lackner 36ccc45db6 services: Track number of services per process.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:13 +09:00
Sebastian Lackner b08ce1ae80 services: WaitForSingleObject returns a DWORD result.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 20:38:13 +09:00
Sebastian Lackner 46a974856f services: Add a grab_service function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-18 00:09:36 +09:00
Sebastian Lackner 049ac1d827 services: Hold an additional process reference while waiting for startup.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:45:10 +09:00
Sebastian Lackner cafcf6448f services: Remove service_terminate function.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:45:04 +09:00
Sebastian Lackner 5137bfd4ba services: Ignore error in callback only for ControlService requests.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:44:50 +09:00
Sebastian Lackner fac8ec9389 services: Unlink process immediately after service stopped.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:44:30 +09:00
Sebastian Lackner 46b2746938 services: Store process id in the process object.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:43:25 +09:00
Sebastian Lackner c8187d62f8 services: Fix leak of process object in process_terminate.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-11 14:42:41 +09:00
Sebastian Lackner cbc5de1c5f services: Fix handling of user defined service controls.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-10 22:25:09 +09:00
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