次の方法で共有


PsSetCreateProcessNotifyRoutine 関数 (ntddk.h)

PsSetCreateProcessNotifyRoutine ルーチンは、プロセスが作成または削除されるたびに呼び出されるルーチンの一覧に、ドライバーが指定したコールバック ルーチンを追加するか、そのルーチンから削除します。

構文

NTSTATUS PsSetCreateProcessNotifyRoutine(
  [in] PCREATE_PROCESS_NOTIFY_ROUTINE NotifyRoutine,
  [in] BOOLEAN                        Remove
);

パラメーター

[in] NotifyRoutine

呼び出し元が指定したプロセス作成コールバック ルーチンのエントリ ポイントを指定します。 PCREATE_PROCESS_NOTIFY_ROUTINEを参照してください。

[in] Remove

NotifyRoutine で指定されたルーチンをシステムの通知ルーチンの一覧に追加するか、システムから削除するかを示します。 FALSE 場合、指定したルーチンがリストに追加されます。 TRUE 場合、指定したルーチンがリストから削除されます。

戻り値

PsSetCreateProcessNotifyRoutine は、次のいずれかを返すことができます。

リターン コード 形容
STATUS_SUCCESS
指定された NotifyRoutine がシステムに登録されるようになりました。
STATUS_INVALID_PARAMETER
指定された NotifyRoutine は既に登録されているため、この呼び出しは冗長呼び出しであるか、システムがプロセス作成コールバックを登録するための制限に達しています。

備考

最上位レベルのドライバー PsSetCreateProcessNotifyRoutine を呼び出して、PCREATE_PROCESS_NOTIFY_ROUTINEとして実装されたプロセス作成通知ルーチンを設定できます。

IFS または最上位レベルのシステム プロファイル ドライバーは、プロセス作成コールバックを登録して、ドライバーの内部状態に対するプロセスのシステム全体の作成と削除を追跡する場合があります。 Windows Vista 以降のバージョンの Windows の場合、システムは最大 64 個のプロセス作成コールバック ルーチンを登録できます。

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

ドライバー指定のルーチンが登録されると、入力 ProcessId ハンドルによって指定された新しく作成されたプロセス内で最初のスレッドが作成された直後に、Create が TRUE に設定された状態で呼び出されます。 ParentId ハンドル 入力は、新しく作成されたプロセスの親プロセスを識別します (これは、優先度、アフィニティ、クォータ、トークン、ハンドル継承などに使用される親です)。

必要条件

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

関連項目

PCREATE_PROCESS_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsSetCreateProcessNotifyRoutineEx

PsSetCreateThreadNotifyRoutine する

PsSetLoadImageNotifyRoutine