Функция 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 |
См. также
PsRemoveCreateThreadNotifyRoutine
PsSetCreateProcessNotifyRoutine