プロセスの実行を監視できる Windows XP 用のドライバーを開発しました。
コールバック関数は、標準の WDK API (PsSetCreateProcessNotifyRoutine) を使用して通知を受け取ります。
次に、ドライバーは、プロセスを許可するかどうかを決定します。そうでない場合は、実行をブロックするか、強制終了する必要があります。
そのように実行を傍受する最もクリーンな方法は何ですか? 文書化されていなくてもかまいませんが、可能であればフックに頼りたくありません。
PsSetCreateProcessNotifyRoutineEx (Vista+) では、CreateInfo->CreationStatus メンバーを NTSTATUS エラー コードに変更することで、プロセス作成操作を失敗させることができます。
わかりました、このドキュメントによると:
IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION のミニフィルターをインストールし、PageProtection == PAGE_EXECUTE を確認する必要があります。