Обнаружение завершения процесса win32: WMI против WaitForSingleObject

Я пишу службу Windows (C ++), которая должна обнаружить конкретное завершение процесса Windows.

Я подумал о двух разных подходах к обнаружению терминации:

  1. С помощью WMI как описано Вот.
  2. Использование winapi WaitForSingleObject(hHandle, INFINITE) функция на ручке процесса.

Очевидная разница в том, что WMI использует CALLBACK функция.

Каковы другие основные различия, преимущества и недостатки между двумя подходами?

Спасибо!

1

Решение

Ранее я писал службу мониторинга процессов и использовал WMI для мониторинга процессов. Он позволяет вам указывать «где» предложение процессов для мониторинга и, как вы упомянули, вызывает вас, когда что-то произошло.

Преимущество этого состоит в том, что вам не нужно иметь блок потока, ожидающий завершения рассматриваемых процессов, а вместо этого можно просто выполнить запрос WMI и дождаться обратного вызова, когда что-то завершится. Недостатком является то, что WMI API немного более многословный, чем Win32 API. В частности, вы должны создавать запросы в виде строки в WMI.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]