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


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

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

Синтаксис

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

Параметры

[in] NotifyType

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

[in] NotifyInformation

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

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

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

Замечания

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

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

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

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Доступно начиная с Windows 10.
целевая платформа Всеобщий
заголовка ntddk.h (include Ntddk.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

См. также

PsGetCurrentProcessId

PsGetCurrentThreadId

PsIsSystemThread

PsRemoveCreateThreadNotifyRoutine

PsSetCreateProcessNotifyRoutine

PsSetCreateThreadNotifyRoutine

PsSetLoadImageNotifyRoutine