Фильтрация запускаемых процессов

Всем привет!

Нужно перехватывать запуск процесов, и, например, если запускаеммый процес не соответсвует требованиям, то запретить запуск.

Погуглив, понял что есть только 2 нормальных способа, возможно есть ещё, предлагайте свои варианты.

1. Немного устаревший, но для меня более актуален, так как он должен работать из под юзера, это использовать ключ в реестре AppCertDlls

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\AppCertDlls

Хотел протестировать этот вариант, но у меня в реестре нет такой ветки, поставил седьмую винду на виртуалку, и там нет такой ветки, но на форумах пишут что должно работать в семёрке точно.

Кто сталкивался с таким ньюансом? У меня немного опыта в работе с реестром, возможно я что-то упускаю...

2. PsSetCreateProcessNotifyRoutine(Ex) - правда, тут есть нюанс - эта функция доступна только в ядре (нужен драйвер).

Но к сожалению в разработке драйвером нет опыта.