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 可以傳回下列其中一項:
傳回碼 | 描述 |
---|---|
|
指定的 NotifyRoutine 現在已向系統註冊。 |
|
指定的 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
PsSetCreateProcessNotifyRoutineEx