ホーム › System.Diagnostics.ClrProfiling › ICorProfilerInfo3
ICorProfilerInfo3
COMメソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 57 HRESULT EnumJITedFunctions(ICorProfilerFunctionEnum** ppEnum)
| ppEnum | ICorProfilerFunctionEnum** | out | JIT コンパイル済みの関数を列挙する ICorProfilerFunctionEnum インターフェイスを受け取るポインタである。 |
| dwExpectedCompletionMilliseconds | DWORD | in | デタッチ完了までの推定待機時間 (ミリ秒) を指定する DWORD である。 |
vtbl 59 HRESULT SetFunctionIDMapper2(FunctionIDMapper2* pFunc, void* clientData)
| pFunc | FunctionIDMapper2* | in | FunctionID を代替 ID に対応付けるためのマッパー関数 (FunctionIDMapper2) へのポインタである。 |
| clientData | void* | in | マッパーにそのまま渡されるユーザー定義データを指すポインタである。 |
| pStringLengthOffset | DWORD* | out | 文字列オブジェクト内の文字列長フィールドのオフセットを受け取る DWORD へのポインタである。 |
| pBufferOffset | DWORD* | out | 文字列オブジェクト内の文字バッファのオフセットを受け取る DWORD へのポインタである。 |
vtbl 61 HRESULT SetEnterLeaveFunctionHooks3(FunctionEnter3* pFuncEnter3, FunctionLeave3* pFuncLeave3, FunctionTailcall3* pFuncTailcall3)
| pFuncEnter3 | FunctionEnter3* | in | 関数の開始時に呼び出されるフック (FunctionEnter3) へのポインタである。 |
| pFuncLeave3 | FunctionLeave3* | in | 関数の終了時に呼び出されるフック (FunctionLeave3) へのポインタである。 |
| pFuncTailcall3 | FunctionTailcall3* | in | 末尾呼び出し時に呼び出されるフック (FunctionTailcall3) へのポインタである。 |
vtbl 62 HRESULT SetEnterLeaveFunctionHooks3WithInfo(FunctionEnter3WithInfo* pFuncEnter3WithInfo, FunctionLeave3WithInfo* pFuncLeave3WithInfo, FunctionTailcall3WithInfo* pFuncTailcall3WithInfo)
| pFuncEnter3WithInfo | FunctionEnter3WithInfo* | in | 引数情報付きで関数開始時に呼び出されるフック (FunctionEnter3WithInfo) へのポインタである。 |
| pFuncLeave3WithInfo | FunctionLeave3WithInfo* | in | 戻り値情報付きで関数終了時に呼び出されるフック (FunctionLeave3WithInfo) へのポインタである。 |
| pFuncTailcall3WithInfo | FunctionTailcall3WithInfo* | in | 情報付きで末尾呼び出し時に呼び出されるフック (FunctionTailcall3WithInfo) へのポインタである。 |
vtbl 63 HRESULT GetFunctionEnter3Info(UINT_PTR functionId, UINT_PTR eltInfo, UINT_PTR* pFrameInfo, DWORD* pcbArgumentInfo, COR_PRF_FUNCTION_ARGUMENT_INFO* pArgumentInfo)
| functionId | UINT_PTR | in | 情報を取得する対象の関数の識別子である。 |
| eltInfo | UINT_PTR | in | Enter3WithInfo フックに渡された ELT 情報の不透明な識別子である。 |
| pFrameInfo | UINT_PTR* | out | 引数情報の取得に使用するフレーム情報を受け取るポインタである。 |
| pcbArgumentInfo | DWORD* | inout | pArgumentInfo バッファのサイズ (バイト数) を入出力する DWORD へのポインタである。 |
| pArgumentInfo | COR_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)
| functionId | UINT_PTR | in | 情報を取得する対象の関数の識別子である。 |
| eltInfo | UINT_PTR | in | Leave3WithInfo フックに渡された ELT 情報の不透明な識別子である。 |
| pFrameInfo | UINT_PTR* | out | 戻り値情報の取得に使用するフレーム情報を受け取るポインタである。 |
| pRetvalRange | COR_PRF_FUNCTION_ARGUMENT_RANGE* | out | 関数の戻り値が格納されているメモリ範囲を受け取る COR_PRF_FUNCTION_ARGUMENT_RANGE へのポインタである。 |
vtbl 65 HRESULT GetFunctionTailcall3Info(UINT_PTR functionId, UINT_PTR eltInfo, UINT_PTR* pFrameInfo)
| functionId | UINT_PTR | in | 情報を取得する対象の関数の識別子である。 |
| eltInfo | UINT_PTR | in | Tailcall3WithInfo フックに渡された ELT 情報の不透明な識別子である。 |
| pFrameInfo | UINT_PTR* | out | フレーム情報を受け取るポインタである。 |
vtbl 66 HRESULT EnumModules(ICorProfilerModuleEnum** ppEnum)
| ppEnum | ICorProfilerModuleEnum** | 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)
| pClrInstanceId | WORD* | out | CLR インスタンスの識別子を受け取る WORD へのポインタである。 |
| pRuntimeType | COR_PRF_RUNTIME_TYPE* | out | ランタイムの種類を示す COR_PRF_RUNTIME_TYPE を受け取るポインタである。 |
| pMajorVersion | WORD* | out | ランタイムのメジャーバージョンを受け取る WORD へのポインタである。 |
| pMinorVersion | WORD* | out | ランタイムのマイナーバージョンを受け取る WORD へのポインタである。 |
| pBuildNumber | WORD* | out | ランタイムのビルド番号を受け取る WORD へのポインタである。 |
| pQFEVersion | WORD* | out | ランタイムの QFE (修正プログラム) バージョンを受け取る WORD へのポインタである。 |
| cchVersionString | DWORD | in | szVersionString バッファの文字数 (容量) である。 |
| pcchVersionString | DWORD* | out | バージョン文字列の実際の文字数を受け取る DWORD へのポインタである。 |
| szVersionString | LPWSTR | out | ランタイムのバージョン文字列を受け取る文字列バッファである。 |
vtbl 68 HRESULT GetThreadStaticAddress2(UINT_PTR classId, DWORD fieldToken, UINT_PTR appDomainId, UINT_PTR threadId, void** ppAddress)
| classId | UINT_PTR | in | 静的フィールドを含むクラスの識別子である。 |
| fieldToken | DWORD | in | 対象のスレッド静的フィールドのメタデータトークンである。 |
| appDomainId | UINT_PTR | in | アドレスを取得する対象のアプリケーションドメインの識別子である。 |
| threadId | UINT_PTR | in | アドレスを取得する対象のスレッドの識別子である。 |
| ppAddress | void** | out | 指定アプリケーションドメインおよびスレッドにおけるスレッド静的フィールドのアドレスを受け取るポインタである。 |
vtbl 69 HRESULT GetAppDomainsContainingModule(UINT_PTR moduleId, DWORD cAppDomainIds, DWORD* pcAppDomainIds, UINT_PTR* appDomainIds)
| moduleId | UINT_PTR | in | 対象のモジュールの識別子である。 |
| cAppDomainIds | DWORD | in | appDomainIds バッファに格納できるアプリケーションドメイン数 (容量) である。 |
| pcAppDomainIds | DWORD* | out | モジュールを含むアプリケーションドメインの実際の数を受け取る DWORD へのポインタである。 |
| appDomainIds | UINT_PTR* | out | モジュールを含むアプリケーションドメインの識別子を受け取る配列である。 |
vtbl 70 HRESULT GetModuleInfo2(UINT_PTR moduleId, BYTE** ppBaseLoadAddress, DWORD cchName, DWORD* pcchName, LPWSTR szName, UINT_PTR* pAssemblyId, DWORD* pdwModuleFlags)
| moduleId | UINT_PTR | in | 情報を取得する対象のモジュールの識別子である。 |
| ppBaseLoadAddress | BYTE** | out | モジュールのベースロードアドレスを受け取るバイトポインタへのポインタである。 |
| cchName | DWORD | in | szName バッファの文字数 (容量) である。 |
| pcchName | DWORD* | out | モジュール名の実際の文字数を受け取る DWORD へのポインタである。 |
| szName | LPWSTR | out | モジュールのファイル名を受け取る文字列バッファである。 |
| pAssemblyId | UINT_PTR* | out | モジュールが属するアセンブリの識別子を受け取るポインタである。 |
| pdwModuleFlags | DWORD* | 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 指定が可能。#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 sptr,sptr #comfunc global ICorProfilerInfo3_SetEnterLeaveFunctionHooks3 61 sptr,sptr,sptr #comfunc global ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo 62 sptr,sptr,sptr #comfunc global ICorProfilerInfo3_GetFunctionEnter3Info 63 sptr,sptr,sptr,sptr,sptr #comfunc global ICorProfilerInfo3_GetFunctionLeave3Info 64 sptr,sptr,sptr,sptr #comfunc global ICorProfilerInfo3_GetFunctionTailcall3Info 65 sptr,sptr,sptr #comfunc global ICorProfilerInfo3_EnumModules 66 sptr #comfunc global ICorProfilerInfo3_GetRuntimeInformation 67 sptr,sptr,sptr,sptr,sptr,sptr,int,sptr,sptr #comfunc global ICorProfilerInfo3_GetThreadStaticAddress2 68 sptr,int,sptr,sptr,sptr #comfunc global ICorProfilerInfo3_GetAppDomainsContainingModule 69 sptr,int,sptr,sptr #comfunc global ICorProfilerInfo3_GetModuleInfo2 70 sptr,sptr,int,sptr,sptr,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。