The EnumDependentServices function provides the name and status of each service that depends on the specified service; that is, the specified service must be running before the dependent services can run.
BOOL EnumDependentServices(
SC_HANDLE hService, |
// handle to service |
DWORD dwServiceState, |
// state of services to enumerate |
LPENUM_SERVICE_STATUS lpServices, |
// pointer to service status buffer |
DWORD cbBufSize, |
// size of service status buffer |
LPDWORD pcbBytesNeeded, |
// pointer to variable for bytes needed |
LPDWORD lpServicesReturned |
// pointer to variable for number returned |
); |
Value |
Meaning |
SERVICE_ACTIVE |
Enumerates services that are in the following states: SERVICE_START_PENDING, SERVICE_STOP_PENDING, SERVICE_RUNNING, SERVICE_CONTINUE_PENDING, SERVICE_PAUSE_PENDING, and SERVICE_PAUSED. |
SERVICE_INACTIVE |
Enumerates services that are in the SERVICE_STOPPED state. |
SERVICE_STATE_ALL |
Combines the following states: SERVICE_ACTIVE and SERVICE_INACTIVE. |
If the function succeeds, the return value is nonzero.
If the function fails, the return value is zero. To get extended error information, call GetLastError.
The following error codes may be set by the service control manager. Other error codes may be set by the registry functions that are called by the service control manager.
Value |
Meaning |
ERROR_ACCESS_DENIED | |
The specified handle was not opened with SERVICE_ENUMERATE_DEPENDENTS access. | |
ERROR_INVALID_HANDLE | |
The specified handle is invalid. | |
ERROR_INVALID_PARAMETER | |
A parameter that was specified is invalid. | |
ERROR_MORE_DATA | |
The buffer pointed to by lpServices is not large enough. The function sets the variable pointed to by lpServicesReturned to the actual number of service entries stored into the buffer. The function sets the variable pointed to by pcbBytesNeeded to the number of bytes required to store all of the service entries. |
The returned services entries are ordered in the reverse order of the start order, with group order taken into account. If you need to stop the dependent services, you can use the order of entries written to the lpServices buffer to stop the dependent services in the proper order.
CreateService, ENUM_SERVICE_STATUS, EnumServicesStatus, OpenService
file: /Techref/os/win/api/win32/func/src/f19_19.htm, 7KB, , updated: 2000/4/7 11:19, local time: 2024/12/26 04:04,
18.119.28.173:LOG IN
|
©2024 These pages are served without commercial sponsorship. (No popup ads, etc...).Bandwidth abuse increases hosting cost forcing sponsorship or shutdown. This server aggressively defends against automated copying for any reason including offline viewing, duplication, etc... Please respect this requirement and DO NOT RIP THIS SITE. Questions? <A HREF="http://techref.massmind.org/techref/os/win/api/win32/func/src/f19_19.htm"> EnumDependentServices</A> |
Did you find what you needed? |
Welcome to massmind.org! |
Ashley Roll has put together a really nice little unit here. Leave off the MAX232 and keep these handy for the few times you need true RS232! |
.