Win32 API 日本語リファレンス
ホームSystem.Diagnostics.ClrProfiling › ICorProfilerCallback2

ICorProfilerCallback2

COM
IID8a8cc829-ccf2-49fe-bbae-0f022228071a継承元ICorProfilerCallback自前メソッド開始 vtbl72

メソッド 8

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

vtbl 72 HRESULT ThreadNameChanged(UINT_PTR threadId, DWORD cchName, LPWSTR name)
threadIdUINT_PTRin名前が変更されたスレッドの識別子である。
cchNameDWORDinname バッファの文字数である。
nameLPWSTRinoptionalスレッドの新しい名前を格納した文字列である。NULL 終端されていない場合がある。
vtbl 73 HRESULT GarbageCollectionStarted(INT cGenerations, BOOL* generationCollected, COR_PRF_GC_REASON reason)
cGenerationsINTingenerationCollected 配列の要素数 (世代数) である。
generationCollectedBOOL*in各世代が今回のコレクション対象かどうかを示す BOOL の配列へのポインタである。
reasonCOR_PRF_GC_REASONinガベージコレクションが開始された理由を示す COR_PRF_GC_REASON 列挙値である。
vtbl 74 HRESULT SurvivingReferences(DWORD cSurvivingObjectIDRanges, UINT_PTR* objectIDRangeStart, DWORD* cObjectIDRangeLength)
cSurvivingObjectIDRangesDWORDinコレクション後に生存したオブジェクト ID 範囲の数である。
objectIDRangeStartUINT_PTR*in各生存範囲の開始オブジェクト ID を格納した配列へのポインタである。
cObjectIDRangeLengthDWORD*in各生存範囲の長さ (バイト数) を格納した配列へのポインタである。
vtbl 75 HRESULT GarbageCollectionFinished()
vtbl 76 HRESULT FinalizeableObjectQueued(DWORD finalizerFlags, UINT_PTR objectID)
finalizerFlagsDWORDinファイナライズ対象オブジェクトに関するフラグを示す DWORD である。
objectIDUINT_PTRinファイナライズキューに登録されたオブジェクトの識別子である。
vtbl 77 HRESULT RootReferences2(DWORD cRootRefs, UINT_PTR* rootRefIds, COR_PRF_GC_ROOT_KIND* rootKinds, COR_PRF_GC_ROOT_FLAGS* rootFlags, UINT_PTR* rootIds)
cRootRefsDWORDinルート参照の数である。
rootRefIdsUINT_PTR*inルートから参照されるオブジェクトの識別子を格納した配列へのポインタである。
rootKindsCOR_PRF_GC_ROOT_KIND*in各ルートの種類を示す COR_PRF_GC_ROOT_KIND 配列へのポインタである。
rootFlagsCOR_PRF_GC_ROOT_FLAGS*in各ルートのフラグを示す COR_PRF_GC_ROOT_FLAGS 配列へのポインタである。
rootIdsUINT_PTR*in各ルートに固有の識別子 (スタックフレームのメソッド ID など) を格納した配列へのポインタである。
vtbl 78 HRESULT HandleCreated(UINT_PTR handleId, UINT_PTR initialObjectId)
handleIdUINT_PTRin作成された GC ハンドルの識別子である。
initialObjectIdUINT_PTRinハンドルが当初参照するオブジェクトの識別子である。
vtbl 79 HRESULT HandleDestroyed(UINT_PTR handleId)
handleIdUINT_PTRin破棄された 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 指定が可能。