Freigeben über


RtlGetUnloadEventTraceEx-Funktion

Ruft die Größe und den Speicherort der dynamisch entladenen Modulliste für den aktuellen Prozess ab.

Syntax

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

Parameter

ElementSize [out]

Ein Zeiger auf eine Variable, die die Größe eines Elements in der Liste enthält.

ElementCount [out]

Ein Zeiger auf eine Variable, die die Anzahl der Elemente in der Liste enthält.

EventTrace [out]

Ein Zeiger auf ein Array von RTL_UNLOAD_EVENT_TRACE Strukturen. Weitere Informationen finden Sie in den Hinweisen.

Rückgabewert

Diese Funktion gibt keinen Wert zurück.

Bemerkungen

Das Ladeprogramm speichert entladene Ereignisinformationen an Speicherorten, die prozessübergreifend gelesen werden können, indem er die Tatsache nutzt, dass Ntdll.dll in allen Prozessen an derselben Basisadresse geladen wird. Wenn ein Debugger entladene Modulinformationen abfragen muss, ruft er diese Funktion auf, um die Adresse zu bestimmen, an der sich die Variablen befinden, und fragt dann den virtuellen Arbeitsspeicher im Zielprozess an diesen Adressen ab, um die tatsächlichen Werte zu lesen.

Jedes Element in der Liste wird wie folgt definiert.

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;

Diese Funktion verfügt über keine zugeordnete Headerdatei. Die zugehörige Importbibliothek Ntdll.lib ist im Windows Driver Kit (WDK) verfügbar. Sie können diese Funktion auch mit den Funktionen LoadLibrary und GetProcAddress aufrufen.

Anforderungen

Anforderung Wert
DLL
Ntdll.dll