LdrDllNotification 回呼函式
[此函式可能會從 Windows 變更或移除,而不需進一步通知。]
使用 LdrRegisterDllNotification 函式指定的通知回呼函式。 載入器會在 DLL 第一次載入時呼叫此函式。
警告: 通知回呼函式在任何 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;
-
內容 [in, 選擇性]
-
回呼函式之內容資料的指標。
傳回值
這個回呼函式不會傳回值。
備註
在進行動態連結之前,會呼叫通知回呼函式。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2008 [僅限傳統型應用程式] |
另請參閱