Я знаю, что для получения уведомлений о создании или завершении процесса Win32 мы могли бы реализовать драйвер режима ядра NT с помощью API PsSetCreateProcessNotifyRoutine ()
, который предлагает возможность регистрации общесистемной функции обратного вызова, которая вызывается ОС каждый раз, когда новый процесс запускается, завершается или завершается.
Возможно ли это без создания драйвера режима ядра NT, только с использованием функций Win32 API с использованием C ++? Конечно, не использовать базовое решение бесконечного цикла, запрашивающего список активных процессов.
Есть ли какая-нибудь библиотека или Win32 API, которые предоставляют такую же функциональность (общесистемный обратный вызов, асинхронные события)?
Единственное, о чем я мог подумать, это WMI, не уверен, что он обеспечивает обратный вызов для создания процесса, но, возможно, на это стоит обратить внимание.
Вы можете отслеживать все процессы создания окон, используя SetWindowsHookEx с CBTProc , однако для чего-то большего требуется либо WMI, либо драйвер Windows. или немного " Black Magic "
Перехват API должен быть правильным способом выполнить что-то в этом роде. Вы можете подключить createProcess (A / W / asUserA / W .... и т. Д.) И NtTerminateProcess