SymEnumerateModules 関数 (dbghelp.h)

SymLoadModule64 関数または SymLoadModuleEx 関数によってプロセス用に読み込まれたすべてのモジュールを列挙します。

構文

BOOL IMAGEAPI SymEnumerateModules(
  [in]           HANDLE                    hProcess,
  [in]           PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
  [in, optional] PVOID                     UserContext
);

パラメーター

[in] hProcess

SymInitialize 関数に最初に渡されたプロセスへのハンドル。

[in] EnumModulesCallback

列挙コールバック関数。 この関数はモジュールごとに 1 回呼び出されます。 詳細については、「 SymEnumerateModulesProc64」を参照してください。

[in, optional] UserContext

ユーザー定義値または NULL。 この値は、単にコールバック関数に渡されます。 通常、このパラメーターは、コールバック関数が何らかの種類のコンテキストを確立できるようにするデータ構造へのポインターを渡すためにアプリケーションによって使用されます。

戻り値

関数が成功した場合、戻り値は TRUE になります

関数が失敗した場合、戻り値は FALSE になります。 拡張エラー情報を取得するには、 GetLastError を呼び出します。

注釈

SymEnumerateModules64 関数は、シンボルの読み込みが延期された場合でも、SymLoadModule64 によってプロセス用に読み込まれたすべてのモジュールを列挙します。 列挙コールバック関数は、モジュールごとに 1 回呼び出され、モジュール情報が渡されます。

この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。

この関数の Unicode バージョンを呼び出すには、DBGHELP_TRANSLATE_TCHARを定義します。 SymEnumerateModulesW64 は、Dbghelp.h で次のように定義されています。


BOOL
IMAGEAPI
SymEnumerateModulesW64(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACKW64 EnumModulesCallback,
    __in_opt PVOID UserContext
    );

#ifdef DBGHELP_TRANSLATE_TCHAR
#define SymEnumerateModules64  SymEnumerateModulesW64
#endif

この関数は SymEnumerateModules 関数よりも優先されます。 詳細については、「 プラットフォーム サポートの更新」を参照してください。 SymEnumerateModules は、Dbghelp.h で次のように定義されています。

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymEnumerateModules SymEnumerateModules64
#else
BOOL
IMAGEAPI
SymEnumerateModules(
    __in HANDLE hProcess,
    __in PSYM_ENUMMODULES_CALLBACK EnumModulesCallback,
    __in_opt PVOID UserContext
    );
#endif

例については、「シンボル モジュールの列挙」をご覧ください。

要件

要件
対象プラットフォーム Windows
ヘッダー dbghelp.h
Library Dbghelp.lib
[DLL] Dbghelp.dll
再頒布可能パッケージ DbgHelp.dll 5.1 以降

こちらもご覧ください

DbgHelp 関数

SymEnumerateModulesProc64

SymInitialize

SymLoadModule64