ホーム › System.Diagnostics.ClrProfiling › ICorProfilerCallback2
ICorProfilerCallback2
COMメソッド 8
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| threadId | UINT_PTR | in | 名前が変更されたスレッドの識別子である。 |
| cchName | DWORD | in | name バッファの文字数である。 |
| name | LPWSTR | inoptional | スレッドの新しい名前を格納した文字列である。NULL 終端されていない場合がある。 |
vtbl 73 HRESULT GarbageCollectionStarted(INT cGenerations, BOOL* generationCollected, COR_PRF_GC_REASON reason)
| cGenerations | INT | in | generationCollected 配列の要素数 (世代数) である。 |
| generationCollected | BOOL* | in | 各世代が今回のコレクション対象かどうかを示す BOOL の配列へのポインタである。 |
| reason | COR_PRF_GC_REASON | in | ガベージコレクションが開始された理由を示す COR_PRF_GC_REASON 列挙値である。 |
vtbl 74 HRESULT SurvivingReferences(DWORD cSurvivingObjectIDRanges, UINT_PTR* objectIDRangeStart, DWORD* cObjectIDRangeLength)
| cSurvivingObjectIDRanges | DWORD | in | コレクション後に生存したオブジェクト ID 範囲の数である。 |
| objectIDRangeStart | UINT_PTR* | in | 各生存範囲の開始オブジェクト ID を格納した配列へのポインタである。 |
| cObjectIDRangeLength | DWORD* | in | 各生存範囲の長さ (バイト数) を格納した配列へのポインタである。 |
vtbl 75 HRESULT GarbageCollectionFinished()
| finalizerFlags | DWORD | in | ファイナライズ対象オブジェクトに関するフラグを示す DWORD である。 |
| objectID | UINT_PTR | in | ファイナライズキューに登録されたオブジェクトの識別子である。 |
vtbl 77 HRESULT RootReferences2(DWORD cRootRefs, UINT_PTR* rootRefIds, COR_PRF_GC_ROOT_KIND* rootKinds, COR_PRF_GC_ROOT_FLAGS* rootFlags, UINT_PTR* rootIds)
| cRootRefs | DWORD | in | ルート参照の数である。 |
| rootRefIds | UINT_PTR* | in | ルートから参照されるオブジェクトの識別子を格納した配列へのポインタである。 |
| rootKinds | COR_PRF_GC_ROOT_KIND* | in | 各ルートの種類を示す COR_PRF_GC_ROOT_KIND 配列へのポインタである。 |
| rootFlags | COR_PRF_GC_ROOT_FLAGS* | in | 各ルートのフラグを示す COR_PRF_GC_ROOT_FLAGS 配列へのポインタである。 |
| rootIds | UINT_PTR* | in | 各ルートに固有の識別子 (スタックフレームのメソッド ID など) を格納した配列へのポインタである。 |
| handleId | UINT_PTR | in | 作成された GC ハンドルの識別子である。 |
| initialObjectId | UINT_PTR | in | ハンドルが当初参照するオブジェクトの識別子である。 |
| handleId | UINT_PTR | in | 破棄された GC ハンドルの識別子である。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICorProfilerCallback2 "{8A8CC829-CCF2-49FE-BBAE-0F022228071A}" #usecom global ICorProfilerCallback2 IID_ICorProfilerCallback2 "{}" #comfunc global ICorProfilerCallback2_ThreadNameChanged 72 sptr,int,wstr #comfunc global ICorProfilerCallback2_GarbageCollectionStarted 73 int,var,int #comfunc global ICorProfilerCallback2_SurvivingReferences 74 int,var,var #comfunc global ICorProfilerCallback2_GarbageCollectionFinished 75 #comfunc global ICorProfilerCallback2_FinalizeableObjectQueued 76 int,sptr #comfunc global ICorProfilerCallback2_RootReferences2 77 int,var,var,var,var #comfunc global ICorProfilerCallback2_HandleCreated 78 sptr,sptr #comfunc global ICorProfilerCallback2_HandleDestroyed 79 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICorProfilerCallback2 "{8A8CC829-CCF2-49FE-BBAE-0F022228071A}" #usecom global ICorProfilerCallback2 IID_ICorProfilerCallback2 "{}" #comfunc global ICorProfilerCallback2_ThreadNameChanged 72 sptr,int,wstr #comfunc global ICorProfilerCallback2_GarbageCollectionStarted 73 int,sptr,int #comfunc global ICorProfilerCallback2_SurvivingReferences 74 int,sptr,sptr #comfunc global ICorProfilerCallback2_GarbageCollectionFinished 75 #comfunc global ICorProfilerCallback2_FinalizeableObjectQueued 76 int,sptr #comfunc global ICorProfilerCallback2_RootReferences2 77 int,sptr,sptr,sptr,sptr #comfunc global ICorProfilerCallback2_HandleCreated 78 sptr,sptr #comfunc global ICorProfilerCallback2_HandleDestroyed 79 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。