Функция PsSetLoadImageNotifyRoutineEx (ntddk.h)
Подпрограмма PsSetLoadImageNotifyRoutineEx регистрирует предоставленный драйвером обратный вызов, который впоследствии получает уведомление при загрузке образа (например, DLL или EXE-файла) (или сопоставлении в память).
Синтаксис
NTSTATUS PsSetLoadImageNotifyRoutineEx(
[in] PLOAD_IMAGE_NOTIFY_ROUTINE NotifyRoutine,
[in] ULONG_PTR Flags
);
Параметры
[in] NotifyRoutine
Указатель на реализуемую вызывающей PLOAD_IMAGE_NOTIFY_ROUTINE подпрограмму обратного вызова для уведомлений о загрузке изображения.
[in] Flags
Предоставляет битовую маску флагов, управляющих функцией обратного вызова. Возможные значения
- PS_IMAGE_NOTIFY_CONFLICTING_ARCHITECTURE указывает, что подпрограмма обратного вызова должна вызываться для всех потенциально исполняемых образов, включая образы, архитектуру которых отличается от собственной архитектуры операционной системы.
Возвращаемое значение
Код возврата | Описание |
---|---|
|
Обратный вызов успешно зарегистрирован. |
|
Недопустимый флаг был указан в разделе Флаги. |
|
Подпрограмме не удалось выделить блок обратного вызова из-за нехватки ресурсов. |
Комментарии
Драйверы профилирования системы самого высокого уровня могут вызывать PsSetLoadImageNotifyRoutineEx для настройки подпрограмм уведомления load-image (см. PLOAD_IMAGE_NOTIFY_ROUTINE).
Максимальное число драйверов, которые могут быть одновременно зарегистрированы для получения уведомлений о загрузке образа, составляет 64. Если максимальное число подпрограмм уведомления load-image уже зарегистрировано, когда драйвер вызывает PsSetLoadImageNotifyRoutineEx для регистрации дополнительной процедуры уведомления, PsSetLoadImageNotifyRoutineEx завершается ошибкой и возвращает STATUS_INSUFFICIENT_RESOURCES.
Перед выгрузкой драйвер должен удалить все обратные вызовы, которые он регистрирует. Обратный вызов можно удалить, вызвав подпрограмму PsRemoveLoadImageNotifyRoutine .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 10 версии 1709 |
Минимальная версия сервера | Windows Server 2016 |
Целевая платформа | Windows |
Header | ntddk.h |
Библиотека | NtosKrnl.lib |
DLL | NtosKrnl.exe (режим ядра) |
IRQL | PASSIVE_LEVEL |