Поделиться через


Функция 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 задано значение 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

PsGetCurrentProcessId

PsSetCreateProcessNotifyRoutineEx

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine