如何从顶级服务挂接服务控制处理程序



我有一个现有的Windows服务,它非常成功地使用了Topshelf 。

我现在需要让服务在特定 USB 设备连接到/断开机器时接收通知。

我在 Topshelf 中看不到任何允许我这样做的东西。但我相信有一种方法可以使用Win32 API,如ServiceControlHandlerEx和RegisterDeviceNotification以及DEVICE_NOTIFY_SERVICE_HANDLE选项。

使用这些 Win32 API 会干扰 Topshelf 吗?据我了解,Topshelf 包装了服务控制处理程序本身,所以我的服务也尝试做同样的事情可能会导致它出现一些问题?

更新:可以在基于 Topshelf 的服务中挂接来自服务控制处理程序的设备通知。有关详细信息,请参阅示例项目。非常感谢克里斯·帕特森的帮助。

Topshelf 不会干扰您调用这些 Win32 API。

最新更新