SymRegisterFunctionEntryCallback 関数 (dbghelp.h)

Alpha コンピューターのスタック ウォーキング プロシージャで使用するコールバック関数を登録します。

構文

BOOL IMAGEAPI SymRegisterFunctionEntryCallback(
  [in] HANDLE                     hProcess,
  [in] PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
  [in] PVOID                      UserContext
);

パラメーター

[in] hProcess

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

[in] CallbackFunction

SymRegisterFunctionEntryCallbackProc64 コールバック関数。

[in] UserContext

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

戻り値

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

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

注釈

SymRegisterFunctionEntryCallback64 関数を使用すると、アプリケーションはスタック ウォーキング プロシージャで使用するコールバック関数を登録できます。 スタック ウォーク プロシージャは、アドレスの関数テーブル エントリが見つからない場合に、登録済みのコールバック関数を呼び出します。 ほとんどの場合、スタック・ウォーキング・プロシージャーは、アドレスを含むイメージの関数テーブル内の関数テーブル項目を検索します。 ただし、関数テーブルエントリがイメージ内にない状況では、このコールバックにより、デバッガーは別のソースから関数テーブルエントリを提供できます。 たとえば、Alpha コンピューターで実行時に生成されたコードでは、例外処理とスタック トレースをサポートする動的関数テーブルを定義できます。

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

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

#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define SymRegisterFunctionEntryCallback SymRegisterFunctionEntryCallback64
#else
BOOL
IMAGEAPI
SymRegisterFunctionEntryCallback(
    __in HANDLE hProcess,
    __in PSYMBOL_FUNCENTRY_CALLBACK CallbackFunction,
    __in_opt PVOID UserContext
    );
#endif

要件

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

こちらもご覧ください

DbgHelp 関数

StackWalk64

SymRegisterFunctionEntryCallbackProc64