ホーム › System.ClrHosting › ICLRDebugging
ICLRDebugging
COMメソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT OpenVirtualProcess(ULONGLONG moduleBaseAddress, IUnknown* pDataTarget, ICLRDebuggingLibraryProvider* pLibraryProvider, CLR_DEBUGGING_VERSION* pMaxDebuggerSupportedVersion, GUID* riidProcess, IUnknown** ppProcess, CLR_DEBUGGING_VERSION* pVersion, CLR_DEBUGGING_PROCESS_FLAGS* pdwFlags)
| moduleBaseAddress | ULONGLONG | in | 対象プロセス内の CLR モジュールのベースアドレスを指定する。 |
| pDataTarget | IUnknown* | in | 対象プロセスのメモリやレジスタへアクセスするためのデータターゲットを表す IUnknown インターフェイスへのポインタである。 |
| pLibraryProvider | ICLRDebuggingLibraryProvider* | in | 必要なデバッグ用ライブラリを提供する ICLRDebuggingLibraryProvider インターフェイスへのポインタである。 |
| pMaxDebuggerSupportedVersion | CLR_DEBUGGING_VERSION* | in | デバッガがサポートする最大の CLR バージョンを表す CLR_DEBUGGING_VERSION 構造体へのポインタである。 |
| riidProcess | GUID* | in | 要求するプロセスインターフェイスの識別子(IID)を表す GUID へのポインタである。 |
| ppProcess | IUnknown** | out | 対象プロセスを表すデバッグインターフェイスへのポインタを受け取る。 |
| pVersion | CLR_DEBUGGING_VERSION* | inout | 実際に検出された CLR のバージョンを受け取る CLR_DEBUGGING_VERSION 構造体へのポインタである。 |
| pdwFlags | CLR_DEBUGGING_PROCESS_FLAGS* | out | デバッグ対象プロセスの状態を示す CLR_DEBUGGING_PROCESS_FLAGS 値を受け取るポインタである。 |
| hModule | HMODULE | in | アンロード可能かどうかを判定する対象モジュールのハンドルである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICLRDebugging "{D28F3C5A-9634-4206-A509-477552EEFB10}" #usecom global ICLRDebugging IID_ICLRDebugging "{}" #comfunc global ICLRDebugging_OpenVirtualProcess 3 int64,sptr,sptr,var,var,sptr,var,var #comfunc global ICLRDebugging_CanUnloadNow 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICLRDebugging "{D28F3C5A-9634-4206-A509-477552EEFB10}" #usecom global ICLRDebugging IID_ICLRDebugging "{}" #comfunc global ICLRDebugging_OpenVirtualProcess 3 int64,sptr,sptr,sptr,sptr,sptr,sptr,sptr #comfunc global ICLRDebugging_CanUnloadNow 4 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。