ホーム › System.Diagnostics.ClrProfiling › ICorProfilerInfo10
ICorProfilerInfo10
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 93 HRESULT EnumerateObjectReferences(UINT_PTR objectId, ObjectReferenceCallback callback, void* clientData)
| objectId | UINT_PTR | in | 参照を列挙する対象オブジェクトの ID を指定する。 |
| callback | ObjectReferenceCallback | in | 対象オブジェクトが保持する各オブジェクト参照ごとに呼び出される ObjectReferenceCallback コールバック関数である。 |
| clientData | void* | inout | コールバックにそのまま渡されるユーザー定義データへのポインタである。 |
| objectId | UINT_PTR | in | 凍結オブジェクトかどうかを調べる対象オブジェクトの ID を指定する。 |
| pbFrozen | BOOL* | inout | 対象が凍結(frozen)セグメント上のオブジェクトである場合に TRUE を受け取る。 |
| pThreshold | DWORD* | inout | ラージオブジェクトヒープ(LOH)に割り当てられる基準となるオブジェクトサイズのしきい値(バイト数)を受け取る。 |
vtbl 96 HRESULT RequestReJITWithInliners(DWORD dwRejitFlags, DWORD cFunctions, UINT_PTR* moduleIds, DWORD* methodIds)
| dwRejitFlags | DWORD | in | 再 JIT の挙動を制御する COR_PRF_REJIT_FLAGS フラグを指定する。 |
| cFunctions | DWORD | in | moduleIds 配列および methodIds 配列に含まれる再 JIT 対象関数の数を指定する。 |
| moduleIds | UINT_PTR* | in | 再 JIT するメソッドが属するモジュールの ID を格納した配列へのポインタである。 |
| methodIds | DWORD* | in | 再 JIT するメソッドのメタデータトークンを格納した配列へのポインタである。 |
vtbl 97 HRESULT SuspendRuntime()
vtbl 98 HRESULT ResumeRuntime()
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICorProfilerInfo10 "{2F1B5152-C869-40C9-AA5F-3ABE026BD720}" #usecom global ICorProfilerInfo10 IID_ICorProfilerInfo10 "{}" #comfunc global ICorProfilerInfo10_EnumerateObjectReferences 93 sptr,sptr,sptr #comfunc global ICorProfilerInfo10_IsFrozenObject 94 sptr,var #comfunc global ICorProfilerInfo10_GetLOHObjectSizeThreshold 95 var #comfunc global ICorProfilerInfo10_RequestReJITWithInliners 96 int,int,var,var #comfunc global ICorProfilerInfo10_SuspendRuntime 97 #comfunc global ICorProfilerInfo10_ResumeRuntime 98 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICorProfilerInfo10 "{2F1B5152-C869-40C9-AA5F-3ABE026BD720}" #usecom global ICorProfilerInfo10 IID_ICorProfilerInfo10 "{}" #comfunc global ICorProfilerInfo10_EnumerateObjectReferences 93 sptr,sptr,sptr #comfunc global ICorProfilerInfo10_IsFrozenObject 94 sptr,sptr #comfunc global ICorProfilerInfo10_GetLOHObjectSizeThreshold 95 sptr #comfunc global ICorProfilerInfo10_RequestReJITWithInliners 96 int,int,sptr,sptr #comfunc global ICorProfilerInfo10_SuspendRuntime 97 #comfunc global ICorProfilerInfo10_ResumeRuntime 98 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。