Функция 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 для настройки подпрограмм уведомления о загрузке образа (см. PLOAD_IMAGE_NOTIFY_ROUTINE).

Максимальное количество драйверов, которые могут быть одновременно зарегистрированы для получения уведомлений о загрузке изображений, равно 64. Если максимальное количество подпрограмм уведомления о загрузке изображений уже зарегистрировано при вызове драйвера PsSetLoadImageNotifyRoutineEx, чтобы попытаться зарегистрировать дополнительную подпрограмму уведомления, PsSetLoadImageNotifyRoutineEx и возвращает STATUS_INSUFFICIENT_RESOURCES.

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

Требования

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