PSYMBOL_REGISTERED_CALLBACK64
コールバックシグネチャ
BOOL PSYMBOL_REGISTERED_CALLBACK64(
HANDLE hProcess,
DWORD ActionCode,
ULONGLONG CallbackData,
ULONGLONG UserContext
);パラメーター
| フィールド | 型 | 説明 | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hProcess | HANDLE | 最初に SymInitialize 関数に渡されたプロセスのハンドルです。 | ||||||||||||||||||||||||||||
| ActionCode | DWORD | コールバックコードです。このパラメーターには、次のいずれかの値を指定できます。
| ||||||||||||||||||||||||||||
| CallbackData | ULONGLONG | 操作のデータです。このデータの形式は、ActionCode パラメーターの値によって異なります。 コールバック関数が SymRegisterCallbackW64 で登録された場合、データは Unicode の文字列またはデータ構造体になります。それ以外の場合、データは ANSI 形式です。 | ||||||||||||||||||||||||||||
| UserContext | ULONGLONG | SymRegisterCallback64 で指定されたユーザー定義の値、または NULL です。通常このパラメーターは、コールバック関数が何らかのコンテキストを確立できるようにするデータ構造体へのポインターを渡すために、アプリケーションによって使用されます。 |
公式ドキュメント
SymRegisterCallback64 関数と共に使用される、アプリケーション定義のコールバック関数です。この関数はシンボルハンドラーによって呼び出されます。
PSYMBOL_REGISTERED_CALLBACK64 型は、このコールバック関数へのポインターを定義します。 SymRegisterCallbackProc64 は、アプリケーション定義の関数名のプレースホルダーです。
戻り値
コードの処理に成功したことを示すには、TRUE を返します。
コードの処理に失敗したことを示すには、FALSE を返します。特定のコードを処理しない場合も、FALSE を返してください。(この場合に TRUE を返すと、意図しない結果を招くことがあります。)
解説(Remarks)
呼び出し元のアプリケーションは、シンボルハンドラー関数のいずれかに対する別の呼び出しの結果として、登録されたコールバック関数を介して呼び出されます。呼び出し元のアプリケーションは、それによって生じ得る副作用に備えておく必要があります。アプリケーションが 1 つのコールバック関数を複数のスレッドで使用している場合は、コールバック関数のコンテキスト内で一部の種類のデータアクセスを同期する配慮が必要になることがあります。
このコールバック関数は、PSYMBOL_REGISTERED_CALLBACK コールバック関数に代わるものです。 PSYMBOL_REGISTERED_CALLBACK は Dbghelp.h で次のように定義されています。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define PSYMBOL_REGISTERED_CALLBACK PSYMBOL_REGISTERED_CALLBACK64
#else
typedef BOOL
(CALLBACK *PSYMBOL_REGISTERED_CALLBACK)(
__in HANDLE hProcess,
__in ULONG ActionCode,
__in_opt PVOID CallbackData,
__in_opt PVOID UserContext
);
#endif
より詳細な例については、Getting Notifications を参照してください。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)