C でカーネル モード ドライバーを使用せずに Win32 プロセスの作成/終了を検出する
一方、NT カーネル モード ドライバーはプロセス用の包括的な API を提供します作成通知と終了通知を使用すると、Win32 API のみを使用して同様の機能を C で実現できます。
WMI の使用
WMI (Windows Management Instrumentation) は、プロセスの作成や終了に関連するものを含む、豊富なイベント通知セットを提供します。ただし、WMI はすべてのシナリオ、特にプロセスの終了のみを追跡する必要がある場合に適しているわけではありません。
コールバックの使用
より効率的なアプローチは、特定のプロセスが終了するのを待つコールバック関数。これは、次の手順で実現できます。
コード例
VOID CALLBACK WaitOrTimerCallback( _In_ PVOID lpParameter, _In_ BOOLEAN TimerOrWaitFired ) { MessageBox(0, L"The process has exited.", L"INFO", MB_OK); return; } DWORD dwProcessID = 1234; HANDLE hProcHandle = OpenProcess(PROCESS_ALL_ACCESS, FALSE, dwProcessID); HANDLE hNewHandle; RegisterWaitForSingleObject(&hNewHandle, hProcHandle , WaitOrTimerCallback, NULL, INFINITE, WT_EXECUTEONLYONCE);
このコードは、ID の処理が完了するとメッセージ ボックスを表示します。 dwProcessID が終了します。
以上がC でカーネル モード ドライバーを使用せずに Win32 プロセスの作成/終了を検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。