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