SymLoadModuleEx

SymLoadModuleEx 関数 (dbghelp.h) は、指定されたモジュールのシンボルテーブルを読み込む。

SymLoadModuleEx hProcess, hFile, ImageName, ModuleName, BaseOfDll, DllSize, Data, Flags

hProcess : [intptr] もともと SymInitialize 関数に渡したプロセスのハンドル。
hFile : [intptr] 実行可能イメージファイルのハンドル。この引数は主にデバッガで使用され、デバッグイベントから取得したファイルハンドルを渡す。NULL を指定すると hFile は使用されない。
ImageName : [str] 実行可能イメージの名前。この名前には部分パス、フルパス、またはパスなしを指定できる。指定された名前でファイルが見つからない場合、シンボル検索パスが使用される。
ModuleName : [str] モジュールのショートカット名。ポインタ値が NULL の場合、ライブラリはシンボルファイルのベース名を用いて名前を生成する。
BaseOfDll : [int64] モジュールの読み込みアドレス。値が 0 の場合、ライブラリはシンボルファイルから読み込みアドレスを取得する。シンボルファイルに含まれる読み込みアドレスは、必ずしも実際の読み込みアドレスと一致するとは限らない。デバッガなど実際の読み込みアドレスを把握しているアプリケーションでは、この関数を呼び出す際に実際の読み込みアドレスを使用すべきである。イメージが .pdb ファイルの場合、このパラメータを 0 にすることはできない。
DllSize : [int] モジュールのサイズ(バイト単位)。値が 0 の場合、ライブラリはシンボルファイルからサイズを取得する。シンボルファイルに含まれるサイズは、必ずしも実際のサイズと一致するとは限らない。デバッガなど実際のサイズを把握しているアプリケーションでは、この関数を呼び出す際に実際のサイズを使用すべきである。イメージが .pdb ファイルの場合、このパラメータを 0 にすることはできない。
Data : [var] 標準の PE ヘッダ以外のヘッダを表す MODLOAD_DATA 構造体へのポインタ。このパラメータは省略可能であり、NULL でも構わない。
Flags : [int] 

(プラグイン / モジュール : dbghelp.dll)

解説

SymLoadModuleEx 関数 (dbghelp.h) は、指定されたモジュールのシンボルテーブルを読み込む。

[戻り値]
関数が成功した場合、戻り値は読み込まれたモジュールのベースアドレスである。関数が失敗した場合、戻り値は 0
である。拡張エラー情報を取得するには、GetLastError を呼び出す。モジュールがすでに読み込まれている場合、戻り値は 0
となり、GetLastError は ERROR_SUCCESS を返す。

[備考]

シンボルハンドラはモジュールのエントリを作成する。遅延シンボル読み込みオプションが無効であれば、シンボルの読み込みが試みられる。遅延シンボル読み込みが有効な場合、モジュールは遅延状態としてマークされ、モジュール内のシンボルが参照されるまでシンボルは読み込まれない。そのため、SymLoadModuleEx
を呼び出した後は常に SymGetModuleInfo64
関数を呼び出すべきである。シンボルテーブルを解放するには、SymUnloadModule64 関数を使用する。この関数を含め、すべての
DbgHelp
関数はシングルスレッドである。そのため複数のスレッドから同時に呼び出すと、予期しない動作やメモリ破壊を招く可能性が高い。これを避けるには、複数スレッドからの並行呼び出しをすべて同期する必要がある。この関数の
Unicode 版を呼び出すには DBGHELP_TRANSLATE_TCHAR を定義する。

情報

プラグイン / モジュールdbghelp.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の dbghelp.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_dbghelp_gen2.hs