Функция 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 задано значение TRUE сразу после создания начального потока в рамках созданного процесса, указанного дескриптором входных ProcessId. Входной ParentId дескриптор определяет родительский процесс созданного процесса (это родительский элемент, используемый для приоритета, сходства, квоты, маркера и обработки наследования, среди прочего).
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Доступно начиная с Windows 2000. |
целевая платформа | Всеобщий |
заголовка | ntddk.h (include Ntddk.h) |
библиотеки | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
правил соответствия DDI | HwStorPortProhibitedDIs(storport), IrqlPsPassive(wdm), PowerIrpDDis(wdm) |
См. также
PCREATE_PROCESS_NOTIFY_ROUTINE
PsSetCreateProcessNotifyRoutineEx