RtlGetUnloadEventTraceEx 函数

检索当前进程的动态卸载模块列表的大小和位置。

语法

VOID WINAPI RtlGetUnloadEventTraceEx(
  _Out_ PULONG *ElementSize,
  _Out_ PULONG *ElementCount,
  _Out_ PVOID  *EventTrace
);

参数

ElementSize [out]

指向包含列表中元素大小的变量的指针。

ElementCount [out]

指向包含列表中元素数的变量的指针。

EventTrace [out]

指向RTL_UNLOAD_EVENT_TRACE结构的数组 指针。 有关详细信息,请参阅“备注”。

返回值

此函数不返回值。

注解

加载程序利用所有进程中的同一基址加载Ntdll.dll这一事实,将卸载的事件信息存储在可跨进程读取的位置。 当调试器需要查询卸载的模块信息时,它会调用此函数来确定变量所在的地址,然后查询目标进程中这些地址处的虚拟内存以读取实际值。

列表中的每个元素定义如下。

typedef struct _RTL_UNLOAD_EVENT_TRACE {
    PVOID BaseAddress;   // Base address of dll
    SIZE_T SizeOfImage;  // Size of image
    ULONG Sequence;      // Sequence number for this event
    ULONG TimeDateStamp; // Time and date of image
    ULONG CheckSum;      // Image checksum
    WCHAR ImageName[32]; // Image name
} RTL_UNLOAD_EVENT_TRACE, *PRTL_UNLOAD_EVENT_TRACE;

此函数没有关联的头文件。 Windows 驱动程序工具包 (WDK) 中提供了关联的导入库 Ntdll.lib。 还可以使用 LoadLibraryGetProcAddress 函数调用此函数。

要求

要求
DLL
Ntdll.dll