Win32 API 日本語リファレンス
ホームSystem.Diagnostics.Debug.Extensions › IDebugEventCallbacks

IDebugEventCallbacks

COM
IID337be28b-5036-4d72-b6bf-c45fbb9f2eaa継承元IUnknown自前メソッド開始 vtbl3

メソッド 14

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT GetInterestMask(DWORD* Mask)
MaskDWORD*outコールバックが受け取りたいイベントを示すビットマスクを受け取るポインタである。
vtbl 4 HRESULT Breakpoint(IDebugBreakpoint* Bp)
BpIDebugBreakpoint*in発生したブレークポイントを表すインターフェイスへのポインタである。
vtbl 5 HRESULT Exception(EXCEPTION_RECORD64* Exception, DWORD FirstChance)
ExceptionEXCEPTION_RECORD64*in発生した例外を記述する EXCEPTION_RECORD64 構造体へのポインタである。
FirstChanceDWORDin初回(ファーストチャンス)例外であれば 0 以外を指定する。
vtbl 6 HRESULT CreateThread(ULONGLONG Handle, ULONGLONG DataOffset, ULONGLONG StartOffset)
HandleULONGLONGin作成されたスレッドのハンドルを指定する。
DataOffsetULONGLONGinスレッド環境ブロック(TEB)などスレッドデータの仮想アドレスを指定する。
StartOffsetULONGLONGinスレッドの開始アドレスを指定する。
vtbl 7 HRESULT ExitThread(DWORD ExitCode)
ExitCodeDWORDin終了したスレッドの終了コードを指定する。
vtbl 8 HRESULT CreateProcessA(ULONGLONG ImageFileHandle, ULONGLONG Handle, ULONGLONG BaseOffset, DWORD ModuleSize, LPSTR ModuleName, LPSTR ImageName, DWORD CheckSum, DWORD TimeDateStamp, ULONGLONG InitialThreadHandle, ULONGLONG ThreadDataOffset, ULONGLONG StartOffset)
ImageFileHandleULONGLONGin実行イメージファイルのハンドルを指定する。
HandleULONGLONGin作成されたプロセスのハンドルを指定する。
BaseOffsetULONGLONGinプロセスの実行モジュールのベースアドレスを指定する。
ModuleSizeDWORDinモジュールのサイズ(バイト単位)を指定する。
ModuleNameLPSTRinoptionalモジュール名を指定する。
ImageNameLPSTRinoptionalイメージファイルのパス名を指定する。
CheckSumDWORDinイメージのチェックサムを指定する。
TimeDateStampDWORDinイメージのタイムスタンプを指定する。
InitialThreadHandleULONGLONGin最初のスレッドのハンドルを指定する。
ThreadDataOffsetULONGLONGin最初のスレッドのスレッドデータの仮想アドレスを指定する。
StartOffsetULONGLONGin最初のスレッドの開始アドレスを指定する。
vtbl 9 HRESULT ExitProcess(DWORD ExitCode)
ExitCodeDWORDin終了したプロセスの終了コードを指定する。
vtbl 10 HRESULT LoadModule(ULONGLONG ImageFileHandle, ULONGLONG BaseOffset, DWORD ModuleSize, LPSTR ModuleName, LPSTR ImageName, DWORD CheckSum, DWORD TimeDateStamp)
ImageFileHandleULONGLONGin読み込まれたモジュールのイメージファイルのハンドルを指定する。
BaseOffsetULONGLONGin読み込まれたモジュールのベースアドレスを指定する。
ModuleSizeDWORDinモジュールのサイズ(バイト単位)を指定する。
ModuleNameLPSTRinoptionalモジュール名を指定する。
ImageNameLPSTRinoptionalイメージファイルのパス名を指定する。
CheckSumDWORDinイメージのチェックサムを指定する。
TimeDateStampDWORDinイメージのタイムスタンプを指定する。
vtbl 11 HRESULT UnloadModule(LPSTR ImageBaseName, ULONGLONG BaseOffset)
ImageBaseNameLPSTRinoptionalアンロードされたモジュールのベース名を指定する。
BaseOffsetULONGLONGinアンロードされたモジュールのベースアドレスを指定する。
vtbl 12 HRESULT SystemError(DWORD Error, DWORD Level)
ErrorDWORDin発生したシステムエラーのエラーコードを指定する。
LevelDWORDinエラーの重大度レベルを指定する。
vtbl 13 HRESULT SessionStatus(DWORD Status)
StatusDWORDinデバッグセッションの新しい状態を示す値を指定する。
vtbl 14 HRESULT ChangeDebuggeeState(DWORD Flags, ULONGLONG Argument)
FlagsDWORDin変化したデバッグ対象の状態を示すフラグを指定する。
ArgumentULONGLONGin状態変化に関する追加情報を指定する。
vtbl 15 HRESULT ChangeEngineState(DWORD Flags, ULONGLONG Argument)
FlagsDWORDin変化したデバッグエンジンの状態を示すフラグを指定する。
ArgumentULONGLONGin状態変化に関する追加情報を指定する。
vtbl 16 HRESULT ChangeSymbolState(DWORD Flags, ULONGLONG Argument)
FlagsDWORDin変化したシンボルの状態を示すフラグを指定する。
ArgumentULONGLONGin状態変化に関する追加情報を指定する。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_IDebugEventCallbacks "{337BE28B-5036-4D72-B6BF-C45FBB9F2EAA}"
#usecom global IDebugEventCallbacks IID_IDebugEventCallbacks "{}"
#comfunc global IDebugEventCallbacks_GetInterestMask      3 var
#comfunc global IDebugEventCallbacks_Breakpoint           4 sptr
#comfunc global IDebugEventCallbacks_Exception            5 var,int
#comfunc global IDebugEventCallbacks_CreateThread         6 int64,int64,int64
#comfunc global IDebugEventCallbacks_ExitThread           7 int
#comfunc global IDebugEventCallbacks_CreateProcessA       8 int64,int64,int64,int,str,str,int,int,int64,int64,int64
#comfunc global IDebugEventCallbacks_ExitProcess          9 int
#comfunc global IDebugEventCallbacks_LoadModule           10 int64,int64,int,str,str,int,int
#comfunc global IDebugEventCallbacks_UnloadModule         11 str,int64
#comfunc global IDebugEventCallbacks_SystemError          12 int,int
#comfunc global IDebugEventCallbacks_SessionStatus        13 int
#comfunc global IDebugEventCallbacks_ChangeDebuggeeState  14 int,int64
#comfunc global IDebugEventCallbacks_ChangeEngineState    15 int,int64
#comfunc global IDebugEventCallbacks_ChangeSymbolState    16 int,int64
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。