有几种不同的方法可以将 DLL 作为服务运行。您可以:
编写您自己的 .exe 服务并让它根据需要加载您的 DLL。这是推荐的方法。
使用 Microsoft 的 SVCHOST.EXE 来托管您的 DLL。让您的 DLL 导出一个ServiceMain()函数,ServiceDLL向您的服务的注册表项添加一个值以指向您的 DLL,将您的服务名称添加到 SVCHOST 的注册表项中的一个新组,然后设置svchost -k <GroupName>为您的服务的可执行文件。有关更多详细信息,请参阅这些文章:
但是请注意,MSDN 的服务程序文档警告不要使用这种方法:
使用 SERVICE_WIN32_SHARE_PROCESS 类型创建的服务程序包含多个服务的代码,使它们能够共享代码。执行此操作的服务程序的一个示例是通用服务宿主进程 Svchost.exe,它承载内部 Windows 服务。请注意,Svchost.exe 保留供操作系统使用,不应由非 Windows 服务使用。相反,开发人员应该实现他们自己的服务托管程序。
将您的服务编写为导出函数的内核模式驱动程序DriverEntry(),并ServiceDLL在服务的注册表项中添加一个指向 DLL 文件的值。有关更多详细信息,请参阅这篇文章:
我不会推荐这种方法,除非您正在设计自己的硬件。
| 归档时间: |
|
| 查看次数: |
13782 次 |
| 最近记录: |