SymGetModuleBase 関数 (dbghelp.h)
指定したアドレスを含むモジュールのベース アドレスを取得します。
構文
DWORD IMAGEAPI SymGetModuleBase(
[in] HANDLE hProcess,
[in] DWORD dwAddr
);
パラメーター
[in] hProcess
SymInitialize 関数に最初に渡されたプロセスのハンドル。
[in] dwAddr
SymLoadModule64 関数によって読み込まれたモジュールの 1 つに含まれる仮想アドレス。
戻り値
関数が成功した場合、戻り値は 0 以外の仮想アドレスになります。 値は、 dwAddr パラメーターで指定されたアドレスを含むモジュールのベース アドレスです。
関数が失敗した場合は、0 を返します。 拡張エラー情報を取得するには、 GetLastError を呼び出します。
解説
モジュール テーブルは、 dwAddr を含むモジュールを検索します。 モジュールは、各モジュールの読み込みアドレスとサイズに基づいて配置されます。
この関数など、すべての DbgHelp 関数はシングル スレッドです。 そのため、複数のスレッドからこの関数を呼び出すと、予期しない動作やメモリ破損が発生する可能性があります。 これを回避するには、複数のスレッドからのすべての同時呼び出しをこの関数に同期する必要があります。
この関数は SymGetModuleBase 関数よりも優先されます。 詳細については、「 プラットフォーム サポートの更新」を参照してください。 SymGetModuleBase は、DbgHelp.h で次のように定義されています。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymGetModuleBase SymGetModuleBase64
#else
DWORD
IMAGEAPI
SymGetModuleBase(
__in HANDLE hProcess,
__in DWORD dwAddr
);
#endif
要件
対象プラットフォーム | Windows |
ヘッダー | dbghelp.h |
Library | Dbghelp.lib |
[DLL] | Dbghelp.dll |
再頒布可能パッケージ | DbgHelp.dll 5.1 以降 |