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 可以傳回下列其中一項:

傳回碼 Description
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 開始提供。
目標平台 Universal
標頭 ntddk.h (包含 Ntddk.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDDIs (storport) IrqlPsPassive (wdm) PowerIrpDDis (wdm)

另請參閱

PCREATE_PROCESS_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsSetCreateProcessNotifyRoutineEx

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine