次の方法で共有


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 Driver Kit (WDK) で使用できます。 LoadLibrary 関数と GetProcAddress 関数を使用して、この関数を呼び出すこともできます。

必要条件

要件
[DLL]
Ntdll.dll