SymLoadModule 関数 (dbghelp.h)

シンボル テーブルを読み込みます。

この関数は SymLoadModuleEx 関数に置き換えられます。

構文

DWORD IMAGEAPI SymLoadModule(
  [in]           HANDLE hProcess,
  [in, optional] HANDLE hFile,
  [in, optional] PCSTR  ImageName,
  [in, optional] PCSTR  ModuleName,
  [in]           DWORD  BaseOfDll,
  [in]           DWORD  SizeOfDll
);

パラメーター

[in] hProcess

プロセスのハンドル。 このハンドルは、 SymInitialize 関数に以前に渡されている必要があります。

[in, optional] hFile

実行可能イメージのファイルへのハンドル。 この引数は主にデバッガーによって使用され、デバッガーはデバッグ イベントから取得したファイル ハンドルを渡します。 NULL の値は、hFile が使用されていないことを示します。

[in, optional] ImageName

実行可能イメージの名前。 この名前には、部分パス、完全パス、またはパスをまったく含めずに指定できます。 指定された名前でファイルを見つけられない場合は、シンボル検索パスが使用されます。

[in, optional] ModuleName

モジュールのショートカット名。 ポインター値が NULL の場合、ライブラリはシンボル ファイルのベース名を使用して名前を作成します。

[in] BaseOfDll

モジュールの読み込みアドレス。 値が 0 の場合、ライブラリはシンボル ファイルから読み込みアドレスを取得します。 シンボル ファイルに含まれる読み込みアドレスが、必ずしも実際の読み込みアドレスであるとは限りません。 デバッガーや、実際の読み込みアドレスを持つ他のアプリケーションでは、この関数を呼び出すときに実際の読み込みアドレスを使用する必要があります。

イメージが .pdb ファイルの場合、このパラメーターを 0 にすることはできません。

[in] SizeOfDll

モジュールのサイズ (バイト単位)。 値が 0 の場合、ライブラリはシンボル ファイルからサイズを取得します。 シンボル ファイルに含まれるサイズは、必ずしも実際のサイズとは限りません。 デバッガーや実際のサイズを持つ他のアプリケーションでは、この関数を呼び出すときに実際のサイズを使用する必要があります。

イメージが .pdb ファイルの場合、このパラメーターを 0 にすることはできません。

戻り値

関数が成功した場合、戻り値は読み込まれたモジュールのベース アドレスです。

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

モジュールが既に読み込まれている場合、戻り値は 0 で、GetLastError はERROR_SUCCESSを返します。

解説

シンボル ハンドラーはモジュールのエントリを作成し、遅延シンボル読み込みオプションがオフになっている場合は、シンボルの読み込みが試行されます。 遅延シンボルの読み込みが有効になっている場合、モジュールは遅延としてマークされ、モジュール内のシンボルへの参照が行われるまでシンボルは読み込まれません。

シンボル テーブルをアンロードするには、 SymUnloadModule64 関数を使用します。

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

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymLoadModule SymLoadModule64
#else
DWORD
IMAGEAPI
SymLoadModule(
    __in HANDLE hProcess,
    __in_opt HANDLE hFile,
    __in_opt PCSTR ImageName,
    __in_opt PCSTR ModuleName,
    __in DWORD BaseOfDll,
    __in DWORD SizeOfDll
    );
#endif

要件

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

関連項目

DbgHelp 関数

SymInitialize

SymUnloadModule64