Функция PsSetCreateThreadNotifyRoutineEx (ntddk.h)

Подпрограмма PsSetCreateThreadNotifyRoutineEx регистрирует предоставленный драйвером обратный вызов, который затем уведомляется о создании нового потока и удалении такого потока.

Синтаксис

NTSTATUS PsSetCreateThreadNotifyRoutineEx(
  [in] PSCREATETHREADNOTIFYTYPE NotifyType,
  [in] PVOID                    NotifyInformation
);

Параметры

[in] NotifyType

Значение PSCREATETHREADNOTIFYTYPE , указывающее тип уведомления потока.

[in] NotifyInformation

Предоставляет адрес сведений уведомления для указанного типа уведомления потока. Если Параметр NotifyType имеет значение PsCreateThreadNotifyNonSystem или PsCreateThreadNotifySubsystems , notifyInformation должен быть указателем на реализацию драйвера PCREATE_THREAD_NOTIFY_ROUTINE.

Возвращаемое значение

PsSetCreateThreadNotifyRoutineEx возвращает STATUS_SUCCESS или возвращает STATUS_INSUFFICIENT_RESOURCES если не удалось зарегистрировать обратный вызов.

Комментарии

Драйверы самого высокого уровня могут вызывать PsSetCreateThreadNotifyRoutineEx , чтобы настроить процедуры уведомления о создании потоков.

Например, драйвер профилирования системы ifs или драйвер профилирования системы самого высокого уровня может зарегистрировать такой обратный вызов создания потока для отслеживания создания и удаления потоков во всей системе в отношении внутреннего состояния драйвера.

Если notifyType имеет значение PsCreateThreadNotifyNonSystem, подпрограмма PsSetCreateThreadNotifyRoutineEx отличается от PsSetCreateThreadNotifyRoutine в контексте, в котором выполняется обратный вызов. При использовании PsSetCreateThreadNotifyRoutine обратный вызов выполняется в потоке создателя. При использовании PsSetCreateThreadNotifyRoutineEx обратный вызов выполняется во вновь созданном потоке.

Драйвер должен удалить любую функцию обратного вызова, регистрируемую перед выгрузкой. Обратный вызов можно удалить, вызвав подпрограмму PsRemoveCreateThreadNotifyRoutine .

Требования

Требование Значение
Минимальная версия клиента Доступно начиная с Windows 10.
Целевая платформа Универсальное
Верхняя часть ntddk.h (включая Ntddk.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

См. также раздел

PsGetCurrentProcessId

PsGetCurrentThreadId

PsIsSystemThread

PsRemoveCreateThreadNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine