59 NewEntry->
Callback = NotificationFunction;
82 for (
Entry = LdrpDllNotificationList.Flink;
83 Entry != &LdrpDllNotificationList;
116#define LdrpAssertDllNotificationDataMember(x)\
117 C_ASSERT(FIELD_OFFSET(LDR_DLL_NOTIFICATION_DATA, Loaded.x) ==\
118 FIELD_OFFSET(LDR_DLL_NOTIFICATION_DATA, Unloaded.x))
127#undef LdrpAssertDllNotificationDataMember
139 for (
Entry = LdrpDllNotificationList.Flink;
140 Entry != &LdrpDllNotificationList;
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
#define NT_SUCCESS(StatCode)
#define RemoveEntryList(Entry)
#define InsertTailList(ListHead, Entry)
struct _LDR_DLL_NOTIFICATION_ENTRY * PLDR_DLL_NOTIFICATION_ENTRY
static RTL_CRITICAL_SECTION_DEBUG LdrpDllNotificationLockDebug
#define LdrpAssertDllNotificationDataMember(x)
NTSTATUS NTAPI LdrUnregisterDllNotification(_In_ PVOID Cookie)
struct _LDR_DLL_NOTIFICATION_ENTRY LDR_DLL_NOTIFICATION_ENTRY
static RTL_CRITICAL_SECTION LdrpDllNotificationLock
VOID NTAPI LdrpSendDllNotifications(_In_ PLDR_DATA_TABLE_ENTRY DllEntry, _In_ ULONG NotificationReason)
NTSTATUS NTAPI LdrRegisterDllNotification(_In_ ULONG Flags, _In_ PLDR_DLL_NOTIFICATION_FUNCTION NotificationFunction, _In_opt_ PVOID Context, _Out_ PVOID *Cookie)
VOID(NTAPI * PLDR_DLL_NOTIFICATION_FUNCTION)(_In_ ULONG NotificationReason, _In_ PCLDR_DLL_NOTIFICATION_DATA NotificationData, _In_opt_ PVOID Context)
NTSYSAPI NTSTATUS NTAPI RtlEnterCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
NTSYSAPI NTSTATUS NTAPI RtlLeaveCriticalSection(_In_ PRTL_CRITICAL_SECTION CriticalSection)
#define STATUS_DLL_NOT_FOUND
base of all file and directory entries
PLDR_DLL_NOTIFICATION_FUNCTION Callback
struct _RTL_CRITICAL_SECTION * CriticalSection
#define CONTAINING_RECORD(address, type, field)
#define STATUS_INVALID_PARAMETER
_In_ PCWDF_DEVICE_PNP_NOTIFICATION_DATA NotificationData
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Must_inspect_result_ _In_ ULONG Flags
_In_opt_ PVOID _Out_ PLARGE_INTEGER Cookie
_In_ ULONG _In_opt_ PVOID _In_ PDRIVER_OBJECT _In_ PDRIVER_NOTIFICATION_CALLBACK_ROUTINE _Inout_opt_ __drv_aliasesMem PVOID _Outptr_result_nullonfailure_ _At_ * NotificationEntry(return==0, __drv_allocatesMem(Mem))) PVOID *NotificationEntry
#define RTL_STATIC_LIST_HEAD(x)