ホーム › System.Diagnostics.ClrProfiling › ICorProfilerInfo9
ICorProfilerInfo9
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 90 HRESULT GetNativeCodeStartAddresses(UINT_PTR functionID, UINT_PTR reJitId, DWORD cCodeStartAddresses, DWORD* pcCodeStartAddresses, UINT_PTR* codeStartAddresses)
| functionID | UINT_PTR | in | ネイティブコードの開始アドレスを取得する関数の ID を指定する。 |
| reJitId | UINT_PTR | in | 対象とする再 JIT バージョンの識別子を指定する。元のバージョンを指す場合は 0 を指定する。 |
| cCodeStartAddresses | DWORD | in | codeStartAddresses 配列が保持できる要素数を指定する。 |
| pcCodeStartAddresses | DWORD* | inout | 利用可能な開始アドレスの総数を受け取る。階層型コンパイルにより複数になる場合がある。 |
| codeStartAddresses | UINT_PTR* | inout | 関数の各ネイティブコードバージョンの開始アドレスを受け取る配列である。 |
vtbl 91 HRESULT GetILToNativeMapping3(UINT_PTR pNativeCodeStartAddress, DWORD cMap, DWORD* pcMap, COR_DEBUG_IL_TO_NATIVE_MAP* map)
| pNativeCodeStartAddress | UINT_PTR | in | マッピングを取得するネイティブコードの開始アドレスを指定する。 |
| cMap | DWORD | in | map 配列が保持できる COR_DEBUG_IL_TO_NATIVE_MAP 要素の数を指定する。 |
| pcMap | DWORD* | inout | 利用可能なマッピングエントリの総数を受け取る。 |
| map | COR_DEBUG_IL_TO_NATIVE_MAP* | inout | IL オフセットとネイティブコードオフセットの対応を表す COR_DEBUG_IL_TO_NATIVE_MAP 構造体を受け取る配列である。 |
vtbl 92 HRESULT GetCodeInfo4(UINT_PTR pNativeCodeStartAddress, DWORD cCodeInfos, DWORD* pcCodeInfos, COR_PRF_CODE_INFO* codeInfos)
| pNativeCodeStartAddress | UINT_PTR | in | コードブロック情報を取得するネイティブコードの開始アドレスを指定する。 |
| cCodeInfos | DWORD | in | codeInfos バッファが保持できる COR_PRF_CODE_INFO 要素の数を指定する。 |
| pcCodeInfos | DWORD* | inout | 利用可能な COR_PRF_CODE_INFO 要素の総数を受け取る。 |
| codeInfos | COR_PRF_CODE_INFO* | inout | ネイティブコードブロックを表す COR_PRF_CODE_INFO 構造体を受け取る配列である。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ICorProfilerInfo9 "{008170DB-F8CC-4796-9A51-DC8AA0B47012}" #usecom global ICorProfilerInfo9 IID_ICorProfilerInfo9 "{}" #comfunc global ICorProfilerInfo9_GetNativeCodeStartAddresses 90 sptr,sptr,int,var,var #comfunc global ICorProfilerInfo9_GetILToNativeMapping3 91 sptr,int,var,var #comfunc global ICorProfilerInfo9_GetCodeInfo4 92 sptr,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ICorProfilerInfo9 "{008170DB-F8CC-4796-9A51-DC8AA0B47012}" #usecom global ICorProfilerInfo9 IID_ICorProfilerInfo9 "{}" #comfunc global ICorProfilerInfo9_GetNativeCodeStartAddresses 90 sptr,sptr,int,sptr,sptr #comfunc global ICorProfilerInfo9_GetILToNativeMapping3 91 sptr,int,sptr,sptr #comfunc global ICorProfilerInfo9_GetCodeInfo4 92 sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。