SymGetModuleInfoW64

指定されたモジュールのモジュール情報を取得する。(SymGetModuleInfoW64)

SymGetModuleInfoW64 hProcess, qwAddr, ModuleInfo

hProcess : [intptr] もともと SymInitialize 関数に渡したプロセスのハンドル。
qwAddr : [int64] SymLoadModule64 関数によって読み込まれたいずれかのモジュールに含まれる仮想アドレス。
ModuleInfo : [var] IMAGEHLP_MODULEW64 構造体へのポインタ。SizeOfStruct メンバには IMAGEHLP_MODULEW64 構造体のサイズを設定しておく必要がある。無効な値を指定するとエラーになる。

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

解説

指定されたモジュールのモジュール情報を取得する。(SymGetModuleInfoW64)

[戻り値]
関数が成功した場合、戻り値は TRUE である。関数が失敗した場合、戻り値は FALSE
である。拡張エラー情報を取得するには、GetLastError を呼び出す。

[備考]
モジュールテーブルから dwAddr
を含むモジュールが検索される。モジュールは各モジュールの読み込みアドレスとサイズを基に特定される。有効なモジュールが見つかると、ModuleInfo
パラメータにそのモジュールの情報が格納される。この関数で使用される IMAGEHLP_MODULEW64
構造体のサイズは長年のあいだに変化してきた。呼び出し側コードのコンパイルに使用した DbgHelp.h より古いバージョンの
DbgHelp.dll を呼び出すと、この関数は ERROR_INVALID_PARAMETER
のエラーコードで失敗することがある。これは特にシステム版 (%WinDir%\System32\DbgHelp.dll)
を呼び出す場合に発生しやすい。システム版の DbgHelp.dll を呼び出すコードは、対応する Windows リリース向けの
SDK、またはそれ以前のリリース向け SDK でコンパイルする必要がある。推奨されるモデルは、必要なバージョンの DbgHelp.dll
を呼び出し側ソフトウェアとともに再配布することである。これにより、もっとも堅牢なバージョンの DbgHelp.dll
を使用でき、アップグレードも容易になる。最新バージョンの DbgHelp.dll は Debugging Tools for
Windows
パッケージから常に入手できる。原則として、古いバージョン向けにコンパイルされたコードは新しいバージョンでも動作する。この関数を含め、すべての
DbgHelp
関数はシングルスレッドである。そのため複数のスレッドから同時に呼び出すと、予期しない動作やメモリ破壊を招く可能性が高い。これを避けるには、複数スレッドからの並行呼び出しをすべて同期する必要がある。この関数の
Unicode 版を呼び出すには DBGHELP_TRANSLATE_TCHAR を定義する。SymGetModuleInfoW64 は
DbgHelp.h で次のように定義されている。
(以下省略)

情報

プラグイン / モジュール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