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

ICorProfilerCallback4

COM
IID7b63b2e3-107d-4d48-b2f6-f61e229470d2継承元ICorProfilerCallback3自前メソッド開始 vtbl83

メソッド 6

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

vtbl 83 HRESULT ReJITCompilationStarted(UINT_PTR functionId, UINT_PTR rejitId, BOOL fIsSafeToBlock)
functionIdUINT_PTRin再 JIT コンパイルが開始された関数の識別子である。
rejitIdUINT_PTRinこの再 JIT を識別する ReJIT 識別子である。
fIsSafeToBlockBOOLinこのコールバック内でブロックしても安全かどうかを示す BOOL である。
vtbl 84 HRESULT GetReJITParameters(UINT_PTR moduleId, DWORD methodId, ICorProfilerFunctionControl* pFunctionControl)
moduleIdUINT_PTRin再 JIT 対象メソッドが属するモジュールの識別子である。
methodIdDWORDin再 JIT 対象メソッドのメタデータトークンである。
pFunctionControlICorProfilerFunctionControl*in再 JIT コードの IL や codegen フラグを設定するための ICorProfilerFunctionControl インターフェイスへのポインタである。
vtbl 85 HRESULT ReJITCompilationFinished(UINT_PTR functionId, UINT_PTR rejitId, HRESULT hrStatus, BOOL fIsSafeToBlock)
functionIdUINT_PTRin再 JIT コンパイルが完了した関数の識別子である。
rejitIdUINT_PTRinこの再 JIT を識別する ReJIT 識別子である。
hrStatusHRESULTin再 JIT コンパイルの成否を示す HRESULT である。
fIsSafeToBlockBOOLinこのコールバック内でブロックしても安全かどうかを示す BOOL である。
vtbl 86 HRESULT ReJITError(UINT_PTR moduleId, DWORD methodId, UINT_PTR functionId, HRESULT hrStatus)
moduleIdUINT_PTRin再 JIT 中にエラーが発生したメソッドが属するモジュールの識別子である。
methodIdDWORDinエラーが発生したメソッドのメタデータトークンである。
functionIdUINT_PTRinエラーが発生した関数の識別子である。
hrStatusHRESULTin発生したエラーを示す HRESULT である。
vtbl 87 HRESULT MovedReferences2(DWORD cMovedObjectIDRanges, UINT_PTR* oldObjectIDRangeStart, UINT_PTR* newObjectIDRangeStart, UINT_PTR* cObjectIDRangeLength)
cMovedObjectIDRangesDWORDinガベージコレクションにより移動したオブジェクト ID 範囲の数である。
oldObjectIDRangeStartUINT_PTR*in移動前の各範囲の開始オブジェクト ID を格納した配列へのポインタである。
newObjectIDRangeStartUINT_PTR*in移動後の各範囲の開始オブジェクト ID を格納した配列へのポインタである。
cObjectIDRangeLengthUINT_PTR*in各範囲の長さ (バイト数) を格納した UINT_PTR 配列へのポインタである。
vtbl 88 HRESULT SurvivingReferences2(DWORD cSurvivingObjectIDRanges, UINT_PTR* objectIDRangeStart, UINT_PTR* cObjectIDRangeLength)
cSurvivingObjectIDRangesDWORDinコレクション後に生存したオブジェクト ID 範囲の数である。
objectIDRangeStartUINT_PTR*in各生存範囲の開始オブジェクト ID を格納した配列へのポインタである。
cObjectIDRangeLengthUINT_PTR*in各生存範囲の長さ (バイト数) を格納した UINT_PTR 配列へのポインタである。

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICorProfilerCallback4 "{7B63B2E3-107D-4D48-B2F6-F61E229470D2}"
#usecom global ICorProfilerCallback4 IID_ICorProfilerCallback4 "{}"
#comfunc global ICorProfilerCallback4_ReJITCompilationStarted   83 sptr,sptr,int
#comfunc global ICorProfilerCallback4_GetReJITParameters        84 sptr,int,sptr
#comfunc global ICorProfilerCallback4_ReJITCompilationFinished  85 sptr,sptr,int,int
#comfunc global ICorProfilerCallback4_ReJITError                86 sptr,int,sptr,int
#comfunc global ICorProfilerCallback4_MovedReferences2          87 int,var,var,var
#comfunc global ICorProfilerCallback4_SurvivingReferences2      88 int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。