本博文由CSDN博主zuishikonghuan所作,版权归zuishikonghuan所有,转载请注明出处:
http://blog.csdn.net/zuishikonghuan/article/details/47808805
在上一篇博文“[Win32] SCManager 服务控制管理器API(1)”中(地址:
http://blog.csdn.net/zuishikonghuan/article/details/47803033),讲到了打开服务控制管理器、创建服务、打开服务、删除服务、获取服务状态、启动服务、发送控制码,这一篇继续。
9。EnumServicesStatus 枚举服务
BOOL WINAPI EnumServicesStatus(
_In_ SC_HANDLE hSCManager,
_In_ DWORD dwServiceType,
_In_ DWORD dwServiceState,
_Out_opt_ LPENUM_SERVICE_STATUS lpServices,
_In_ DWORD cbBufSize,
_Out_ LPDWORD pcbBytesNeeded,
_Out_ LPDWORD lpServicesReturned,
_Inout_opt_ LPDWORD lpResumeHandle
);
hSCManager:服务控制管理器句柄。此句柄是OpenSCManager函数返回的,并且必须具有 SC_MANAGER_ENUMERATE_SERVICE 访问权限。
dwServiceType:要枚举的服务类型。
SERVICE_DRIVER:SERVICE_KERNEL_DRIVER 和 SERVICE_FILE_SYSTEM_DRIVER。
SERVICE_FILE_SYSTEM_DRIVER:文件系统驱动程序服务。
SERVICE_KERNEL_DRIVER:驱动程序服务。
SERVICE_WIN32:SERVICE_WIN32_OWN_PROCESS 和 SERVICE_WIN32_SHARE_PROCESS。
SERVICE_WIN32_OWN_PROCESS:在他们自己的进程中运行的服务。
SERVICE_WIN32_SHARE_PROCESS:与一个或多个其他服务共享一个进程的服务。一般为SERVICE_WIN32
dwServiceState:服务要枚举的状态。此参数可以是下列值之一:
SERVICE_ACTIVE:枚举是处于以下状态的服务: SERVICE_START_PENDING、 SERVICE_STOP_PENDING、 SERVICE_RUNNING、SERVICE_CONTINUE_PENDING、 SERVICE_PAUSE_PENDING 和 SERVICE_PAUSED。
SERVICE_INACTIVE:枚举服务处于 SERVICE_STOPPED 状态。
SERVICE_STATE_ALL:SERVICE_ACTIVE 和 SERVICE_INACTIVE。
lpServices:指向包含数组的 ENUM_SERVICE_STATUS 结构,它接收名称服务数据库中的每个服务的状态信息的缓冲区的指针。缓冲区必须足够大以容纳结构,再加上他们的成员所指向的字符串。此数组的最大大小为 256 K 字节。若要确定所需的大小,请为此参数与 cbBufSize 参数置 0。该函数将失败,时出错将返回 ERROR_INSUFFICIENT_BUFFER。PcbBytesNeeded 参数将收到所需的大小。
ENUM_SERVICE_STATUS 结构:
typedef struct _ENUM_SERVICE_STATUS { LPTSTR lpServiceName; LPTSTR lpDisplayName; SERVICE_STATUS ServiceStatus; } ENUM_SERVICE_STATUS, *LPENUM_SERVICE_STATUS;lpServiceName:服务名称
lpDisplayName:显示名称
ServiceStatus:服务状态
SERVICE_STATUS结构见 上一篇 和

本文详细介绍了Windows API中的服务控制管理器相关函数,包括EnumServicesStatus用于枚举服务状态,QueryServiceConfig获取服务配置参数,以及如何通过ChangeServiceConfig修改服务配置。这些函数涉及的服务状态、配置信息和访问权限对理解和操作Windows服务至关重要。
&spm=1001.2101.3001.5002&articleId=47808805&d=1&t=3&u=64ff1abd97764fbe8daf7d83f0215aec)
4240

被折叠的 条评论
为什么被折叠?



