CreateService 服务程序的服务依赖

来源:互联网 发布:免费数据库空间 编辑:程序博客网 时间:2024/04/30 21:06

写的一个服务依赖于MySQL,启动的时候总是说"错误1075:依存服务不存在或已标记为删除",但是MySQL已经在运行,打开注册表HKEY_LOCAL_MACHINE\System\CurrentControlSet\services,发现自己写的服务的DependOnService字段的值里面除了MySQL之外,外面跟了一串乱码!删掉乱码也没用,不是能随便改的,DependOnService的类型是多字符串值,最后仔细参考了MSDN中对CreateService的lpDependencies的说明:

SC_HANDLE WINAPI CreateService(  _In_       SC_HANDLE hSCManager,  _In_       LPCTSTR lpServiceName,  _In_opt_   LPCTSTR lpDisplayName,  _In_       DWORD dwDesiredAccess,  _In_       DWORD dwServiceType,  _In_       DWORD dwStartType,  _In_       DWORD dwErrorControl,  _In_opt_   LPCTSTR lpBinaryPathName,  _In_opt_   LPCTSTR lpLoadOrderGroup,  _Out_opt_  LPDWORD lpdwTagId,  _In_opt_   LPCTSTR lpDependencies,  _In_opt_   LPCTSTR lpServiceStartName,  _In_opt_   LPCTSTR lpPassword);

lpDependencies [in, optional]

A pointer to a double null-terminated array of null-separated names of services or load ordering groups that the system must start before this service. Specify NULL or an empty string if the service has no dependencies. Dependency on a group means that this service can run if at least one member of the group is running after an attempt to start all members of the group.

You must prefix group names with SC_GROUP_IDENTIFIER so that they can be distinguished from a service name, because services and service groups share the same name space.

就是说要把_T("MySQL")改成_T("MySQL\0")!

原创粉丝点击