Функция 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 процедур обратного вызова при создании процессов.
Драйвер должен удалить все регистрируемые им обратные вызовы перед выгрузкой. Вы можете удалить обратный вызов, вызвав 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
PsSetCreateProcessNotifyRoutineEx