Поделиться через


Функция обратного вызова LdrDllNotification

[Эта функция может быть изменена или удалена из Windows без дальнейшего уведомления.]

Функция обратного вызова уведомлений, указанная с помощью функции LdrRegisterDllNotification. Загрузчик вызывает эту функцию при первой загрузке библиотеки DLL.

Предупреждение

Это небезопасно для обратного вызова уведомлений для вызова функций в любом другом модуле, отличном от самого себя.

Синтаксис

VOID CALLBACK LdrDllNotification(
  _In_     ULONG                       NotificationReason,
  _In_     PCLDR_DLL_NOTIFICATION_DATA NotificationData,
  _In_opt_ PVOID                       Context
);

Параметры

NotificationReason [in]

Причина, по которой была вызвана функция обратного вызова уведомления. Этот параметр может быть одним из следующих значений.

Ценность Значение
LDR_DLL_NOTIFICATION_REASON_LOADED
1
Библиотека DLL была загружена. Параметр NotificationData указывает на структуру LDR_DLL_LOADED_NOTIFICATION_DATA.
LDR_DLL_NOTIFICATION_REASON_UNLOADED
2
Библиотека DLL была выгружена. Параметр NotificationData указывает на структуру LDR_DLL_UNLOADED_NOTIFICATION_DATA.

 

NotificationData [in]

Указатель на константный союз LDR_DLL_NOTIFICATION, содержащий данные уведомления. Этот союз имеет следующее определение:

typedef union _LDR_DLL_NOTIFICATION_DATA {
    LDR_DLL_LOADED_NOTIFICATION_DATA Loaded;
    LDR_DLL_UNLOADED_NOTIFICATION_DATA Unloaded;
} LDR_DLL_NOTIFICATION_DATA, *PLDR_DLL_NOTIFICATION_DATA;

Структура LDR_DLL_LOADED_NOTIFICATION_DATA имеет следующее определение:

typedef struct _LDR_DLL_LOADED_NOTIFICATION_DATA {
    ULONG Flags;                    //Reserved.
    PCUNICODE_STRING FullDllName;   //The full path name of the DLL module.
    PCUNICODE_STRING BaseDllName;   //The base file name of the DLL module.
    PVOID DllBase;                  //A pointer to the base address for the DLL in memory.
    ULONG SizeOfImage;              //The size of the DLL image, in bytes.
} LDR_DLL_LOADED_NOTIFICATION_DATA, *PLDR_DLL_LOADED_NOTIFICATION_DATA;

Структура LDR_DLL_UNLOADED_NOTIFICATION_DATA имеет следующее определение:

typedef struct _LDR_DLL_UNLOADED_NOTIFICATION_DATA {
    ULONG Flags;                    //Reserved.
    PCUNICODE_STRING FullDllName;   //The full path name of the DLL module.
    PCUNICODE_STRING BaseDllName;   //The base file name of the DLL module.
    PVOID DllBase;                  //A pointer to the base address for the DLL in memory.
    ULONG SizeOfImage;              //The size of the DLL image, in bytes.
} LDR_DLL_UNLOADED_NOTIFICATION_DATA, *PLDR_DLL_UNLOADED_NOTIFICATION_DATA;

контекст [в, необязательно]

Указатель на контекстные данные для функции обратного вызова.

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

Эта функция обратного вызова не возвращает значение.

Замечания

Функция обратного вызова уведомления вызывается до того, как происходит динамическое связывание.

Требования

Требование Ценность
Минимальный поддерживаемый клиент
Windows Vista [только классические приложения]
Минимальный поддерживаемый сервер
Windows Server 2008 [только классические приложения]

См. также

LdrRegisterDllNotification

LdrUnregisterDllNotification