Win32 API 日本語リファレンス
ホームSystem.ClrHosting › ICLRDebugging

ICLRDebugging

COM
IIDd28f3c5a-9634-4206-a509-477552eefb10継承元IUnknown自前メソッド開始 vtbl3

メソッド 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)
moduleBaseAddressULONGLONGin対象プロセス内の CLR モジュールのベースアドレスを指定する。
pDataTargetIUnknown*in対象プロセスのメモリやレジスタへアクセスするためのデータターゲットを表す IUnknown インターフェイスへのポインタである。
pLibraryProviderICLRDebuggingLibraryProvider*in必要なデバッグ用ライブラリを提供する ICLRDebuggingLibraryProvider インターフェイスへのポインタである。
pMaxDebuggerSupportedVersionCLR_DEBUGGING_VERSION*inデバッガがサポートする最大の CLR バージョンを表す CLR_DEBUGGING_VERSION 構造体へのポインタである。
riidProcessGUID*in要求するプロセスインターフェイスの識別子(IID)を表す GUID へのポインタである。
ppProcessIUnknown**out対象プロセスを表すデバッグインターフェイスへのポインタを受け取る。
pVersionCLR_DEBUGGING_VERSION*inout実際に検出された CLR のバージョンを受け取る CLR_DEBUGGING_VERSION 構造体へのポインタである。
pdwFlagsCLR_DEBUGGING_PROCESS_FLAGS*outデバッグ対象プロセスの状態を示す CLR_DEBUGGING_PROCESS_FLAGS 値を受け取るポインタである。
vtbl 4 HRESULT CanUnloadNow(HMODULE hModule)
hModuleHMODULEinアンロード可能かどうかを判定する対象モジュールのハンドルである。

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 指定が可能。