Я пытаюсь приостановить драйвер Windows, для которого установлен атрибут NOT_PAUSABLE. когда я отправляю
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 ++)
Спасибо!
Приостановка службы Windows не похожа на приостановку виртуальной машины, при которой выполнение кода приостанавливается в определенный момент времени. Событие Pause в службе Windows технически не отличается от события Start или Stop. Все это просто события, передаваемые диспетчером управления сервисом сервису. Эти события должны быть закодированы писателем службы. Если служба не поддерживает событие Pause, вы ничего не можете сделать, чтобы заставить его.
Даже если вам удастся обмануть диспетчер управления службами, чтобы отправить в службу событие паузы, в лучшем случае служба просто проигнорирует сообщение. В худшем случае код не знает, что делать с событием, и каким-то впечатляющим образом пугается (скорее всего, происходит сбой).