Функция 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 указывает, что подпрограмма обратного вызова должна вызываться для всех потенциально исполняемых образов, включая образы, архитектуру которых отличается от собственной архитектуры операционной системы.

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

Код возврата Описание
STATUS_SUCCESS
Обратный вызов успешно зарегистрирован.
STATUS_INVALID_PARAMETER_2
Недопустимый флаг был указан в разделе Флаги.
STATUS_INSUFFICIENT_RESOURCES
Подпрограмме не удалось выделить блок обратного вызова из-за нехватки ресурсов.

Комментарии

Драйверы профилирования системы самого высокого уровня могут вызывать 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