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

ICorProfilerInfo

COM
IID28b5557d-3f3f-48b4-90b2-5f9eea2f6c48継承元IUnknown自前メソッド開始 vtbl3

メソッド 33

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

vtbl 3 HRESULT GetClassFromObject(UINT_PTR objectId, UINT_PTR* pClassId)
objectIdUINT_PTRinクラスを取得する対象のオブジェクトの識別子である。
pClassIdUINT_PTR*outオブジェクトのクラスの識別子を受け取るポインタである。
vtbl 4 HRESULT GetClassFromToken(UINT_PTR moduleId, DWORD typeDef, UINT_PTR* pClassId)
moduleIdUINT_PTRin型を含むモジュールの識別子である。
typeDefDWORDinクラスを表す TypeDef メタデータトークンである。
pClassIdUINT_PTR*out取得されたクラスの識別子を受け取るポインタである。
vtbl 5 HRESULT GetCodeInfo(UINT_PTR functionId, BYTE** pStart, DWORD* pcSize)
functionIdUINT_PTRinネイティブコード情報を取得する対象の関数の識別子である。
pStartBYTE**out関数のネイティブコードの先頭アドレスを受け取るバイトポインタへのポインタである。
pcSizeDWORD*out関数のネイティブコードのバイト数を受け取る DWORD へのポインタである。
vtbl 6 HRESULT GetEventMask(DWORD* pdwEvents)
pdwEventsDWORD*out現在設定されているイベント通知フラグ (COR_PRF_MONITOR) を受け取る DWORD へのポインタである。
vtbl 7 HRESULT GetFunctionFromIP(BYTE* ip, UINT_PTR* pFunctionId)
ipBYTE*in関数を特定する対象となる命令ポインタ (ネイティブコードアドレス) である。
pFunctionIdUINT_PTR*out命令ポインタに対応する関数の識別子を受け取るポインタである。
vtbl 8 HRESULT GetFunctionFromToken(UINT_PTR moduleId, DWORD token, UINT_PTR* pFunctionId)
moduleIdUINT_PTRin関数を含むモジュールの識別子である。
tokenDWORDin関数を表すメタデータトークンである。
pFunctionIdUINT_PTR*out取得された関数の識別子を受け取るポインタである。
vtbl 9 HRESULT GetHandleFromThread(UINT_PTR threadId, HANDLE* phThread)
threadIdUINT_PTRinハンドルを取得する対象のスレッドの識別子である。
phThreadHANDLE*outスレッドの Win32 ハンドルを受け取る HANDLE へのポインタである。
vtbl 10 HRESULT GetObjectSize(UINT_PTR objectId, DWORD* pcSize)
objectIdUINT_PTRinサイズを取得する対象のオブジェクトの識別子である。
pcSizeDWORD*outオブジェクトのサイズ (バイト数) を受け取る DWORD へのポインタである。
vtbl 11 HRESULT IsArrayClass(UINT_PTR classId, CorElementType* pBaseElemType, UINT_PTR* pBaseClassId, DWORD* pcRank)
classIdUINT_PTRin配列クラスかどうかを判定する対象のクラスの識別子である。
pBaseElemTypeCorElementType*out配列の要素の基本型を受け取る CorElementType へのポインタである。
pBaseClassIdUINT_PTR*out配列要素のクラスの識別子を受け取るポインタである。
pcRankDWORD*out配列の次元数 (ランク) を受け取る DWORD へのポインタである。
vtbl 12 HRESULT GetThreadInfo(UINT_PTR threadId, DWORD* pdwWin32ThreadId)
threadIdUINT_PTRin情報を取得する対象のスレッドの識別子である。
pdwWin32ThreadIdDWORD*out対応する Win32 スレッド ID を受け取る DWORD へのポインタである。
vtbl 13 HRESULT GetCurrentThreadID(UINT_PTR* pThreadId)
pThreadIdUINT_PTR*out現在のマネージドスレッドの識別子を受け取るポインタである。
vtbl 14 HRESULT GetClassIDInfo(UINT_PTR classId, UINT_PTR* pModuleId, DWORD* pTypeDefToken)
classIdUINT_PTRin情報を取得する対象のクラスの識別子である。
pModuleIdUINT_PTR*outクラスを含むモジュールの識別子を受け取るポインタである。
pTypeDefTokenDWORD*outクラスの TypeDef メタデータトークンを受け取る DWORD へのポインタである。
vtbl 15 HRESULT GetFunctionInfo(UINT_PTR functionId, UINT_PTR* pClassId, UINT_PTR* pModuleId, DWORD* pToken)
functionIdUINT_PTRin情報を取得する対象の関数の識別子である。
pClassIdUINT_PTR*out関数が属するクラスの識別子を受け取るポインタである。
pModuleIdUINT_PTR*out関数を含むモジュールの識別子を受け取るポインタである。
pTokenDWORD*out関数のメタデータトークンを受け取る DWORD へのポインタである。
vtbl 16 HRESULT SetEventMask(DWORD dwEvents)
dwEventsDWORDinプロファイラが受け取るイベント通知を指定する COR_PRF_MONITOR フラグの DWORD である。
vtbl 17 HRESULT SetEnterLeaveFunctionHooks(FunctionEnter* pFuncEnter, FunctionLeave* pFuncLeave, FunctionTailcall* pFuncTailcall)
pFuncEnterFunctionEnter*in関数の開始時に呼び出されるフック (FunctionEnter) へのポインタである。
pFuncLeaveFunctionLeave*in関数の終了時に呼び出されるフック (FunctionLeave) へのポインタである。
pFuncTailcallFunctionTailcall*in末尾呼び出し時に呼び出されるフック (FunctionTailcall) へのポインタである。
vtbl 18 HRESULT SetFunctionIDMapper(FunctionIDMapper* pFunc)
pFuncFunctionIDMapper*inFunctionID を代替 ID に対応付けるためのマッパー関数 (FunctionIDMapper) へのポインタである。
vtbl 19 HRESULT GetTokenAndMetaDataFromFunction(UINT_PTR functionId, GUID* riid, IUnknown** ppImport, DWORD* pToken)
functionIdUINT_PTRinメタデータを取得する対象の関数の識別子である。
riidGUID*in要求するメタデータインターフェイスの IID を示す GUID へのポインタである。
ppImportIUnknown**out要求されたメタデータインターフェイスを受け取る IUnknown ポインタである。
pTokenDWORD*out関数のメタデータトークンを受け取る DWORD へのポインタである。
vtbl 20 HRESULT GetModuleInfo(UINT_PTR moduleId, BYTE** ppBaseLoadAddress, DWORD cchName, DWORD* pcchName, LPWSTR szName, UINT_PTR* pAssemblyId)
moduleIdUINT_PTRin情報を取得する対象のモジュールの識別子である。
ppBaseLoadAddressBYTE**outモジュールのベースロードアドレスを受け取るバイトポインタへのポインタである。
cchNameDWORDinszName バッファの文字数 (容量) である。
pcchNameDWORD*outモジュール名の実際の文字数を受け取る DWORD へのポインタである。
szNameLPWSTRoutモジュールのファイル名を受け取る文字列バッファである。
pAssemblyIdUINT_PTR*outモジュールが属するアセンブリの識別子を受け取るポインタである。
vtbl 21 HRESULT GetModuleMetaData(UINT_PTR moduleId, DWORD dwOpenFlags, GUID* riid, IUnknown** ppOut)
moduleIdUINT_PTRinメタデータを取得する対象のモジュールの識別子である。
dwOpenFlagsDWORDinメタデータを開く際の動作を指定する CorOpenFlags の DWORD である。
riidGUID*in要求するメタデータインターフェイスの IID を示す GUID へのポインタである。
ppOutIUnknown**out要求されたメタデータインターフェイスを受け取る IUnknown ポインタである。
vtbl 22 HRESULT GetILFunctionBody(UINT_PTR moduleId, DWORD methodId, BYTE** ppMethodHeader, DWORD* pcbMethodSize)
moduleIdUINT_PTRinIL 本体を取得する対象のメソッドが属するモジュールの識別子である。
methodIdDWORDinIL 本体を取得する対象メソッドのメタデータトークンである。
ppMethodHeaderBYTE**outメソッドの IL ヘッダーの先頭を指すバイトポインタへのポインタである。
pcbMethodSizeDWORD*outメソッドの IL 本体のバイト数を受け取る DWORD へのポインタである。
vtbl 23 HRESULT GetILFunctionBodyAllocator(UINT_PTR moduleId, IMethodMalloc** ppMalloc)
moduleIdUINT_PTRinIL 本体の割り当てに使用するモジュールの識別子である。
ppMallocIMethodMalloc**outIL 本体用メモリを確保するための IMethodMalloc インターフェイスを受け取るポインタである。
vtbl 24 HRESULT SetILFunctionBody(UINT_PTR moduleId, DWORD methodid, BYTE* pbNewILMethodHeader)
moduleIdUINT_PTRinIL 本体を置き換える対象メソッドが属するモジュールの識別子である。
methodidDWORDinIL 本体を置き換える対象メソッドのメタデータトークンである。
pbNewILMethodHeaderBYTE*in新しい IL メソッド本体のヘッダーを指すバイトポインタである。
vtbl 25 HRESULT GetAppDomainInfo(UINT_PTR appDomainId, DWORD cchName, DWORD* pcchName, LPWSTR szName, UINT_PTR* pProcessId)
appDomainIdUINT_PTRin情報を取得する対象のアプリケーションドメインの識別子である。
cchNameDWORDinszName バッファの文字数 (容量) である。
pcchNameDWORD*outアプリケーションドメイン名の実際の文字数を受け取る DWORD へのポインタである。
szNameLPWSTRoutアプリケーションドメインの名前を受け取る文字列バッファである。
pProcessIdUINT_PTR*outアプリケーションドメインを含むプロセスの識別子を受け取るポインタである。
vtbl 26 HRESULT GetAssemblyInfo(UINT_PTR assemblyId, DWORD cchName, DWORD* pcchName, LPWSTR szName, UINT_PTR* pAppDomainId, UINT_PTR* pModuleId)
assemblyIdUINT_PTRin情報を取得する対象のアセンブリの識別子である。
cchNameDWORDinszName バッファの文字数 (容量) である。
pcchNameDWORD*outアセンブリ名の実際の文字数を受け取る DWORD へのポインタである。
szNameLPWSTRoutアセンブリの名前を受け取る文字列バッファである。
pAppDomainIdUINT_PTR*outアセンブリが属するアプリケーションドメインの識別子を受け取るポインタである。
pModuleIdUINT_PTR*outアセンブリのマニフェストモジュールの識別子を受け取るポインタである。
vtbl 27 HRESULT SetFunctionReJIT(UINT_PTR functionId)
functionIdUINT_PTRin再 JIT を要求する対象の関数の識別子である。
vtbl 28 HRESULT ForceGC()
vtbl 29 HRESULT SetILInstrumentedCodeMap(UINT_PTR functionId, BOOL fStartJit, DWORD cILMapEntries, COR_IL_MAP* rgILMapEntries)
functionIdUINT_PTRinコードマップを設定する対象の関数の識別子である。
fStartJitBOOLinこの呼び出しがマップ設定シーケンスの最初の呼び出しかどうかを示す BOOL である。
cILMapEntriesDWORDinrgILMapEntries 配列の要素数である。
rgILMapEntriesCOR_IL_MAP*in計測前後の IL オフセット対応を表す COR_IL_MAP エントリの配列へのポインタである。
vtbl 30 HRESULT GetInprocInspectionInterface(IUnknown** ppicd)
ppicdIUnknown**outインプロセス検査用のデバッグインターフェイスを受け取る IUnknown ポインタである。
vtbl 31 HRESULT GetInprocInspectionIThisThread(IUnknown** ppicd)
ppicdIUnknown**out現在のスレッド向けのインプロセス検査用デバッグインターフェイスを受け取る IUnknown ポインタである。
vtbl 32 HRESULT GetThreadContext(UINT_PTR threadId, UINT_PTR* pContextId)
threadIdUINT_PTRinコンテキストを取得する対象のスレッドの識別子である。
pContextIdUINT_PTR*outスレッドに現在関連付けられているコンテキストの識別子を受け取るポインタである。
vtbl 33 HRESULT BeginInprocDebugging(BOOL fThisThreadOnly, DWORD* pdwProfilerContext)
fThisThreadOnlyBOOLinデバッグを現在のスレッドのみに限定するかどうかを指定する BOOL である。
pdwProfilerContextDWORD*outこのデバッグセッションを識別するコンテキスト値を受け取る DWORD へのポインタである。
vtbl 34 HRESULT EndInprocDebugging(DWORD dwProfilerContext)
dwProfilerContextDWORDinBeginInprocDebugging で取得したデバッグセッションのコンテキスト値である。
vtbl 35 HRESULT GetILToNativeMapping(UINT_PTR functionId, DWORD cMap, DWORD* pcMap, COR_DEBUG_IL_TO_NATIVE_MAP* map)
functionIdUINT_PTRinIL とネイティブコードの対応を取得する対象の関数の識別子である。
cMapDWORDinmap バッファに格納できるエントリ数 (容量) である。
pcMapDWORD*out利用可能なマッピングエントリの実際の数を受け取る DWORD へのポインタである。
mapCOR_DEBUG_IL_TO_NATIVE_MAP*outIL オフセットとネイティブオフセットの対応を表す COR_DEBUG_IL_TO_NATIVE_MAP エントリを受け取る配列である。

HSP用 COM定義

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

出力引数:
#define global IID_ICorProfilerInfo "{28B5557D-3F3F-48B4-90B2-5F9EEA2F6C48}"
#usecom global ICorProfilerInfo IID_ICorProfilerInfo "{}"
#comfunc global ICorProfilerInfo_GetClassFromObject               3 sptr,var
#comfunc global ICorProfilerInfo_GetClassFromToken                4 sptr,int,var
#comfunc global ICorProfilerInfo_GetCodeInfo                      5 sptr,var,var
#comfunc global ICorProfilerInfo_GetEventMask                     6 var
#comfunc global ICorProfilerInfo_GetFunctionFromIP                7 var,var
#comfunc global ICorProfilerInfo_GetFunctionFromToken             8 sptr,int,var
#comfunc global ICorProfilerInfo_GetHandleFromThread              9 sptr,sptr
#comfunc global ICorProfilerInfo_GetObjectSize                    10 sptr,var
#comfunc global ICorProfilerInfo_IsArrayClass                     11 sptr,var,var,var
#comfunc global ICorProfilerInfo_GetThreadInfo                    12 sptr,var
#comfunc global ICorProfilerInfo_GetCurrentThreadID               13 var
#comfunc global ICorProfilerInfo_GetClassIDInfo                   14 sptr,var,var
#comfunc global ICorProfilerInfo_GetFunctionInfo                  15 sptr,var,var,var
#comfunc global ICorProfilerInfo_SetEventMask                     16 int
#comfunc global ICorProfilerInfo_SetEnterLeaveFunctionHooks       17 sptr,sptr,sptr
#comfunc global ICorProfilerInfo_SetFunctionIDMapper              18 sptr
#comfunc global ICorProfilerInfo_GetTokenAndMetaDataFromFunction  19 sptr,var,sptr,var
#comfunc global ICorProfilerInfo_GetModuleInfo                    20 sptr,var,int,var,var,var
#comfunc global ICorProfilerInfo_GetModuleMetaData                21 sptr,int,var,sptr
#comfunc global ICorProfilerInfo_GetILFunctionBody                22 sptr,int,var,var
#comfunc global ICorProfilerInfo_GetILFunctionBodyAllocator       23 sptr,sptr
#comfunc global ICorProfilerInfo_SetILFunctionBody                24 sptr,int,var
#comfunc global ICorProfilerInfo_GetAppDomainInfo                 25 sptr,int,var,var,var
#comfunc global ICorProfilerInfo_GetAssemblyInfo                  26 sptr,int,var,var,var,var
#comfunc global ICorProfilerInfo_SetFunctionReJIT                 27 sptr
#comfunc global ICorProfilerInfo_ForceGC                          28
#comfunc global ICorProfilerInfo_SetILInstrumentedCodeMap         29 sptr,int,int,var
#comfunc global ICorProfilerInfo_GetInprocInspectionInterface     30 sptr
#comfunc global ICorProfilerInfo_GetInprocInspectionIThisThread   31 sptr
#comfunc global ICorProfilerInfo_GetThreadContext                 32 sptr,var
#comfunc global ICorProfilerInfo_BeginInprocDebugging             33 int,var
#comfunc global ICorProfilerInfo_EndInprocDebugging               34 int
#comfunc global ICorProfilerInfo_GetILToNativeMapping             35 sptr,int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。