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


Функция 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;

У этой функции нет связанного файла заголовка. Связанная библиотека импорта Ntdll.lib доступна в комплекте драйверов Windows (WDK). Эту функцию также можно вызвать с помощью функций LoadLibrary и GetProcAddress .

Требования

Требование Значение
DLL
Ntdll.dll