次の方法で共有


PsSetCreateProcessNotifyRoutineEx 関数 (ntddk.h)

PsSetCreateProcessNotifyRoutineEx ルーチンは、プロセスの作成時または終了時に呼び出し元に通知するコールバック ルーチンを登録または削除します。

構文

NTSTATUS PsSetCreateProcessNotifyRoutineEx(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE_EX NotifyRoutine,
  [in] BOOLEAN                           Remove
);

パラメーター

[in] NotifyRoutine

登録または削除する PCREATE_PROCESS_NOTIFY_ROUTINE_EX ルーチンへのポインター。 オペレーティング システムは、新しいプロセスが作成されるたびにこのルーチンを呼び出します。

[in] Remove

psSetCreateProcessNotifyRoutineEx コールバック ルーチンの一覧から指定されたルーチンを追加または削除するかどうかを指定するブール値。 このパラメーターが TRUE 場合、指定されたルーチンはコールバック ルーチンの一覧から削除されます。 このパラメーターが FALSE 場合は、指定されたルーチンがコールバック ルーチンの一覧に追加されます。 Remove が TRUE 場合、システムは、すべてのインフライト コールバック ルーチンが完了するまで待機してから戻ります。

戻り値

PsSetCreateProcessNotifyRoutineEx は、次のいずれかの NTSTATUS 値を返します。

リターン コード 形容
STATUS_SUCCESS
指定されたルーチンがオペレーティング システムに登録されました。 オペレーティング システムは、新しいプロセスが作成されるたびにこのルーチンを呼び出します。
STATUS_INVALID_PARAMETER
指定されたルーチンが既に登録されているか、オペレーティング システムがプロセス作成コールバック ルーチンを登録するための制限に達しました。
STATUS_ACCESS_DENIED
コールバック ルーチン ポインターを含むイメージのイメージ ヘッダーにIMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITYが設定されていませんでした。

備考

最上位レベルのドライバーは、psSetCreateProcessNotifyRoutineEx を呼び出して、PCREATE_PROCESS_NOTIFY_ROUTINE_EX ルーチンを登録できます。 インストール可能なファイル システム (IFS) または最上位レベルのシステム プロファイリング ドライバーは、プロセス作成コールバック ルーチンを登録して、システム全体のドライバーの内部状態に対して作成および削除されるプロセスを追跡する場合があります。

ドライバーは、アンロードする前に登録されているコールバック ルーチンを削除する必要があります。 コールバック ルーチンを削除するには、PsSetCreateProcessNotifyRoutineEx を呼び出し、Remove を TRUE 設定します。 ドライバーは、PCREATE_PROCESS_NOTIFY_ROUTINE_EX コールバック ルーチンの実装からこの呼び出しを行う必要があります。

オペレーティング システムは、ドライバーのプロセス通知ルーチンを呼び出しますPASSIVE_LEVEL、通常のカーネルの APCs が無効になっている重要な領域内 します。 プロセスが作成されると、プロセス通知ルーチンは、新しいプロセスを作成したスレッドのコンテキストで実行されます。 プロセスが削除されると、プロセス通知ルーチンは、プロセスから終了する最後のスレッドのコンテキストで実行されます。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista SP1 および Windows Server 2008 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー ntddk.h (Ntddk.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm)

関連項目

PCREATE_PROCESS_NOTIFY_ROUTINE_EX

PS_CREATE_NOTIFY_INFO

PsSetCreateProcessNotifyRoutine