我正在开发 Windows 下的过滤器驱动程序。该驱动程序支持 PnP 以接收设备通知,它还创建一个控制设备以通过 IOCTL 与随附的用户模式服务进行通信。
据我了解,驱动程序的生命周期由 PnP 管理器控制。在处理下一个设备通知后,驱动程序将被卸载,因为此时驱动程序没有设备对象。
我需要做的是按需停止驱动程序,而不是在下一个设备到达/离开时停止。到目前为止,我认为这不是它应该工作的方式,另一方面,我没有看到任何禁止按需卸载过滤器驱动程序的逻辑。我研究了发送 STOP 控制,但我看不出如何在 PnP 驱动程序中处理它(仅适用于旧版驱动程序)。
现在我正在考虑添加特殊的 IOCTL 处理程序,这将关闭所有设备对象。但这还不够,司机的生命周期由 PnP 经理管理,所以我需要以某种方式“引起经理的注意”到我的司机身上。任何帮助表示赞赏!
如果您想知道,我需要驱动程序可以停止,以便卸载不需要重新启动。