Функция 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 процедур обратного вызова при создании процессов.

Драйвер должен удалить все регистрируемые им обратные вызовы перед выгрузкой. Вы можете удалить обратный вызов, вызвав PsSetCreateProcessNotify с параметром Remove = TRUE. Драйвер не должен выполнять этот вызов из реализации процедуры обратного вызова PCREATE_PROCESS_NOTIFY_ROUTINE .

После регистрации подпрограммы, предоставляемой драйвером, она вызывается с параметром Create, для параметра Create задано значение TRUE сразу после создания начального потока в только что созданном процессе, назначенном входным дескриптором ProcessId . Входной дескриптор ParentId идентифицирует родительский процесс только что созданного процесса (он используется для наследования приоритета, сходства, квоты, маркера и дескриптора).

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 2000.
Целевая платформа Универсальное
Верхняя часть 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