共用方式為


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 合規性規則 HwStorPortProhibitedDIs(storport)IrqlPsPassive(wdm)PowerIrpDDis(wdm)

另請參閱

PCREATE_PROCESS_NOTIFY_ROUTINE

PsGetCurrentProcessId

PsSetCreateProcessNotifyRoutineEx

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine