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 |
---|---|
|
指定的 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 開始提供。 |
目標平台 | Universal |
標頭 | ntddk.h (包含 Ntddk.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs (storport) 、 IrqlPsPassive (wdm) 、 PowerIrpDDis (wdm) |
另請參閱
PCREATE_PROCESS_NOTIFY_ROUTINE
PsSetCreateProcessNotifyRoutineEx