Commit Graph

236 Commits

Author SHA1 Message Date
Alexandre Julliard 9bb129d17b advapi32: Silence the pipe read error in the normal case. 2008-03-31 17:26:07 +02:00
Rob Shearman b8348b95a6 services: Remove dependency on service name being determined correctly in order for the two ends on the control pipe to meet up.
Instead use the mechanism used by native which uses 
\\.\pipe\net\NtControlPipeN.

Also remove the service startup event set by StartServiceCtrlDispatcher 
as we wait for the service status to change instead.
2008-03-29 11:51:39 +01:00
Rob Shearman 9a6fc01d84 services: Move ControlService and StartServiceW from advapi32.dll to services.exe.
This also changes the architecture such that services.exe is the server 
end of the control pipe and the service is the client end.
2008-03-29 11:51:34 +01:00
Rob Shearman 7afd9a977a services: Move LockServiceDatabase and UnlockServiceDatabase from advapi32.dll to services.exe. 2008-03-29 11:51:01 +01:00
Rob Shearman b48714b148 services: Move SetServiceStatus and QueryServiceStatusEx to services.exe. 2008-03-29 11:50:57 +01:00
Mikołaj Zalewski 010dcb168b services: Move GetServiceDisplayName to services.exe and implement GetServiceKeyName. 2008-03-29 11:17:33 +01:00
Mikołaj Zalewski 76d4eeebff services: Move ChangeServiceConfigW implementation from advapi32.dll to services.exe. 2008-03-29 11:17:07 +01:00
Mikołaj Zalewski a363b9a066 services: Move QueryServiceConfigW from advapi32.dll to services.exe. 2008-03-29 11:16:43 +01:00
Mikołaj Zalewski a2156fc348 services: Move CreateService, OpenService and DeleteService implementations from advapi32.dll to services.exe. 2008-03-29 11:15:59 +01:00
Mikołaj Zalewski 4275fbf603 services: Start a local RPC server. 2008-03-29 11:15:05 +01:00
Austin English 06d429d6b6 Spelling fixes. 2008-03-27 20:48:19 +01:00
Stefan Leichter 6cb602c6db advapi32: Partly implemented QueryServiceConfig2A/W. 2008-03-26 14:13:07 +01:00
Paul Vriens e92121d41e advapi/service: Give service its own debug channel. 2008-03-14 11:21:53 +01:00
Maarten Lankhorst 284f86183c advapi: Check if service really exists before bombing out in CreateService. 2008-02-22 11:55:12 +01:00
Rob Shearman b2f4c7737b advapi32: Fix the size calculation in StartServiceW.
Calculating an open-ended structure using sizeof doesn't yield an 
accurate size because of alignment.
2008-02-04 13:03:16 +01:00
Paul Chitescu 038c3a264b advapi32: Accept a NULL lpServiceStatus in ControlService. 2008-01-10 12:07:22 +01:00
Alexandre Julliard 781c3b9c6a advapi32: Fix the length written to the pipe for the start message. 2008-01-07 12:18:11 +01:00
Alexandre Julliard 3133280d08 advapi32: Don't wait for 20 seconds if a service fails to start. 2008-01-04 12:50:11 +01:00
Alexandre Julliard 7593fac632 advapi32: Start non-interactive services in a separate window station. 2007-12-20 16:44:36 +01:00
Alexandre Julliard eb2d8458a3 advapi32: Move the EnumDependentServicesA/W stubs in service.c where they belong.
Make the stubs return success.
2007-12-20 15:00:42 +01:00
Alexandre Julliard c673b2284d advapi32: Return from StartServiceCtrlDispatcher when all services are stopped. 2007-12-19 18:28:20 +01:00
Alexandre Julliard a12b9c52da advapi32: Replace the list of services with an array. 2007-12-19 17:02:12 +01:00
Alexandre Julliard 1f11ad8288 advapi32: Use exponential backoff when waiting for a service to start. 2007-12-19 15:07:20 +01:00
Alexandre Julliard 865bb0a67a advapi32: Reimplement RegisterServiceCtrlHandler on top of RegisterServiceCtrlHandlerEx. 2007-12-19 15:05:04 +01:00
Tim Schwartz 65d2f8a68d advapi32: service_control_dispatcher(): Fixed invalid pipe test to display GetLastError() before it gets overwritten. 2007-12-05 13:47:00 +01:00
Gerald Pfeifer f874126bec advapi32: Remove untriggerable check. 2007-11-19 13:51:45 +01:00
Louis Lenders 22e9da0dd7 advapi32: Improve stub for EnumServicesStatusExA a bit. 2007-10-15 16:56:11 +02:00
Mikolaj Zalewski a8b8ddd865 advapi32: Fix GetServiceDisplayNameA for cchBuffer == 0. 2007-09-28 11:30:00 +02:00
Mikolaj Zalewski 2ba324738d advapi32: The lpServiceStartName should default to LocalSystem for Win32 services. 2007-09-27 12:49:35 +02:00
Christian Gmeiner bb3a968d30 advapi32: fix some compiler warnings when using -Wsign-compare. 2007-09-25 14:12:46 +02:00
Mikolaj Zalewski c5c0a26f60 advapi32: QueryObjectSecurity should return a self-relative security descriptor and not overflow the buffer. 2007-09-18 10:47:50 +02:00
Lionel Debroux 82ef8d7239 advapi32: Replace SERV_free by HeapFree. 2007-09-12 14:09:17 +02:00
Mikolaj Zalewski ec58b4485a advapi32: Obtain the process id locally. 2007-08-23 13:35:41 +02:00
Mikolaj Zalewski 346fbb32e1 advapi32: Return an error if we try to start an already running service. 2007-08-23 13:35:34 +02:00
Paul Vriens 9b8e9516ab advapi32/service: Be a bit more consistent. 2007-07-30 14:59:20 +02:00
Paul Vriens 9c2d8c73aa advapi32/service: Fix GetServiceDisplayNameA for service with no displayname. 2007-07-30 14:59:13 +02:00
Paul Vriens 07af2fe2b5 advapi32/service: Set correct error when the service doesn't exist. 2007-07-30 14:46:14 +02:00
Paul Vriens dc6653887c advapi32/service: Fix buffersize calculations for GetServiceDisplayNameW. 2007-07-27 12:50:31 +02:00
Paul Vriens 95d2f04611 advapi32/service: Forward GetServiceDisplayNameA to GetServiceDisplayNameW. 2007-07-27 12:50:19 +02:00
Paul Vriens 83d8cbcc48 advapi32/service: Handle is checked before servicename. 2007-07-24 11:26:00 +02:00
Paul Vriens 4c24492d31 advapi32/service: lpBinaryPathName is mandatory. 2007-07-20 11:45:09 +02:00
Paul Vriens af27e2159f advapi32/service: Some tests for DeleteService. 2007-07-19 11:57:01 +02:00
Paul Vriens f8f6340a69 advapi32/service: Check for duplicate displayname. 2007-07-19 11:56:39 +02:00
Paul Vriens 6c63fa627e advapi32/service: Check combination of service-type and start-type. 2007-07-16 22:47:09 +02:00
Paul Vriens f09359cda4 advapi/service: Check servicetype and starttype. 2007-07-13 12:28:25 +02:00
Paul Vriens d470e688c4 advapi/service: Create specific access rights for service handles. 2007-07-13 12:27:40 +02:00
Paul Vriens 137eb037b9 advapi/service: Check for empty servicename and binaryname. 2007-07-12 12:58:29 +02:00
Paul Vriens c011369aab advapi/service: Check if we have enough access rights to create a service. 2007-07-12 12:58:16 +02:00
Paul Vriens 5dab8935b9 advapi/service: First tests (and fixes) for CreateService. 2007-07-12 12:58:08 +02:00
Paul Vriens 13b3b724c6 advapi/service: Fix possible handle leak. 2007-07-12 12:57:47 +02:00
Paul Vriens 05fec6c871 advapi/service: Simplify DeleteService by using RegDeleteTree. 2007-07-12 12:57:41 +02:00
Paul Vriens 14ab7d766f advapi32: Create specific access rights for service control manager handles. 2007-07-11 11:59:39 +02:00
Paul Vriens 06d6a03d45 advapi32: Handle to Service Control Manager is checked first. 2007-07-09 12:16:52 +02:00
Paul Vriens ff62d6cf42 advapi32/service: Don't rely blindly on type. 2007-06-28 11:00:35 +02:00
Paul Vriens 9c6a5dfa85 advapi32/service: Make sure we fill all struct members. 2007-06-28 11:00:23 +02:00
Paul Vriens dcef0bbf71 advapi32/service: Return (more) correct needed buffersize. 2007-06-27 14:32:28 +02:00
Paul Vriens 169af787d2 advapi32/service: Fix wrong key. 2007-06-27 14:32:28 +02:00
Paul Vriens 160b55cb2a advapi32/service: Use the correct registry key for the service account. 2007-06-27 14:32:27 +02:00
Alexandre Julliard 9aa4235117 advapi32: Mark service processes as system processes, and exit when all user processes are done. 2007-06-06 20:33:30 +02:00
Alexandre Julliard 84918394d2 advapi32: Convert the service list to a standard list. 2007-06-05 13:47:35 +02:00
Rolf Kalbermatter 2e67fa32b1 advapi32: Return error on NULL service name to GetServiceDisplayNameA/W. 2007-05-21 19:11:08 +02:00
Rolf Kalbermatter ac5dca86ff advapi32: Fix return value to indicate error when NULL string is passed in. 2007-05-21 12:30:44 +02:00
Alexandre Julliard 020bd631ed advapi32: Launch winedevice.exe when asked to start a kernel driver service. 2007-05-17 16:52:18 +02:00
Rolf Kalbermatter fef82e74b6 advapi32: Add access flags to service handle data. 2007-05-16 14:27:46 +02:00
Alexandre Julliard 0a5e707a39 advapi32: Fix set process request, a pipe instance can only handle one request. 2007-05-08 21:35:34 +02:00
Rolf Kalbermatter d0790f1bfe advapi32: Implement GetServiceDisplayNameW. 2007-05-08 13:46:31 +02:00
Rolf Kalbermatter 7af5a9d87f advapi32: Implement GetServiceDisplayNameA. 2007-05-08 13:46:26 +02:00
Rolf Kalbermatter 4b7c5097c3 advapi32: Store process ID into status structure on startup. 2007-05-08 13:45:56 +02:00
Rolf Kalbermatter a60f60ac43 advapi32: Make service_start_process return the pid to the caller. 2007-04-24 11:53:32 +02:00
Rolf Kalbermatter e782b836be advapi32: Make struct service_data_t have the new SERVICE_STATUS_PROCESS struct. 2007-04-24 11:53:24 +02:00
Rolf Kalbermatter c5339be92b advapi32: Add EnumServicesStatusExA/W stub implementation. 2007-04-23 14:38:38 +02:00
Rolf Kalbermatter a2fbbd9209 advapi32: Make SERVICE_STATUS_PROCESS match the declaration in MSDN and PSDK. 2007-04-23 14:37:29 +02:00
Rolf Kalbermatter 6c33eb4410 advapi32: Make QueryServiceStatus use QueryServiceStatusEx. 2007-04-20 13:20:15 +02:00
Rolf Kalbermatter af5f6325e5 advapi32: Implement QueryServiceStatusEx.
Based on a patch by Anastasius Focht.
2007-04-20 13:18:59 +02:00
Andrew Talbot 3c75d9380a advapi32: Constify some variables. 2007-04-03 11:22:20 +02:00
Jacek Caban 112257e59d advapi: Constify argument of StartServiceCtrlDispatcher[AW] functions. 2007-03-20 12:39:36 +01:00
Andrew Talbot 39fb7839a7 advapi32: Constify some variables. 2007-03-12 12:01:24 +01:00
Alexandre Julliard 53d838a1bf advapi32: Create the service manager registry key if needed. 2007-02-28 20:51:25 +01:00
Alexandre Julliard ee1706035a advapi32: Reimplement QueryServiceConfigA on top of QueryServiceConfigW. 2007-02-28 20:47:51 +01:00
Alexandre Julliard 6a9222fc39 Fixed some printf warnings caused by using sizeof. 2006-10-12 14:58:25 +02:00
James Hawkins ca118989f4 advapi32: Remove redundant NULL check before SERV_free (found by Smatch). 2006-10-06 15:20:31 +02:00
Hans Leidekker 4301816d47 advapi32: Win64 printf format warning fixes. 2006-10-03 16:21:58 +02:00
Robert Shearman cc5aceb4f0 advapi32: Fix the service function being called when extended is
either set or not set (reported by Andrey Turkin).
2006-07-05 11:44:27 +02:00
Robert Shearman 19d4378a54 advapi32: Implement RegisterServiceCtrlHandleExW. 2006-07-03 11:33:13 +02:00
Alexandre Julliard 553bb2591f advapi32: Don't use sizeof in traces to avoid printf format warnings. 2006-06-13 14:09:02 +02:00
Alexandre Julliard 7bbc1d68c5 advapi32: Make some variables static and/or const. 2006-06-12 13:41:15 +02:00
Jonathan Ernst 360a3f9142 Update the address of the Free Software Foundation. 2006-05-23 14:11:13 +02:00
Mike McCormack a8b71c2727 advapi32: If we can't connect to a service's pipe, name the service in
the error message.
2006-01-10 12:10:34 +01:00
Vitaliy Margolen e74bda9d95 advapi32: Don't allocate memory for empty argument string and pass
NULL instead.
2006-01-03 12:05:32 +01:00
Rob Shearman 01a4245a51 Don't try waiting for the service process to start if the
CreateProcess call failed.
2005-11-21 12:00:16 +00:00
Markus Amsler d45811ce2a Improve c2man Documented-Total count. 2005-11-04 11:43:27 +00:00
Hans Leidekker d7161472fc Added stub for RegisterServiceCtrlHandlerEx{A,W}. 2005-11-03 09:53:27 +00:00
Rein Klazes c16e70587a - Set the LastError in OpenSCManager in case of errors;
- Accept machine names without a '\\' prefix in OpenSCManager and
  RegConnectRegistry.
- Add a regression test for that.
2005-09-15 09:31:05 +00:00
Alexandre Julliard 20a1a203c6 Use a more portable scheme for storing the name of a critical
section.
2005-09-09 10:19:44 +00:00
Mike McCormack 280bcf6e4a Fix gcc 4.0 warnings. 2005-08-27 10:00:38 +00:00
Kevin Koltzau bfa3077510 Properly declare handles. 2005-08-23 09:32:39 +00:00
Mike McCormack d7b9a23afd gcc 4.0 -Wpointer-sign fixes (Reg* functions). 2005-07-06 19:08:05 +00:00
Mike McCormack 74b37280b3 Silence some -Wmissing-declarations warnings. 2005-06-13 10:00:37 +00:00
Troy Rollo 8bf4d76681 Correct test of BOOL return value in ControlService. 2005-04-19 10:24:22 +00:00
Mike McCormack ddf74e6798 Implement ChangeServiceConfig. 2005-03-29 19:51:40 +00:00