我有一个非常成功地使用 Topshelf 的现有 Windows 服务。
我现在需要让服务在特定的 USB 设备与机器连接/断开连接时接收通知。
我在 Topshelf 中看不到任何可以让我这样做的东西。但我相信有一种方法可以使用 Win32 API,如 ServiceControlHandlerEx 和 RegisterDeviceNotification 以及 DEVICE_NOTIFY_SERVICE_HANDLE 选项。
使用这些 Win32 API 会干扰 Topshelf 吗?据我了解,Topshelf 包装了服务控制处理程序本身,所以我的服务也尝试做同样的事情可能会导致一些问题?
更新:可以从基于 Topshelf 的服务中的服务控制处理程序挂钩设备通知。有关详细信息,请参阅示例项目。非常感谢克里斯帕特森的帮助。