暂停 NOT_PAUSABLE 服务,通过命令行或代码暂停不可暂停的服务

暂停 NOT_PAUSABLE 服务,通过命令行或代码暂停不可暂停的服务

我正在尝试暂停一个设置了 NOT_PAUSABLE 属性的 Windows 驱动程序。当我发送一个

sc query ServiceName

输出如下:

TYPE               : 110  WIN32_OWN_PROCESS (interactive)
STATE              : 4  RUNNING
                        (NOT_STOPPABLE,NOT_PAUSABLE,ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE    : 0  (0x0)
SERVICE_EXIT_CODE  : 0  (0x0)
CHECKPOINT         : 0x0
WAIT_HINT          : 0x0

当然,当我尝试使用 SC 暂停驱动程序/服务时,出现错误。

有什么方法可以暂停(或强制暂停)此驱动程序?从命令行?或通过代码(C 或 C++)

谢谢!

答案1

暂停 Windows 服务与暂停 VM 不同,后者会在某一时刻冻结代码执行。Windows 服务中的暂停事件在技术上与启动或停止事件没有区别。它们都只是服务控制管理器传递给服务的事件。这些事件需要由服务编写者进行编码。如果服务不支持暂停事件,您无法强制执行。

即使您可以设法欺骗服务控制管理器向服务发送暂停事件,最好的情况是服务会忽略该消息。最坏的情况是代码不知道如何处理该事件并以某种惊人的方式失控(最有可能是崩溃)。

相关内容