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

ICorProfilerInfo3

COM
IIDb555ed4f-452a-4e54-8b39-b5360bad32a0継承元ICorProfilerInfo2自前メソッド開始 vtbl57

メソッド 14

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

vtbl 57 HRESULT EnumJITedFunctions(ICorProfilerFunctionEnum** ppEnum)
ppEnumICorProfilerFunctionEnum**outJIT コンパイル済みの関数を列挙する ICorProfilerFunctionEnum インターフェイスを受け取るポインタである。
vtbl 58 HRESULT RequestProfilerDetach(DWORD dwExpectedCompletionMilliseconds)
dwExpectedCompletionMillisecondsDWORDinデタッチ完了までの推定待機時間 (ミリ秒) を指定する DWORD である。
vtbl 59 HRESULT SetFunctionIDMapper2(FunctionIDMapper2* pFunc, void* clientData)
pFuncFunctionIDMapper2*inFunctionID を代替 ID に対応付けるためのマッパー関数 (FunctionIDMapper2) へのポインタである。
clientDatavoid*inマッパーにそのまま渡されるユーザー定義データを指すポインタである。
vtbl 60 HRESULT GetStringLayout2(DWORD* pStringLengthOffset, DWORD* pBufferOffset)
pStringLengthOffsetDWORD*out文字列オブジェクト内の文字列長フィールドのオフセットを受け取る DWORD へのポインタである。
pBufferOffsetDWORD*out文字列オブジェクト内の文字バッファのオフセットを受け取る DWORD へのポインタである。
vtbl 61 HRESULT SetEnterLeaveFunctionHooks3(FunctionEnter3* pFuncEnter3, FunctionLeave3* pFuncLeave3, FunctionTailcall3* pFuncTailcall3)
pFuncEnter3FunctionEnter3*in関数の開始時に呼び出されるフック (FunctionEnter3) へのポインタである。
pFuncLeave3FunctionLeave3*in関数の終了時に呼び出されるフック (FunctionLeave3) へのポインタである。
pFuncTailcall3FunctionTailcall3*in末尾呼び出し時に呼び出されるフック (FunctionTailcall3) へのポインタである。
vtbl 62 HRESULT SetEnterLeaveFunctionHooks3WithInfo(FunctionEnter3WithInfo* pFuncEnter3WithInfo, FunctionLeave3WithInfo* pFuncLeave3WithInfo, FunctionTailcall3WithInfo* pFuncTailcall3WithInfo)
pFuncEnter3WithInfoFunctionEnter3WithInfo*in引数情報付きで関数開始時に呼び出されるフック (FunctionEnter3WithInfo) へのポインタである。
pFuncLeave3WithInfoFunctionLeave3WithInfo*in戻り値情報付きで関数終了時に呼び出されるフック (FunctionLeave3WithInfo) へのポインタである。
pFuncTailcall3WithInfoFunctionTailcall3WithInfo*in情報付きで末尾呼び出し時に呼び出されるフック (FunctionTailcall3WithInfo) へのポインタである。
vtbl 63 HRESULT GetFunctionEnter3Info(UINT_PTR functionId, UINT_PTR eltInfo, UINT_PTR* pFrameInfo, DWORD* pcbArgumentInfo, COR_PRF_FUNCTION_ARGUMENT_INFO* pArgumentInfo)
functionIdUINT_PTRin情報を取得する対象の関数の識別子である。
eltInfoUINT_PTRinEnter3WithInfo フックに渡された ELT 情報の不透明な識別子である。
pFrameInfoUINT_PTR*out引数情報の取得に使用するフレーム情報を受け取るポインタである。
pcbArgumentInfoDWORD*inoutpArgumentInfo バッファのサイズ (バイト数) を入出力する DWORD へのポインタである。
pArgumentInfoCOR_PRF_FUNCTION_ARGUMENT_INFO*out関数の引数の配置情報を受け取る COR_PRF_FUNCTION_ARGUMENT_INFO 構造体へのポインタである。
vtbl 64 HRESULT GetFunctionLeave3Info(UINT_PTR functionId, UINT_PTR eltInfo, UINT_PTR* pFrameInfo, COR_PRF_FUNCTION_ARGUMENT_RANGE* pRetvalRange)
functionIdUINT_PTRin情報を取得する対象の関数の識別子である。
eltInfoUINT_PTRinLeave3WithInfo フックに渡された ELT 情報の不透明な識別子である。
pFrameInfoUINT_PTR*out戻り値情報の取得に使用するフレーム情報を受け取るポインタである。
pRetvalRangeCOR_PRF_FUNCTION_ARGUMENT_RANGE*out関数の戻り値が格納されているメモリ範囲を受け取る COR_PRF_FUNCTION_ARGUMENT_RANGE へのポインタである。
vtbl 65 HRESULT GetFunctionTailcall3Info(UINT_PTR functionId, UINT_PTR eltInfo, UINT_PTR* pFrameInfo)
functionIdUINT_PTRin情報を取得する対象の関数の識別子である。
eltInfoUINT_PTRinTailcall3WithInfo フックに渡された ELT 情報の不透明な識別子である。
pFrameInfoUINT_PTR*outフレーム情報を受け取るポインタである。
vtbl 66 HRESULT EnumModules(ICorProfilerModuleEnum** ppEnum)
ppEnumICorProfilerModuleEnum**outランタイムに読み込まれているモジュールを列挙する ICorProfilerModuleEnum インターフェイスを受け取るポインタである。
vtbl 67 HRESULT GetRuntimeInformation(WORD* pClrInstanceId, COR_PRF_RUNTIME_TYPE* pRuntimeType, WORD* pMajorVersion, WORD* pMinorVersion, WORD* pBuildNumber, WORD* pQFEVersion, DWORD cchVersionString, DWORD* pcchVersionString, LPWSTR szVersionString)
pClrInstanceIdWORD*outCLR インスタンスの識別子を受け取る WORD へのポインタである。
pRuntimeTypeCOR_PRF_RUNTIME_TYPE*outランタイムの種類を示す COR_PRF_RUNTIME_TYPE を受け取るポインタである。
pMajorVersionWORD*outランタイムのメジャーバージョンを受け取る WORD へのポインタである。
pMinorVersionWORD*outランタイムのマイナーバージョンを受け取る WORD へのポインタである。
pBuildNumberWORD*outランタイムのビルド番号を受け取る WORD へのポインタである。
pQFEVersionWORD*outランタイムの QFE (修正プログラム) バージョンを受け取る WORD へのポインタである。
cchVersionStringDWORDinszVersionString バッファの文字数 (容量) である。
pcchVersionStringDWORD*outバージョン文字列の実際の文字数を受け取る DWORD へのポインタである。
szVersionStringLPWSTRoutランタイムのバージョン文字列を受け取る文字列バッファである。
vtbl 68 HRESULT GetThreadStaticAddress2(UINT_PTR classId, DWORD fieldToken, UINT_PTR appDomainId, UINT_PTR threadId, void** ppAddress)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象のスレッド静的フィールドのメタデータトークンである。
appDomainIdUINT_PTRinアドレスを取得する対象のアプリケーションドメインの識別子である。
threadIdUINT_PTRinアドレスを取得する対象のスレッドの識別子である。
ppAddressvoid**out指定アプリケーションドメインおよびスレッドにおけるスレッド静的フィールドのアドレスを受け取るポインタである。
vtbl 69 HRESULT GetAppDomainsContainingModule(UINT_PTR moduleId, DWORD cAppDomainIds, DWORD* pcAppDomainIds, UINT_PTR* appDomainIds)
moduleIdUINT_PTRin対象のモジュールの識別子である。
cAppDomainIdsDWORDinappDomainIds バッファに格納できるアプリケーションドメイン数 (容量) である。
pcAppDomainIdsDWORD*outモジュールを含むアプリケーションドメインの実際の数を受け取る DWORD へのポインタである。
appDomainIdsUINT_PTR*outモジュールを含むアプリケーションドメインの識別子を受け取る配列である。
vtbl 70 HRESULT GetModuleInfo2(UINT_PTR moduleId, BYTE** ppBaseLoadAddress, DWORD cchName, DWORD* pcchName, LPWSTR szName, UINT_PTR* pAssemblyId, DWORD* pdwModuleFlags)
moduleIdUINT_PTRin情報を取得する対象のモジュールの識別子である。
ppBaseLoadAddressBYTE**outモジュールのベースロードアドレスを受け取るバイトポインタへのポインタである。
cchNameDWORDinszName バッファの文字数 (容量) である。
pcchNameDWORD*outモジュール名の実際の文字数を受け取る DWORD へのポインタである。
szNameLPWSTRoutモジュールのファイル名を受け取る文字列バッファである。
pAssemblyIdUINT_PTR*outモジュールが属するアセンブリの識別子を受け取るポインタである。
pdwModuleFlagsDWORD*outモジュールの特性を示す COR_PRF_MODULE_FLAGS を受け取る DWORD へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ICorProfilerInfo3 "{B555ED4F-452A-4E54-8B39-B5360BAD32A0}"
#usecom global ICorProfilerInfo3 IID_ICorProfilerInfo3 "{}"
#comfunc global ICorProfilerInfo3_EnumJITedFunctions                   57 sptr
#comfunc global ICorProfilerInfo3_RequestProfilerDetach                58 int
#comfunc global ICorProfilerInfo3_SetFunctionIDMapper2                 59 sptr,sptr
#comfunc global ICorProfilerInfo3_GetStringLayout2                     60 var,var
#comfunc global ICorProfilerInfo3_SetEnterLeaveFunctionHooks3          61 sptr,sptr,sptr
#comfunc global ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo  62 sptr,sptr,sptr
#comfunc global ICorProfilerInfo3_GetFunctionEnter3Info                63 sptr,sptr,var,var,var
#comfunc global ICorProfilerInfo3_GetFunctionLeave3Info                64 sptr,sptr,var,var
#comfunc global ICorProfilerInfo3_GetFunctionTailcall3Info             65 sptr,sptr,var
#comfunc global ICorProfilerInfo3_EnumModules                          66 sptr
#comfunc global ICorProfilerInfo3_GetRuntimeInformation                67 var,var,var,var,var,var,int,var,var
#comfunc global ICorProfilerInfo3_GetThreadStaticAddress2              68 sptr,int,sptr,sptr,sptr
#comfunc global ICorProfilerInfo3_GetAppDomainsContainingModule        69 sptr,int,var,var
#comfunc global ICorProfilerInfo3_GetModuleInfo2                       70 sptr,var,int,var,var,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。