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

ICorProfilerInfo2

COM
IIDcc0935cd-a518-487d-b0bb-a93214e65478継承元ICorProfilerInfo自前メソッド開始 vtbl36

メソッド 21

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

vtbl 36 HRESULT DoStackSnapshot(UINT_PTR thread, StackSnapshotCallback* callback, DWORD infoFlags, void* clientData, BYTE* context, DWORD contextSize)
threadUINT_PTRinスタックを走査する対象のスレッドの識別子である。0 を指定すると現在のスレッドを対象とする。
callbackStackSnapshotCallback*in各スタックフレームごとに呼び出される StackSnapshotCallback 関数へのポインタである。
infoFlagsDWORDinスタックスナップショットの動作を制御する COR_PRF_SNAPSHOT_INFO フラグの DWORD である。
clientDatavoid*inコールバックにそのまま渡されるユーザー定義データを指すポインタである。
contextBYTE*in走査の起点となるレジスタコンテキストを格納したバッファへのポインタである。
contextSizeDWORDincontext バッファのバイト数である。
vtbl 37 HRESULT SetEnterLeaveFunctionHooks2(FunctionEnter2* pFuncEnter, FunctionLeave2* pFuncLeave, FunctionTailcall2* pFuncTailcall)
pFuncEnterFunctionEnter2*in関数の開始時に呼び出されるフック (FunctionEnter2) へのポインタである。
pFuncLeaveFunctionLeave2*in関数の終了時に呼び出されるフック (FunctionLeave2) へのポインタである。
pFuncTailcallFunctionTailcall2*in末尾呼び出し時に呼び出されるフック (FunctionTailcall2) へのポインタである。
vtbl 38 HRESULT GetFunctionInfo2(UINT_PTR funcId, UINT_PTR frameInfo, UINT_PTR* pClassId, UINT_PTR* pModuleId, DWORD* pToken, DWORD cTypeArgs, DWORD* pcTypeArgs, UINT_PTR* typeArgs)
funcIdUINT_PTRin情報を取得する対象の関数の識別子である。
frameInfoUINT_PTRinジェネリック型引数を解決するためのフレーム情報である。
pClassIdUINT_PTR*out関数が属するクラスの識別子を受け取るポインタである。
pModuleIdUINT_PTR*out関数を含むモジュールの識別子を受け取るポインタである。
pTokenDWORD*out関数のメタデータトークンを受け取る DWORD へのポインタである。
cTypeArgsDWORDintypeArgs バッファに格納できる型引数の数 (容量) である。
pcTypeArgsDWORD*out関数の型引数の実際の数を受け取る DWORD へのポインタである。
typeArgsUINT_PTR*out関数のジェネリック型引数のクラス識別子を受け取る配列である。
vtbl 39 HRESULT GetStringLayout(DWORD* pBufferLengthOffset, DWORD* pStringLengthOffset, DWORD* pBufferOffset)
pBufferLengthOffsetDWORD*out文字列オブジェクト内のバッファ長フィールドのオフセットを受け取る DWORD へのポインタである。
pStringLengthOffsetDWORD*out文字列オブジェクト内の文字列長フィールドのオフセットを受け取る DWORD へのポインタである。
pBufferOffsetDWORD*out文字列オブジェクト内の文字バッファのオフセットを受け取る DWORD へのポインタである。
vtbl 40 HRESULT GetClassLayout(UINT_PTR classID, COR_FIELD_OFFSET* rFieldOffset, DWORD cFieldOffset, DWORD* pcFieldOffset, DWORD* pulClassSize)
classIDUINT_PTRinレイアウトを取得する対象のクラスの識別子である。
rFieldOffsetCOR_FIELD_OFFSET*inout各フィールドのオフセット情報を受け取る COR_FIELD_OFFSET 配列である。
cFieldOffsetDWORDinrFieldOffset バッファに格納できるフィールド数 (容量) である。
pcFieldOffsetDWORD*outクラスのフィールドの実際の数を受け取る DWORD へのポインタである。
pulClassSizeDWORD*outクラスインスタンスのサイズ (バイト数) を受け取る DWORD へのポインタである。
vtbl 41 HRESULT GetClassIDInfo2(UINT_PTR classId, UINT_PTR* pModuleId, DWORD* pTypeDefToken, UINT_PTR* pParentClassId, DWORD cNumTypeArgs, DWORD* pcNumTypeArgs, UINT_PTR* typeArgs)
classIdUINT_PTRin情報を取得する対象のクラスの識別子である。
pModuleIdUINT_PTR*outクラスを含むモジュールの識別子を受け取るポインタである。
pTypeDefTokenDWORD*outクラスの TypeDef メタデータトークンを受け取る DWORD へのポインタである。
pParentClassIdUINT_PTR*outクラスの基底クラスの識別子を受け取るポインタである。
cNumTypeArgsDWORDintypeArgs バッファに格納できる型引数の数 (容量) である。
pcNumTypeArgsDWORD*outクラスの型引数の実際の数を受け取る DWORD へのポインタである。
typeArgsUINT_PTR*outクラスのジェネリック型引数のクラス識別子を受け取る配列である。
vtbl 42 HRESULT GetCodeInfo2(UINT_PTR functionID, DWORD cCodeInfos, DWORD* pcCodeInfos, COR_PRF_CODE_INFO* codeInfos)
functionIDUINT_PTRinネイティブコード情報を取得する対象の関数の識別子である。
cCodeInfosDWORDincodeInfos バッファに格納できるコードブロック数 (容量) である。
pcCodeInfosDWORD*out関数のコードブロックの実際の数を受け取る DWORD へのポインタである。
codeInfosCOR_PRF_CODE_INFO*out関数のネイティブコードブロックの情報を受け取る COR_PRF_CODE_INFO 配列である。
vtbl 43 HRESULT GetClassFromTokenAndTypeArgs(UINT_PTR moduleID, DWORD typeDef, DWORD cTypeArgs, UINT_PTR* typeArgs, UINT_PTR* pClassID)
moduleIDUINT_PTRin型を含むモジュールの識別子である。
typeDefDWORDinクラスを表す TypeDef メタデータトークンである。
cTypeArgsDWORDintypeArgs 配列に含まれる型引数の数である。
typeArgsUINT_PTR*in構築するジェネリッククラスの型引数のクラス識別子を格納した配列である。
pClassIDUINT_PTR*out構築されたクラスの識別子を受け取るポインタである。
vtbl 44 HRESULT GetFunctionFromTokenAndTypeArgs(UINT_PTR moduleID, DWORD funcDef, UINT_PTR classId, DWORD cTypeArgs, UINT_PTR* typeArgs, UINT_PTR* pFunctionID)
moduleIDUINT_PTRin関数を含むモジュールの識別子である。
funcDefDWORDin関数を表す MethodDef メタデータトークンである。
classIdUINT_PTRin関数が属するクラスの識別子である。
cTypeArgsDWORDintypeArgs 配列に含まれる型引数の数である。
typeArgsUINT_PTR*in構築するジェネリック関数の型引数のクラス識別子を格納した配列である。
pFunctionIDUINT_PTR*out構築された関数の識別子を受け取るポインタである。
vtbl 45 HRESULT EnumModuleFrozenObjects(UINT_PTR moduleID, ICorProfilerObjectEnum** ppEnum)
moduleIDUINT_PTRin凍結オブジェクトを列挙する対象のモジュールの識別子である。
ppEnumICorProfilerObjectEnum**outモジュール内の凍結オブジェクトを列挙する ICorProfilerObjectEnum インターフェイスを受け取るポインタである。
vtbl 46 HRESULT GetArrayObjectInfo(UINT_PTR objectId, DWORD cDimensions, DWORD* pDimensionSizes, INT* pDimensionLowerBounds, BYTE** ppData)
objectIdUINT_PTRin情報を取得する対象の配列オブジェクトの識別子である。
cDimensionsDWORDin配列の次元数である。
pDimensionSizesDWORD*out各次元の要素数を受け取る DWORD 配列へのポインタである。
pDimensionLowerBoundsINT*out各次元の下限を受け取る整数配列へのポインタである。
ppDataBYTE**out配列要素データの先頭を指すバイトポインタを受け取るポインタである。
vtbl 47 HRESULT GetBoxClassLayout(UINT_PTR classId, DWORD* pBufferOffset)
classIdUINT_PTRinボックス化レイアウトを取得する対象の値型クラスの識別子である。
pBufferOffsetDWORD*outボックス化オブジェクト内の値データのオフセットを受け取る DWORD へのポインタである。
vtbl 48 HRESULT GetThreadAppDomain(UINT_PTR threadId, UINT_PTR* pAppDomainId)
threadIdUINT_PTRinアプリケーションドメインを取得する対象のスレッドの識別子である。
pAppDomainIdUINT_PTR*outスレッドが現在実行されているアプリケーションドメインの識別子を受け取るポインタである。
vtbl 49 HRESULT GetRVAStaticAddress(UINT_PTR classId, DWORD fieldToken, void** ppAddress)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象の静的フィールドのメタデータトークンである。
ppAddressvoid**outRVA 静的フィールドのアドレスを受け取るポインタである。
vtbl 50 HRESULT GetAppDomainStaticAddress(UINT_PTR classId, DWORD fieldToken, UINT_PTR appDomainId, void** ppAddress)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象の静的フィールドのメタデータトークンである。
appDomainIdUINT_PTRinアドレスを取得する対象のアプリケーションドメインの識別子である。
ppAddressvoid**out指定アプリケーションドメインにおける静的フィールドのアドレスを受け取るポインタである。
vtbl 51 HRESULT GetThreadStaticAddress(UINT_PTR classId, DWORD fieldToken, UINT_PTR threadId, void** ppAddress)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象のスレッド静的フィールドのメタデータトークンである。
threadIdUINT_PTRinアドレスを取得する対象のスレッドの識別子である。
ppAddressvoid**out指定スレッドにおけるスレッド静的フィールドのアドレスを受け取るポインタである。
vtbl 52 HRESULT GetContextStaticAddress(UINT_PTR classId, DWORD fieldToken, UINT_PTR contextId, void** ppAddress)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象のコンテキスト静的フィールドのメタデータトークンである。
contextIdUINT_PTRinアドレスを取得する対象のコンテキストの識別子である。
ppAddressvoid**out指定コンテキストにおけるコンテキスト静的フィールドのアドレスを受け取るポインタである。
vtbl 53 HRESULT GetStaticFieldInfo(UINT_PTR classId, DWORD fieldToken, COR_PRF_STATIC_TYPE* pFieldInfo)
classIdUINT_PTRin静的フィールドを含むクラスの識別子である。
fieldTokenDWORDin対象の静的フィールドのメタデータトークンである。
pFieldInfoCOR_PRF_STATIC_TYPE*out静的フィールドの種類を示す COR_PRF_STATIC_TYPE を受け取るポインタである。
vtbl 54 HRESULT GetGenerationBounds(DWORD cObjectRanges, DWORD* pcObjectRanges, COR_PRF_GC_GENERATION_RANGE* ranges)
cObjectRangesDWORDinranges バッファに格納できる世代範囲の数 (容量) である。
pcObjectRangesDWORD*out世代範囲の実際の数を受け取る DWORD へのポインタである。
rangesCOR_PRF_GC_GENERATION_RANGE*out各 GC 世代のメモリ範囲を受け取る COR_PRF_GC_GENERATION_RANGE 配列である。
vtbl 55 HRESULT GetObjectGeneration(UINT_PTR objectId, COR_PRF_GC_GENERATION_RANGE* range)
objectIdUINT_PTRin世代を取得する対象のオブジェクトの識別子である。
rangeCOR_PRF_GC_GENERATION_RANGE*outオブジェクトが属する世代範囲の情報を受け取る COR_PRF_GC_GENERATION_RANGE へのポインタである。
vtbl 56 HRESULT GetNotifiedExceptionClauseInfo(COR_PRF_EX_CLAUSE_INFO* pinfo)
pinfoCOR_PRF_EX_CLAUSE_INFO*out現在通知中の例外句に関する情報を受け取る COR_PRF_EX_CLAUSE_INFO へのポインタである。

HSP用 COM定義

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

出力引数:
#define global IID_ICorProfilerInfo2 "{CC0935CD-A518-487D-B0BB-A93214E65478}"
#usecom global ICorProfilerInfo2 IID_ICorProfilerInfo2 "{}"
#comfunc global ICorProfilerInfo2_DoStackSnapshot                  36 sptr,sptr,int,sptr,var,int
#comfunc global ICorProfilerInfo2_SetEnterLeaveFunctionHooks2      37 sptr,sptr,sptr
#comfunc global ICorProfilerInfo2_GetFunctionInfo2                 38 sptr,sptr,var,var,var,int,var,var
#comfunc global ICorProfilerInfo2_GetStringLayout                  39 var,var,var
#comfunc global ICorProfilerInfo2_GetClassLayout                   40 sptr,var,int,var,var
#comfunc global ICorProfilerInfo2_GetClassIDInfo2                  41 sptr,var,var,var,int,var,var
#comfunc global ICorProfilerInfo2_GetCodeInfo2                     42 sptr,int,var,var
#comfunc global ICorProfilerInfo2_GetClassFromTokenAndTypeArgs     43 sptr,int,int,var,var
#comfunc global ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs  44 sptr,int,sptr,int,var,var
#comfunc global ICorProfilerInfo2_EnumModuleFrozenObjects          45 sptr,sptr
#comfunc global ICorProfilerInfo2_GetArrayObjectInfo               46 sptr,int,var,var,var
#comfunc global ICorProfilerInfo2_GetBoxClassLayout                47 sptr,var
#comfunc global ICorProfilerInfo2_GetThreadAppDomain               48 sptr,var
#comfunc global ICorProfilerInfo2_GetRVAStaticAddress              49 sptr,int,sptr
#comfunc global ICorProfilerInfo2_GetAppDomainStaticAddress        50 sptr,int,sptr,sptr
#comfunc global ICorProfilerInfo2_GetThreadStaticAddress           51 sptr,int,sptr,sptr
#comfunc global ICorProfilerInfo2_GetContextStaticAddress          52 sptr,int,sptr,sptr
#comfunc global ICorProfilerInfo2_GetStaticFieldInfo               53 sptr,int,var
#comfunc global ICorProfilerInfo2_GetGenerationBounds              54 int,var,var
#comfunc global ICorProfilerInfo2_GetObjectGeneration              55 sptr,var
#comfunc global ICorProfilerInfo2_GetNotifiedExceptionClauseInfo   56 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。