xpmgr/BuildTools/Include/corprof.h

5082 lines
199 KiB
C++

/* this ALWAYS GENERATED file contains the definitions for the interfaces */
/* File created by MIDL compiler version 7.00.0499 */
/* Compiler settings for corprof.idl:
Oicf, W1, Zp8, env=Win32 (32b run)
protocol : dce , ms_ext, c_ext, robust
error checks: allocation ref bounds_check enum stub_data
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
//@@MIDL_FILE_HEADING( )
#pragma warning( disable: 4049 ) /* more than 64k source lines */
/* verify that the <rpcndr.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCNDR_H_VERSION__
#define __REQUIRED_RPCNDR_H_VERSION__ 475
#endif
/* verify that the <rpcsal.h> version is high enough to compile this file*/
#ifndef __REQUIRED_RPCSAL_H_VERSION__
#define __REQUIRED_RPCSAL_H_VERSION__ 100
#endif
#include "rpc.h"
#include "rpcndr.h"
#ifndef __RPCNDR_H_VERSION__
#error this stub requires an updated version of <rpcndr.h>
#endif // __RPCNDR_H_VERSION__
#ifndef COM_NO_WINDOWS_H
#include "windows.h"
#include "ole2.h"
#endif /*COM_NO_WINDOWS_H*/
#ifndef __corprof_h__
#define __corprof_h__
#if defined(_MSC_VER) && (_MSC_VER >= 1020)
#pragma once
#endif
/* Forward Declarations */
#ifndef __ICorProfilerCallback_FWD_DEFINED__
#define __ICorProfilerCallback_FWD_DEFINED__
typedef interface ICorProfilerCallback ICorProfilerCallback;
#endif /* __ICorProfilerCallback_FWD_DEFINED__ */
#ifndef __ICorProfilerCallback2_FWD_DEFINED__
#define __ICorProfilerCallback2_FWD_DEFINED__
typedef interface ICorProfilerCallback2 ICorProfilerCallback2;
#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */
#ifndef __ICorProfilerCallback3_FWD_DEFINED__
#define __ICorProfilerCallback3_FWD_DEFINED__
typedef interface ICorProfilerCallback3 ICorProfilerCallback3;
#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */
#ifndef __ICorProfilerInfo_FWD_DEFINED__
#define __ICorProfilerInfo_FWD_DEFINED__
typedef interface ICorProfilerInfo ICorProfilerInfo;
#endif /* __ICorProfilerInfo_FWD_DEFINED__ */
#ifndef __ICorProfilerInfo2_FWD_DEFINED__
#define __ICorProfilerInfo2_FWD_DEFINED__
typedef interface ICorProfilerInfo2 ICorProfilerInfo2;
#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */
#ifndef __ICorProfilerInfo3_FWD_DEFINED__
#define __ICorProfilerInfo3_FWD_DEFINED__
typedef interface ICorProfilerInfo3 ICorProfilerInfo3;
#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */
#ifndef __ICorProfilerObjectEnum_FWD_DEFINED__
#define __ICorProfilerObjectEnum_FWD_DEFINED__
typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum;
#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */
#ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__
#define __ICorProfilerFunctionEnum_FWD_DEFINED__
typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum;
#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */
#ifndef __ICorProfilerModuleEnum_FWD_DEFINED__
#define __ICorProfilerModuleEnum_FWD_DEFINED__
typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum;
#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */
#ifndef __IMethodMalloc_FWD_DEFINED__
#define __IMethodMalloc_FWD_DEFINED__
typedef interface IMethodMalloc IMethodMalloc;
#endif /* __IMethodMalloc_FWD_DEFINED__ */
/* header files for imported files */
#include "unknwn.h"
#ifdef __cplusplus
extern "C"{
#endif
/* interface __MIDL_itf_corprof_0000_0000 */
/* [local] */
#define CorDB_CONTROL_Profiling "Cor_Enable_Profiling"
#define CorDB_CONTROL_ProfilingL L"Cor_Enable_Profiling"
#if 0
typedef LONG32 mdToken;
typedef mdToken mdModule;
typedef mdToken mdTypeDef;
typedef mdToken mdMethodDef;
typedef mdToken mdFieldDef;
typedef ULONG CorElementType;
#endif
typedef const BYTE *LPCBYTE;
typedef BYTE *LPBYTE;
#ifndef _COR_IL_MAP
#define _COR_IL_MAP
typedef struct _COR_IL_MAP
{
ULONG32 oldOffset;
ULONG32 newOffset;
BOOL fAccurate;
} COR_IL_MAP;
#endif //_COR_IL_MAP
#ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_
#define _COR_DEBUG_IL_TO_NATIVE_MAP_
typedef
enum CorDebugIlToNativeMappingTypes
{ NO_MAPPING = -1,
PROLOG = -2,
EPILOG = -3
} CorDebugIlToNativeMappingTypes;
typedef struct COR_DEBUG_IL_TO_NATIVE_MAP
{
ULONG32 ilOffset;
ULONG32 nativeStartOffset;
ULONG32 nativeEndOffset;
} COR_DEBUG_IL_TO_NATIVE_MAP;
#endif // _COR_DEBUG_IL_TO_NATIVE_MAP_
#ifndef _COR_FIELD_OFFSET_
#define _COR_FIELD_OFFSET_
typedef struct _COR_FIELD_OFFSET
{
mdFieldDef ridOfField;
ULONG ulOffset;
} COR_FIELD_OFFSET;
#endif // _COR_FIELD_OFFSET_
typedef UINT_PTR ProcessID;
typedef UINT_PTR AssemblyID;
typedef UINT_PTR AppDomainID;
typedef UINT_PTR ModuleID;
typedef UINT_PTR ClassID;
typedef UINT_PTR ThreadID;
typedef UINT_PTR ContextID;
typedef UINT_PTR FunctionID;
typedef UINT_PTR ObjectID;
typedef UINT_PTR GCHandleID;
typedef UINT_PTR COR_PRF_ELT_INFO;
typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public] */ union __MIDL___MIDL_itf_corprof_0000_0000_0001
{
FunctionID functionID;
UINT_PTR clientID;
} FunctionIDOrClientID;
typedef UINT_PTR __stdcall __stdcall FunctionIDMapper(
FunctionID funcId,
BOOL *pbHookFunction);
typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2(
FunctionID funcId,
void *clientData,
BOOL *pbHookFunction);
typedef
enum _COR_PRF_SNAPSHOT_INFO
{ COR_PRF_SNAPSHOT_DEFAULT = 0,
COR_PRF_SNAPSHOT_REGISTER_CONTEXT = 0x1,
COR_PRF_SNAPSHOT_X86_OPTIMIZED = 0x2
} COR_PRF_SNAPSHOT_INFO;
typedef UINT_PTR COR_PRF_FRAME_INFO;
typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE
{
UINT_PTR startAddress;
ULONG length;
} COR_PRF_FUNCTION_ARGUMENT_RANGE;
typedef struct _COR_PRF_FUNCTION_ARGUMENT_INFO
{
ULONG numRanges;
ULONG totalArgumentSize;
COR_PRF_FUNCTION_ARGUMENT_RANGE ranges[ 1 ];
} COR_PRF_FUNCTION_ARGUMENT_INFO;
typedef struct _COR_PRF_CODE_INFO
{
UINT_PTR startAddress;
SIZE_T size;
} COR_PRF_CODE_INFO;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0002
{ COR_PRF_FIELD_NOT_A_STATIC = 0,
COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1,
COR_PRF_FIELD_THREAD_STATIC = 0x2,
COR_PRF_FIELD_CONTEXT_STATIC = 0x4,
COR_PRF_FIELD_RVA_STATIC = 0x8
} COR_PRF_STATIC_TYPE;
typedef struct _COR_PRF_FUNCTION
{
FunctionID functionId;
UINT_PTR reserved;
} COR_PRF_FUNCTION;
typedef void FunctionEnter(
FunctionID funcID);
typedef void FunctionLeave(
FunctionID funcID);
typedef void FunctionTailcall(
FunctionID funcID);
typedef void FunctionEnter2(
FunctionID funcId,
UINT_PTR clientData,
COR_PRF_FRAME_INFO func,
COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo);
typedef void FunctionLeave2(
FunctionID funcId,
UINT_PTR clientData,
COR_PRF_FRAME_INFO func,
COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange);
typedef void FunctionTailcall2(
FunctionID funcId,
UINT_PTR clientData,
COR_PRF_FRAME_INFO func);
typedef void FunctionEnter3(
FunctionIDOrClientID functionIDOrClientID);
typedef void FunctionLeave3(
FunctionIDOrClientID functionIDOrClientID);
typedef void FunctionTailcall3(
FunctionIDOrClientID functionIDOrClientID);
typedef void FunctionEnter3WithInfo(
FunctionIDOrClientID functionIDOrClientID,
COR_PRF_ELT_INFO eltInfo);
typedef void FunctionLeave3WithInfo(
FunctionIDOrClientID functionIDOrClientID,
COR_PRF_ELT_INFO eltInfo);
typedef void FunctionTailcall3WithInfo(
FunctionIDOrClientID functionIDOrClientID,
COR_PRF_ELT_INFO eltInfo);
typedef HRESULT __stdcall __stdcall StackSnapshotCallback(
FunctionID funcId,
UINT_PTR ip,
COR_PRF_FRAME_INFO frameInfo,
ULONG32 contextSize,
BYTE context[ ],
void *clientData);
typedef /* [public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0003
{ COR_PRF_MONITOR_NONE = 0,
COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x1,
COR_PRF_MONITOR_CLASS_LOADS = 0x2,
COR_PRF_MONITOR_MODULE_LOADS = 0x4,
COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x8,
COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10,
COR_PRF_MONITOR_JIT_COMPILATION = 0x20,
COR_PRF_MONITOR_EXCEPTIONS = 0x40,
COR_PRF_MONITOR_GC = 0x80,
COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x100,
COR_PRF_MONITOR_THREADS = 0x200,
COR_PRF_MONITOR_REMOTING = 0x400,
COR_PRF_MONITOR_CODE_TRANSITIONS = 0x800,
COR_PRF_MONITOR_ENTERLEAVE = 0x1000,
COR_PRF_MONITOR_CCW = 0x2000,
COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) ,
COR_PRF_MONITOR_REMOTING_ASYNC = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) ,
COR_PRF_MONITOR_SUSPENDS = 0x10000,
COR_PRF_MONITOR_CACHE_SEARCHES = 0x20000,
COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x1000000,
COR_PRF_MONITOR_ALL = 0x107ffff,
COR_PRF_ENABLE_REJIT = 0x40000,
COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000,
COR_PRF_ENABLE_JIT_MAPS = 0x100000,
COR_PRF_DISABLE_INLINING = 0x200000,
COR_PRF_DISABLE_OPTIMIZATIONS = 0x400000,
COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000,
COR_PRF_ENABLE_FUNCTION_ARGS = 0x2000000,
COR_PRF_ENABLE_FUNCTION_RETVAL = 0x4000000,
COR_PRF_ENABLE_FRAME_INFO = 0x8000000,
COR_PRF_ENABLE_STACK_SNAPSHOT = 0x10000000,
COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000,
COR_PRF_ALL = 0x7fffffff,
COR_PRF_REQUIRE_PROFILE_IMAGE = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS ) | COR_PRF_MONITOR_ENTERLEAVE ) ,
COR_PRF_ALLOWABLE_AFTER_ATTACH = ( ( ( ( ( ( ( ( COR_PRF_MONITOR_THREADS | COR_PRF_MONITOR_MODULE_LOADS ) | COR_PRF_MONITOR_ASSEMBLY_LOADS ) | COR_PRF_MONITOR_APPDOMAIN_LOADS ) | COR_PRF_ENABLE_STACK_SNAPSHOT ) | COR_PRF_MONITOR_GC ) | COR_PRF_MONITOR_SUSPENDS ) | COR_PRF_MONITOR_CLASS_LOADS ) | COR_PRF_MONITOR_JIT_COMPILATION ) ,
COR_PRF_MONITOR_IMMUTABLE = ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING ) | COR_PRF_MONITOR_REMOTING_COOKIE ) | COR_PRF_MONITOR_REMOTING_ASYNC ) | COR_PRF_ENABLE_REJIT ) | COR_PRF_ENABLE_INPROC_DEBUGGING ) | COR_PRF_ENABLE_JIT_MAPS ) | COR_PRF_DISABLE_OPTIMIZATIONS ) | COR_PRF_DISABLE_INLINING ) | COR_PRF_ENABLE_OBJECT_ALLOCATED ) | COR_PRF_ENABLE_FUNCTION_ARGS ) | COR_PRF_ENABLE_FUNCTION_RETVAL ) | COR_PRF_ENABLE_FRAME_INFO ) | COR_PRF_USE_PROFILE_IMAGES ) | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST )
} COR_PRF_MONITOR;
typedef /* [public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0004
{ PROFILER_PARENT_UNKNOWN = 0xfffffffd,
PROFILER_GLOBAL_CLASS = 0xfffffffe,
PROFILER_GLOBAL_MODULE = 0xffffffff
} COR_PRF_MISC;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0005
{ COR_PRF_CACHED_FUNCTION_FOUND = 0,
COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 )
} COR_PRF_JIT_CACHE;
typedef /* [public][public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0006
{ COR_PRF_TRANSITION_CALL = 0,
COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 )
} COR_PRF_TRANSITION_REASON;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0007
{ COR_PRF_SUSPEND_OTHER = 0,
COR_PRF_SUSPEND_FOR_GC = 1,
COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 2,
COR_PRF_SUSPEND_FOR_CODE_PITCHING = 3,
COR_PRF_SUSPEND_FOR_SHUTDOWN = 4,
COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 6,
COR_PRF_SUSPEND_FOR_GC_PREP = 7
} COR_PRF_SUSPEND_REASON;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0000_0008
{ COR_PRF_DESKTOP_CLR = 0x1,
COR_PRF_CORE_CLR = 0x2
} COR_PRF_RUNTIME_TYPE;
extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_s_ifspec;
#ifndef __ICorProfilerCallback_INTERFACE_DEFINED__
#define __ICorProfilerCallback_INTERFACE_DEFINED__
/* interface ICorProfilerCallback */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerCallback;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("176FBED1-A55C-4796-98CA-A9DA0EF883E7")
ICorProfilerCallback : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Initialize(
/* [in] */ IUnknown *pICorProfilerInfoUnk) = 0;
virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
virtual HRESULT STDMETHODCALLTYPE AppDomainCreationStarted(
/* [in] */ AppDomainID appDomainId) = 0;
virtual HRESULT STDMETHODCALLTYPE AppDomainCreationFinished(
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownStarted(
/* [in] */ AppDomainID appDomainId) = 0;
virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownFinished(
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE AssemblyLoadStarted(
/* [in] */ AssemblyID assemblyId) = 0;
virtual HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadStarted(
/* [in] */ AssemblyID assemblyId) = 0;
virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished(
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE ModuleLoadStarted(
/* [in] */ ModuleID moduleId) = 0;
virtual HRESULT STDMETHODCALLTYPE ModuleLoadFinished(
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(
/* [in] */ ModuleID moduleId) = 0;
virtual HRESULT STDMETHODCALLTYPE ModuleUnloadFinished(
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE ModuleAttachedToAssembly(
/* [in] */ ModuleID moduleId,
/* [in] */ AssemblyID AssemblyId) = 0;
virtual HRESULT STDMETHODCALLTYPE ClassLoadStarted(
/* [in] */ ClassID classId) = 0;
virtual HRESULT STDMETHODCALLTYPE ClassLoadFinished(
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE ClassUnloadStarted(
/* [in] */ ClassID classId) = 0;
virtual HRESULT STDMETHODCALLTYPE ClassUnloadFinished(
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus) = 0;
virtual HRESULT STDMETHODCALLTYPE FunctionUnloadStarted(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE JITCompilationStarted(
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fIsSafeToBlock) = 0;
virtual HRESULT STDMETHODCALLTYPE JITCompilationFinished(
/* [in] */ FunctionID functionId,
/* [in] */ HRESULT hrStatus,
/* [in] */ BOOL fIsSafeToBlock) = 0;
virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted(
/* [in] */ FunctionID functionId,
/* [out] */ BOOL *pbUseCachedFunction) = 0;
virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_JIT_CACHE result) = 0;
virtual HRESULT STDMETHODCALLTYPE JITFunctionPitched(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE JITInlining(
/* [in] */ FunctionID callerId,
/* [in] */ FunctionID calleeId,
/* [out] */ BOOL *pfShouldInline) = 0;
virtual HRESULT STDMETHODCALLTYPE ThreadCreated(
/* [in] */ ThreadID threadId) = 0;
virtual HRESULT STDMETHODCALLTYPE ThreadDestroyed(
/* [in] */ ThreadID threadId) = 0;
virtual HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread(
/* [in] */ ThreadID managedThreadId,
/* [in] */ DWORD osThreadId) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingClientSendingMessage(
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingClientReceivingReply(
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingServerReceivingMessage(
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RemotingServerSendingReply(
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync) = 0;
virtual HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
virtual HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendStarted(
/* [in] */ COR_PRF_SUSPEND_REASON suspendReason) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeResumeStarted( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeResumeFinished( void) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended(
/* [in] */ ThreadID threadId) = 0;
virtual HRESULT STDMETHODCALLTYPE RuntimeThreadResumed(
/* [in] */ ThreadID threadId) = 0;
virtual HRESULT STDMETHODCALLTYPE MovedReferences(
/* [in] */ ULONG cMovedObjectIDRanges,
/* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
/* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE ObjectAllocated(
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId) = 0;
virtual HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass(
/* [in] */ ULONG cClassCount,
/* [size_is][in] */ ClassID classIds[ ],
/* [size_is][in] */ ULONG cObjects[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE ObjectReferences(
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId,
/* [in] */ ULONG cObjectRefs,
/* [size_is][in] */ ObjectID objectRefIds[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE RootReferences(
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionThrown(
/* [in] */ ObjectID thrownObjectId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionEnter(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterEnter(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionSearchCatcherFound(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter(
/* [in] */ UINT_PTR __unused) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave(
/* [in] */ UINT_PTR __unused) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionEnter(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyEnter(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(
/* [in] */ FunctionID functionId,
/* [in] */ ObjectID objectId) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave( void) = 0;
virtual HRESULT STDMETHODCALLTYPE COMClassicVTableCreated(
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable,
/* [in] */ ULONG cSlots) = 0;
virtual HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed(
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute( void) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerCallbackVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerCallback * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerCallback * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
ICorProfilerCallback * This,
/* [in] */ IUnknown *pICorProfilerInfoUnk);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
ICorProfilerCallback * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
ICorProfilerCallback * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
ICorProfilerCallback * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
ICorProfilerCallback * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
ICorProfilerCallback * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
ICorProfilerCallback * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
ICorProfilerCallback * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
ICorProfilerCallback * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
ICorProfilerCallback * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
ICorProfilerCallback * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
ICorProfilerCallback * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
ICorProfilerCallback * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
ICorProfilerCallback * This,
/* [in] */ ModuleID moduleId,
/* [in] */ AssemblyID AssemblyId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
ICorProfilerCallback * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
ICorProfilerCallback * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
ICorProfilerCallback * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
ICorProfilerCallback * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ HRESULT hrStatus,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [out] */ BOOL *pbUseCachedFunction);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_JIT_CACHE result);
HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITInlining )(
ICorProfilerCallback * This,
/* [in] */ FunctionID callerId,
/* [in] */ FunctionID calleeId,
/* [out] */ BOOL *pfShouldInline);
HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
ICorProfilerCallback * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
ICorProfilerCallback * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
ICorProfilerCallback * This,
/* [in] */ ThreadID managedThreadId,
/* [in] */ DWORD osThreadId);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
ICorProfilerCallback * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
ICorProfilerCallback * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
ICorProfilerCallback * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
ICorProfilerCallback * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
ICorProfilerCallback * This,
/* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
ICorProfilerCallback * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
ICorProfilerCallback * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
ICorProfilerCallback * This,
/* [in] */ ULONG cMovedObjectIDRanges,
/* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
/* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
ICorProfilerCallback * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
ICorProfilerCallback * This,
/* [in] */ ULONG cClassCount,
/* [size_is][in] */ ClassID classIds[ ],
/* [size_is][in] */ ULONG cObjects[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
ICorProfilerCallback * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId,
/* [in] */ ULONG cObjectRefs,
/* [size_is][in] */ ObjectID objectRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *RootReferences )(
ICorProfilerCallback * This,
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
ICorProfilerCallback * This,
/* [in] */ ObjectID thrownObjectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
ICorProfilerCallback * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
ICorProfilerCallback * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
ICorProfilerCallback * This,
/* [in] */ FunctionID functionId,
/* [in] */ ObjectID objectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
ICorProfilerCallback * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable,
/* [in] */ ULONG cSlots);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
ICorProfilerCallback * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
ICorProfilerCallback * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
ICorProfilerCallback * This);
END_INTERFACE
} ICorProfilerCallbackVtbl;
interface ICorProfilerCallback
{
CONST_VTBL struct ICorProfilerCallbackVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerCallback_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerCallback_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \
( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
#define ICorProfilerCallback_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
#define ICorProfilerCallback_ClassLoadStarted(This,classId) \
( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \
( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \
( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \
( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \
( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \
( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
#define ICorProfilerCallback_ThreadCreated(This,threadId) \
( (This)->lpVtbl -> ThreadCreated(This,threadId) )
#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \
( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \
( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \
( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \
( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \
( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \
( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
#define ICorProfilerCallback_RuntimeSuspendFinished(This) \
( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
#define ICorProfilerCallback_RuntimeSuspendAborted(This) \
( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
#define ICorProfilerCallback_RuntimeResumeStarted(This) \
( (This)->lpVtbl -> RuntimeResumeStarted(This) )
#define ICorProfilerCallback_RuntimeResumeFinished(This) \
( (This)->lpVtbl -> RuntimeResumeFinished(This) )
#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \
( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \
( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \
( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \
( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
#define ICorProfilerCallback_ExceptionCatcherLeave(This) \
( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */
/* interface __MIDL_itf_corprof_0000_0001 */
/* [local] */
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0001
{ COR_PRF_GC_ROOT_STACK = 1,
COR_PRF_GC_ROOT_FINALIZER = 2,
COR_PRF_GC_ROOT_HANDLE = 3,
COR_PRF_GC_ROOT_OTHER = 0
} COR_PRF_GC_ROOT_KIND;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0002
{ COR_PRF_GC_ROOT_PINNING = 0x1,
COR_PRF_GC_ROOT_WEAKREF = 0x2,
COR_PRF_GC_ROOT_INTERIOR = 0x4,
COR_PRF_GC_ROOT_REFCOUNTED = 0x8
} COR_PRF_GC_ROOT_FLAGS;
typedef /* [public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0003
{ COR_PRF_FINALIZER_CRITICAL = 0x1
} COR_PRF_FINALIZER_FLAGS;
typedef /* [public][public][public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0004
{ COR_PRF_GC_GEN_0 = 0,
COR_PRF_GC_GEN_1 = 1,
COR_PRF_GC_GEN_2 = 2,
COR_PRF_GC_LARGE_OBJECT_HEAP = 3
} COR_PRF_GC_GENERATION;
typedef struct COR_PRF_GC_GENERATION_RANGE
{
COR_PRF_GC_GENERATION generation;
ObjectID rangeStart;
UINT_PTR rangeLength;
UINT_PTR rangeLengthReserved;
} COR_PRF_GC_GENERATION_RANGE;
typedef /* [public][public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0005
{ COR_PRF_CLAUSE_NONE = 0,
COR_PRF_CLAUSE_FILTER = 1,
COR_PRF_CLAUSE_CATCH = 2,
COR_PRF_CLAUSE_FINALLY = 3
} COR_PRF_CLAUSE_TYPE;
typedef struct COR_PRF_EX_CLAUSE_INFO
{
COR_PRF_CLAUSE_TYPE clauseType;
UINT_PTR programCounter;
UINT_PTR framePointer;
UINT_PTR shadowStackPointer;
} COR_PRF_EX_CLAUSE_INFO;
typedef /* [public][public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0006
{ COR_PRF_GC_INDUCED = 1,
COR_PRF_GC_OTHER = 0
} COR_PRF_GC_REASON;
typedef /* [public] */
enum __MIDL___MIDL_itf_corprof_0000_0001_0007
{ COR_PRF_MODULE_DISK = 0x1,
COR_PRF_MODULE_NGEN = 0x2,
COR_PRF_MODULE_DYNAMIC = 0x4,
COR_PRF_MODULE_COLLECTIBLE = 0x8,
COR_PRF_MODULE_RESOURCE = 0x10,
COR_PRF_MODULE_FLAT_LAYOUT = 0x20
} COR_PRF_MODULE_FLAGS;
extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_c_ifspec;
extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_s_ifspec;
#ifndef __ICorProfilerCallback2_INTERFACE_DEFINED__
#define __ICorProfilerCallback2_INTERFACE_DEFINED__
/* interface ICorProfilerCallback2 */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerCallback2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("8A8CC829-CCF2-49fe-BBAE-0F022228071A")
ICorProfilerCallback2 : public ICorProfilerCallback
{
public:
virtual HRESULT STDMETHODCALLTYPE ThreadNameChanged(
/* [in] */ ThreadID threadId,
/* [in] */ ULONG cchName,
/* [in] */
__in_ecount_opt(cchName) WCHAR name[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GarbageCollectionStarted(
/* [in] */ int cGenerations,
/* [size_is][in] */ BOOL generationCollected[ ],
/* [in] */ COR_PRF_GC_REASON reason) = 0;
virtual HRESULT STDMETHODCALLTYPE SurvivingReferences(
/* [in] */ ULONG cSurvivingObjectIDRanges,
/* [size_is][in] */ ObjectID objectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GarbageCollectionFinished( void) = 0;
virtual HRESULT STDMETHODCALLTYPE FinalizeableObjectQueued(
/* [in] */ DWORD finalizerFlags,
/* [in] */ ObjectID objectID) = 0;
virtual HRESULT STDMETHODCALLTYPE RootReferences2(
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
/* [size_is][in] */ UINT_PTR rootIds[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE HandleCreated(
/* [in] */ GCHandleID handleId,
/* [in] */ ObjectID initialObjectId) = 0;
virtual HRESULT STDMETHODCALLTYPE HandleDestroyed(
/* [in] */ GCHandleID handleId) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerCallback2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerCallback2 * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerCallback2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
ICorProfilerCallback2 * This,
/* [in] */ IUnknown *pICorProfilerInfoUnk);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
ICorProfilerCallback2 * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
ICorProfilerCallback2 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
ICorProfilerCallback2 * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
ICorProfilerCallback2 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
ICorProfilerCallback2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ AssemblyID AssemblyId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ HRESULT hrStatus,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [out] */ BOOL *pbUseCachedFunction);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_JIT_CACHE result);
HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITInlining )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID callerId,
/* [in] */ FunctionID calleeId,
/* [out] */ BOOL *pfShouldInline);
HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID managedThreadId,
/* [in] */ DWORD osThreadId);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
ICorProfilerCallback2 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
ICorProfilerCallback2 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
ICorProfilerCallback2 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
ICorProfilerCallback2 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
ICorProfilerCallback2 * This,
/* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
ICorProfilerCallback2 * This,
/* [in] */ ULONG cMovedObjectIDRanges,
/* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
/* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
ICorProfilerCallback2 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
ICorProfilerCallback2 * This,
/* [in] */ ULONG cClassCount,
/* [size_is][in] */ ClassID classIds[ ],
/* [size_is][in] */ ULONG cObjects[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
ICorProfilerCallback2 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId,
/* [in] */ ULONG cObjectRefs,
/* [size_is][in] */ ObjectID objectRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *RootReferences )(
ICorProfilerCallback2 * This,
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
ICorProfilerCallback2 * This,
/* [in] */ ObjectID thrownObjectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
ICorProfilerCallback2 * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
ICorProfilerCallback2 * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
ICorProfilerCallback2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ ObjectID objectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable,
/* [in] */ ULONG cSlots);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
ICorProfilerCallback2 * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
ICorProfilerCallback2 * This,
/* [in] */ ThreadID threadId,
/* [in] */ ULONG cchName,
/* [in] */
__in_ecount_opt(cchName) WCHAR name[ ]);
HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
ICorProfilerCallback2 * This,
/* [in] */ int cGenerations,
/* [size_is][in] */ BOOL generationCollected[ ],
/* [in] */ COR_PRF_GC_REASON reason);
HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
ICorProfilerCallback2 * This,
/* [in] */ ULONG cSurvivingObjectIDRanges,
/* [size_is][in] */ ObjectID objectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
ICorProfilerCallback2 * This);
HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
ICorProfilerCallback2 * This,
/* [in] */ DWORD finalizerFlags,
/* [in] */ ObjectID objectID);
HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
ICorProfilerCallback2 * This,
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
/* [size_is][in] */ UINT_PTR rootIds[ ]);
HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
ICorProfilerCallback2 * This,
/* [in] */ GCHandleID handleId,
/* [in] */ ObjectID initialObjectId);
HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
ICorProfilerCallback2 * This,
/* [in] */ GCHandleID handleId);
END_INTERFACE
} ICorProfilerCallback2Vtbl;
interface ICorProfilerCallback2
{
CONST_VTBL struct ICorProfilerCallback2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerCallback2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerCallback2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \
( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
#define ICorProfilerCallback2_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \
( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \
( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \
( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \
( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \
( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \
( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
#define ICorProfilerCallback2_ThreadCreated(This,threadId) \
( (This)->lpVtbl -> ThreadCreated(This,threadId) )
#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \
( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \
( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \
( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \
( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \
( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \
( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \
( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \
( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
#define ICorProfilerCallback2_RuntimeResumeStarted(This) \
( (This)->lpVtbl -> RuntimeResumeStarted(This) )
#define ICorProfilerCallback2_RuntimeResumeFinished(This) \
( (This)->lpVtbl -> RuntimeResumeFinished(This) )
#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \
( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \
( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \
( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \
( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \
( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \
( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
#define ICorProfilerCallback2_GarbageCollectionFinished(This) \
( (This)->lpVtbl -> GarbageCollectionFinished(This) )
#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \
( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \
( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__
#define __ICorProfilerCallback3_INTERFACE_DEFINED__
/* interface ICorProfilerCallback3 */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerCallback3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("4FD2ED52-7731-4b8d-9469-03D2CC3086C5")
ICorProfilerCallback3 : public ICorProfilerCallback2
{
public:
virtual HRESULT STDMETHODCALLTYPE InitializeForAttach(
/* [in] */ IUnknown *pCorProfilerInfoUnk,
/* [in] */ void *pvClientData,
/* [in] */ UINT cbClientData) = 0;
virtual HRESULT STDMETHODCALLTYPE ProfilerAttachComplete( void) = 0;
virtual HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded( void) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerCallback3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerCallback3 * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerCallback3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *Initialize )(
ICorProfilerCallback3 * This,
/* [in] */ IUnknown *pICorProfilerInfoUnk);
HRESULT ( STDMETHODCALLTYPE *Shutdown )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
ICorProfilerCallback3 * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
ICorProfilerCallback3 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
ICorProfilerCallback3 * This,
/* [in] */ AppDomainID appDomainId);
HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
ICorProfilerCallback3 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ AssemblyID assemblyId);
HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ ModuleID moduleId);
HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
ICorProfilerCallback3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ AssemblyID AssemblyId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID classId,
/* [in] */ HRESULT hrStatus);
HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ HRESULT hrStatus,
/* [in] */ BOOL fIsSafeToBlock);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [out] */ BOOL *pbUseCachedFunction);
HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_JIT_CACHE result);
HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *JITInlining )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID callerId,
/* [in] */ FunctionID calleeId,
/* [out] */ BOOL *pfShouldInline);
HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID managedThreadId,
/* [in] */ DWORD osThreadId);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
ICorProfilerCallback3 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
ICorProfilerCallback3 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
ICorProfilerCallback3 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
ICorProfilerCallback3 * This,
/* [in] */ GUID *pCookie,
/* [in] */ BOOL fIsAsync);
HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_TRANSITION_REASON reason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
ICorProfilerCallback3 * This,
/* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID threadId);
HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
ICorProfilerCallback3 * This,
/* [in] */ ULONG cMovedObjectIDRanges,
/* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
/* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
ICorProfilerCallback3 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId);
HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
ICorProfilerCallback3 * This,
/* [in] */ ULONG cClassCount,
/* [size_is][in] */ ClassID classIds[ ],
/* [size_is][in] */ ULONG cObjects[ ]);
HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
ICorProfilerCallback3 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ClassID classId,
/* [in] */ ULONG cObjectRefs,
/* [size_is][in] */ ObjectID objectRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *RootReferences )(
ICorProfilerCallback3 * This,
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ]);
HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
ICorProfilerCallback3 * This,
/* [in] */ ObjectID thrownObjectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
ICorProfilerCallback3 * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
ICorProfilerCallback3 * This,
/* [in] */ UINT_PTR __unused);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
ICorProfilerCallback3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ ObjectID objectId);
HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable,
/* [in] */ ULONG cSlots);
HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
ICorProfilerCallback3 * This,
/* [in] */ ClassID wrappedClassId,
/* [in] */ REFGUID implementedIID,
/* [in] */ void *pVTable);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
ICorProfilerCallback3 * This,
/* [in] */ ThreadID threadId,
/* [in] */ ULONG cchName,
/* [in] */
__in_ecount_opt(cchName) WCHAR name[ ]);
HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
ICorProfilerCallback3 * This,
/* [in] */ int cGenerations,
/* [size_is][in] */ BOOL generationCollected[ ],
/* [in] */ COR_PRF_GC_REASON reason);
HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
ICorProfilerCallback3 * This,
/* [in] */ ULONG cSurvivingObjectIDRanges,
/* [size_is][in] */ ObjectID objectIDRangeStart[ ],
/* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
ICorProfilerCallback3 * This,
/* [in] */ DWORD finalizerFlags,
/* [in] */ ObjectID objectID);
HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
ICorProfilerCallback3 * This,
/* [in] */ ULONG cRootRefs,
/* [size_is][in] */ ObjectID rootRefIds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
/* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
/* [size_is][in] */ UINT_PTR rootIds[ ]);
HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
ICorProfilerCallback3 * This,
/* [in] */ GCHandleID handleId,
/* [in] */ ObjectID initialObjectId);
HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
ICorProfilerCallback3 * This,
/* [in] */ GCHandleID handleId);
HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
ICorProfilerCallback3 * This,
/* [in] */ IUnknown *pCorProfilerInfoUnk,
/* [in] */ void *pvClientData,
/* [in] */ UINT cbClientData);
HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
ICorProfilerCallback3 * This);
HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
ICorProfilerCallback3 * This);
END_INTERFACE
} ICorProfilerCallback3Vtbl;
interface ICorProfilerCallback3
{
CONST_VTBL struct ICorProfilerCallback3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerCallback3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerCallback3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \
( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
#define ICorProfilerCallback3_Shutdown(This) \
( (This)->lpVtbl -> Shutdown(This) )
#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \
( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \
( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \
( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \
( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \
( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \
( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \
( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \
( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \
( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \
( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \
( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
#define ICorProfilerCallback3_ThreadCreated(This,threadId) \
( (This)->lpVtbl -> ThreadCreated(This,threadId) )
#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \
( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \
( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \
( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \
( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \
( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \
( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \
( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \
( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \
( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \
( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
#define ICorProfilerCallback3_RuntimeResumeStarted(This) \
( (This)->lpVtbl -> RuntimeResumeStarted(This) )
#define ICorProfilerCallback3_RuntimeResumeFinished(This) \
( (This)->lpVtbl -> RuntimeResumeFinished(This) )
#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \
( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \
( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \
( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \
( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \
( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \
( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \
( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \
( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \
( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \
( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \
( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \
( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \
( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
#define ICorProfilerCallback3_GarbageCollectionFinished(This) \
( (This)->lpVtbl -> GarbageCollectionFinished(This) )
#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \
( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \
( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
#define ICorProfilerCallback3_ProfilerAttachComplete(This) \
( (This)->lpVtbl -> ProfilerAttachComplete(This) )
#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \
( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerInfo_INTERFACE_DEFINED__
#define __ICorProfilerInfo_INTERFACE_DEFINED__
/* interface ICorProfilerInfo */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerInfo;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("28B5557D-3F3F-48b4-90B2-5F9EEA2F6C48")
ICorProfilerInfo : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE GetClassFromObject(
/* [in] */ ObjectID objectId,
/* [out] */ ClassID *pClassId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClassFromToken(
/* [in] */ ModuleID moduleId,
/* [in] */ mdTypeDef typeDef,
/* [out] */ ClassID *pClassId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCodeInfo(
/* [in] */ FunctionID functionId,
/* [out] */ LPCBYTE *pStart,
/* [out] */ ULONG *pcSize) = 0;
virtual HRESULT STDMETHODCALLTYPE GetEventMask(
/* [out] */ DWORD *pdwEvents) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP(
/* [in] */ LPCBYTE ip,
/* [out] */ FunctionID *pFunctionId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken(
/* [in] */ ModuleID moduleId,
/* [in] */ mdToken token,
/* [out] */ FunctionID *pFunctionId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetHandleFromThread(
/* [in] */ ThreadID threadId,
/* [out] */ HANDLE *phThread) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectSize(
/* [in] */ ObjectID objectId,
/* [out] */ ULONG *pcSize) = 0;
virtual HRESULT STDMETHODCALLTYPE IsArrayClass(
/* [in] */ ClassID classId,
/* [out] */ CorElementType *pBaseElemType,
/* [out] */ ClassID *pBaseClassId,
/* [out] */ ULONG *pcRank) = 0;
virtual HRESULT STDMETHODCALLTYPE GetThreadInfo(
/* [in] */ ThreadID threadId,
/* [out] */ DWORD *pdwWin32ThreadId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadID(
/* [out] */ ThreadID *pThreadId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo(
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo(
/* [in] */ FunctionID functionId,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEventMask(
/* [in] */ DWORD dwEvents) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks(
/* [in] */ FunctionEnter *pFuncEnter,
/* [in] */ FunctionLeave *pFuncLeave,
/* [in] */ FunctionTailcall *pFuncTailcall) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper(
/* [in] */ FunctionIDMapper *pFunc) = 0;
virtual HRESULT STDMETHODCALLTYPE GetTokenAndMetaDataFromFunction(
/* [in] */ FunctionID functionId,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppImport,
/* [out] */ mdToken *pToken) = 0;
virtual HRESULT STDMETHODCALLTYPE GetModuleInfo(
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetModuleMetaData(
/* [in] */ ModuleID moduleId,
/* [in] */ DWORD dwOpenFlags,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppOut) = 0;
virtual HRESULT STDMETHODCALLTYPE GetILFunctionBody(
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodId,
/* [out] */ LPCBYTE *ppMethodHeader,
/* [out] */ ULONG *pcbMethodSize) = 0;
virtual HRESULT STDMETHODCALLTYPE GetILFunctionBodyAllocator(
/* [in] */ ModuleID moduleId,
/* [out] */ IMethodMalloc **ppMalloc) = 0;
virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody(
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodid,
/* [in] */ LPCBYTE pbNewILMethodHeader) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAppDomainInfo(
/* [in] */ AppDomainID appDomainId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ ProcessID *pProcessId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAssemblyInfo(
/* [in] */ AssemblyID assemblyId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AppDomainID *pAppDomainId,
/* [out] */ ModuleID *pModuleId) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFunctionReJIT(
/* [in] */ FunctionID functionId) = 0;
virtual HRESULT STDMETHODCALLTYPE ForceGC( void) = 0;
virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap(
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fStartJit,
/* [in] */ ULONG cILMapEntries,
/* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionInterface(
/* [out] */ IUnknown **ppicd) = 0;
virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionIThisThread(
/* [out] */ IUnknown **ppicd) = 0;
virtual HRESULT STDMETHODCALLTYPE GetThreadContext(
/* [in] */ ThreadID threadId,
/* [out] */ ContextID *pContextId) = 0;
virtual HRESULT STDMETHODCALLTYPE BeginInprocDebugging(
/* [in] */ BOOL fThisThreadOnly,
/* [out] */ DWORD *pdwProfilerContext) = 0;
virtual HRESULT STDMETHODCALLTYPE EndInprocDebugging(
/* [in] */ DWORD dwProfilerContext) = 0;
virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping(
/* [in] */ FunctionID functionId,
/* [in] */ ULONG32 cMap,
/* [out] */ ULONG32 *pcMap,
/* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerInfoVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerInfo * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerInfo * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerInfo * This);
HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
ICorProfilerInfo * This,
/* [in] */ ObjectID objectId,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdTypeDef typeDef,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId,
/* [out] */ LPCBYTE *pStart,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
ICorProfilerInfo * This,
/* [out] */ DWORD *pdwEvents);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
ICorProfilerInfo * This,
/* [in] */ LPCBYTE ip,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdToken token,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
ICorProfilerInfo * This,
/* [in] */ ThreadID threadId,
/* [out] */ HANDLE *phThread);
HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
ICorProfilerInfo * This,
/* [in] */ ObjectID objectId,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
ICorProfilerInfo * This,
/* [in] */ ClassID classId,
/* [out] */ CorElementType *pBaseElemType,
/* [out] */ ClassID *pBaseClassId,
/* [out] */ ULONG *pcRank);
HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
ICorProfilerInfo * This,
/* [in] */ ThreadID threadId,
/* [out] */ DWORD *pdwWin32ThreadId);
HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
ICorProfilerInfo * This,
/* [out] */ ThreadID *pThreadId);
HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
ICorProfilerInfo * This,
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken);
HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
ICorProfilerInfo * This,
/* [in] */ DWORD dwEvents);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
ICorProfilerInfo * This,
/* [in] */ FunctionEnter *pFuncEnter,
/* [in] */ FunctionLeave *pFuncLeave,
/* [in] */ FunctionTailcall *pFuncTailcall);
HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
ICorProfilerInfo * This,
/* [in] */ FunctionIDMapper *pFunc);
HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppImport,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId);
HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [in] */ DWORD dwOpenFlags,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppOut);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodId,
/* [out] */ LPCBYTE *ppMethodHeader,
/* [out] */ ULONG *pcbMethodSize);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [out] */ IMethodMalloc **ppMalloc);
HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
ICorProfilerInfo * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodid,
/* [in] */ LPCBYTE pbNewILMethodHeader);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
ICorProfilerInfo * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ ProcessID *pProcessId);
HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
ICorProfilerInfo * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AppDomainID *pAppDomainId,
/* [out] */ ModuleID *pModuleId);
HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ForceGC )(
ICorProfilerInfo * This);
HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fStartJit,
/* [in] */ ULONG cILMapEntries,
/* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
ICorProfilerInfo * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
ICorProfilerInfo * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
ICorProfilerInfo * This,
/* [in] */ ThreadID threadId,
/* [out] */ ContextID *pContextId);
HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
ICorProfilerInfo * This,
/* [in] */ BOOL fThisThreadOnly,
/* [out] */ DWORD *pdwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
ICorProfilerInfo * This,
/* [in] */ DWORD dwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
ICorProfilerInfo * This,
/* [in] */ FunctionID functionId,
/* [in] */ ULONG32 cMap,
/* [out] */ ULONG32 *pcMap,
/* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
END_INTERFACE
} ICorProfilerInfoVtbl;
interface ICorProfilerInfo
{
CONST_VTBL struct ICorProfilerInfoVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerInfo_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerInfo_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \
( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \
( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \
( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \
( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \
( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \
( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \
( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
#define ICorProfilerInfo_SetEventMask(This,dwEvents) \
( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \
( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
#define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
#define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
#define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
#define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
#define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
#define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \
( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
#define ICorProfilerInfo_ForceGC(This) \
( (This)->lpVtbl -> ForceGC(This) )
#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \
( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \
( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__
#define __ICorProfilerInfo2_INTERFACE_DEFINED__
/* interface ICorProfilerInfo2 */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerInfo2;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("CC0935CD-A518-487d-B0BB-A93214E65478")
ICorProfilerInfo2 : public ICorProfilerInfo
{
public:
virtual HRESULT STDMETHODCALLTYPE DoStackSnapshot(
/* [in] */ ThreadID thread,
/* [in] */ StackSnapshotCallback *callback,
/* [in] */ ULONG32 infoFlags,
/* [in] */ void *clientData,
/* [size_is][in] */ BYTE context[ ],
/* [in] */ ULONG32 contextSize) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks2(
/* [in] */ FunctionEnter2 *pFuncEnter,
/* [in] */ FunctionLeave2 *pFuncLeave,
/* [in] */ FunctionTailcall2 *pFuncTailcall) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo2(
/* [in] */ FunctionID funcId,
/* [in] */ COR_PRF_FRAME_INFO frameInfo,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken,
/* [in] */ ULONG32 cTypeArgs,
/* [out] */ ULONG32 *pcTypeArgs,
/* [out] */ ClassID typeArgs[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStringLayout(
/* [out] */ ULONG *pBufferLengthOffset,
/* [out] */ ULONG *pStringLengthOffset,
/* [out] */ ULONG *pBufferOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClassLayout(
/* [in] */ ClassID classID,
/* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
/* [in] */ ULONG cFieldOffset,
/* [out] */ ULONG *pcFieldOffset,
/* [out] */ ULONG *pulClassSize) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo2(
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken,
/* [out] */ ClassID *pParentClassId,
/* [in] */ ULONG32 cNumTypeArgs,
/* [out] */ ULONG32 *pcNumTypeArgs,
/* [out] */ ClassID typeArgs[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCodeInfo2(
/* [in] */ FunctionID functionID,
/* [in] */ ULONG32 cCodeInfos,
/* [out] */ ULONG32 *pcCodeInfos,
/* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetClassFromTokenAndTypeArgs(
/* [in] */ ModuleID moduleID,
/* [in] */ mdTypeDef typeDef,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ ClassID *pClassID) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionFromTokenAndTypeArgs(
/* [in] */ ModuleID moduleID,
/* [in] */ mdMethodDef funcDef,
/* [in] */ ClassID classId,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ FunctionID *pFunctionID) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumModuleFrozenObjects(
/* [in] */ ModuleID moduleID,
/* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetArrayObjectInfo(
/* [in] */ ObjectID objectId,
/* [in] */ ULONG32 cDimensions,
/* [size_is][out] */ ULONG32 pDimensionSizes[ ],
/* [size_is][out] */ int pDimensionLowerBounds[ ],
/* [out] */ BYTE **ppData) = 0;
virtual HRESULT STDMETHODCALLTYPE GetBoxClassLayout(
/* [in] */ ClassID classId,
/* [out] */ ULONG32 *pBufferOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE GetThreadAppDomain(
/* [in] */ ThreadID threadId,
/* [out] */ AppDomainID *pAppDomainId) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRVAStaticAddress(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ void **ppAddress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAppDomainStaticAddress(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ AppDomainID appDomainId,
/* [out] */ void **ppAddress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ThreadID threadId,
/* [out] */ void **ppAddress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetContextStaticAddress(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ContextID contextId,
/* [out] */ void **ppAddress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStaticFieldInfo(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE GetGenerationBounds(
/* [in] */ ULONG cObjectRanges,
/* [out] */ ULONG *pcObjectRanges,
/* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetObjectGeneration(
/* [in] */ ObjectID objectId,
/* [out] */ COR_PRF_GC_GENERATION_RANGE *range) = 0;
virtual HRESULT STDMETHODCALLTYPE GetNotifiedExceptionClauseInfo(
/* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerInfo2Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerInfo2 * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerInfo2 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerInfo2 * This);
HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
ICorProfilerInfo2 * This,
/* [in] */ ObjectID objectId,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdTypeDef typeDef,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId,
/* [out] */ LPCBYTE *pStart,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
ICorProfilerInfo2 * This,
/* [out] */ DWORD *pdwEvents);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
ICorProfilerInfo2 * This,
/* [in] */ LPCBYTE ip,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdToken token,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
ICorProfilerInfo2 * This,
/* [in] */ ThreadID threadId,
/* [out] */ HANDLE *phThread);
HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
ICorProfilerInfo2 * This,
/* [in] */ ObjectID objectId,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [out] */ CorElementType *pBaseElemType,
/* [out] */ ClassID *pBaseClassId,
/* [out] */ ULONG *pcRank);
HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
ICorProfilerInfo2 * This,
/* [in] */ ThreadID threadId,
/* [out] */ DWORD *pdwWin32ThreadId);
HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
ICorProfilerInfo2 * This,
/* [out] */ ThreadID *pThreadId);
HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken);
HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
ICorProfilerInfo2 * This,
/* [in] */ DWORD dwEvents);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionEnter *pFuncEnter,
/* [in] */ FunctionLeave *pFuncLeave,
/* [in] */ FunctionTailcall *pFuncTailcall);
HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionIDMapper *pFunc);
HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppImport,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId);
HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ DWORD dwOpenFlags,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppOut);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodId,
/* [out] */ LPCBYTE *ppMethodHeader,
/* [out] */ ULONG *pcbMethodSize);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [out] */ IMethodMalloc **ppMalloc);
HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodid,
/* [in] */ LPCBYTE pbNewILMethodHeader);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
ICorProfilerInfo2 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ ProcessID *pProcessId);
HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
ICorProfilerInfo2 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AppDomainID *pAppDomainId,
/* [out] */ ModuleID *pModuleId);
HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ForceGC )(
ICorProfilerInfo2 * This);
HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fStartJit,
/* [in] */ ULONG cILMapEntries,
/* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
ICorProfilerInfo2 * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
ICorProfilerInfo2 * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
ICorProfilerInfo2 * This,
/* [in] */ ThreadID threadId,
/* [out] */ ContextID *pContextId);
HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
ICorProfilerInfo2 * This,
/* [in] */ BOOL fThisThreadOnly,
/* [out] */ DWORD *pdwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
ICorProfilerInfo2 * This,
/* [in] */ DWORD dwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionId,
/* [in] */ ULONG32 cMap,
/* [out] */ ULONG32 *pcMap,
/* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
ICorProfilerInfo2 * This,
/* [in] */ ThreadID thread,
/* [in] */ StackSnapshotCallback *callback,
/* [in] */ ULONG32 infoFlags,
/* [in] */ void *clientData,
/* [size_is][in] */ BYTE context[ ],
/* [in] */ ULONG32 contextSize);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionEnter2 *pFuncEnter,
/* [in] */ FunctionLeave2 *pFuncLeave,
/* [in] */ FunctionTailcall2 *pFuncTailcall);
HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID funcId,
/* [in] */ COR_PRF_FRAME_INFO frameInfo,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken,
/* [in] */ ULONG32 cTypeArgs,
/* [out] */ ULONG32 *pcTypeArgs,
/* [out] */ ClassID typeArgs[ ]);
HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
ICorProfilerInfo2 * This,
/* [out] */ ULONG *pBufferLengthOffset,
/* [out] */ ULONG *pStringLengthOffset,
/* [out] */ ULONG *pBufferOffset);
HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classID,
/* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
/* [in] */ ULONG cFieldOffset,
/* [out] */ ULONG *pcFieldOffset,
/* [out] */ ULONG *pulClassSize);
HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken,
/* [out] */ ClassID *pParentClassId,
/* [in] */ ULONG32 cNumTypeArgs,
/* [out] */ ULONG32 *pcNumTypeArgs,
/* [out] */ ClassID typeArgs[ ]);
HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
ICorProfilerInfo2 * This,
/* [in] */ FunctionID functionID,
/* [in] */ ULONG32 cCodeInfos,
/* [out] */ ULONG32 *pcCodeInfos,
/* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleID,
/* [in] */ mdTypeDef typeDef,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ ClassID *pClassID);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleID,
/* [in] */ mdMethodDef funcDef,
/* [in] */ ClassID classId,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ FunctionID *pFunctionID);
HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
ICorProfilerInfo2 * This,
/* [in] */ ModuleID moduleID,
/* [out] */ ICorProfilerObjectEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
ICorProfilerInfo2 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ULONG32 cDimensions,
/* [size_is][out] */ ULONG32 pDimensionSizes[ ],
/* [size_is][out] */ int pDimensionLowerBounds[ ],
/* [out] */ BYTE **ppData);
HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [out] */ ULONG32 *pBufferOffset);
HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
ICorProfilerInfo2 * This,
/* [in] */ ThreadID threadId,
/* [out] */ AppDomainID *pAppDomainId);
HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ AppDomainID appDomainId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ThreadID threadId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ContextID contextId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
ICorProfilerInfo2 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
ICorProfilerInfo2 * This,
/* [in] */ ULONG cObjectRanges,
/* [out] */ ULONG *pcObjectRanges,
/* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
ICorProfilerInfo2 * This,
/* [in] */ ObjectID objectId,
/* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
ICorProfilerInfo2 * This,
/* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
END_INTERFACE
} ICorProfilerInfo2Vtbl;
interface ICorProfilerInfo2
{
CONST_VTBL struct ICorProfilerInfo2Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerInfo2_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerInfo2_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \
( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \
( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \
( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \
( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \
( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \
( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \
( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \
( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \
( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
#define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
#define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
#define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
#define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
#define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
#define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \
( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
#define ICorProfilerInfo2_ForceGC(This) \
( (This)->lpVtbl -> ForceGC(This) )
#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \
( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \
( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
#define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
#define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
#define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
#define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
#define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
#define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
#define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
#define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
#define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
#define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \
( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \
( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
#define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
#define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \
( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \
( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__
#define __ICorProfilerInfo3_INTERFACE_DEFINED__
/* interface ICorProfilerInfo3 */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerInfo3;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("B555ED4F-452A-4E54-8B39-B5360BAD32A0")
ICorProfilerInfo3 : public ICorProfilerInfo2
{
public:
virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions(
/* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE RequestProfilerDetach(
/* [in] */ DWORD dwExpectedCompletionMilliseconds) = 0;
virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper2(
/* [in] */ FunctionIDMapper2 *pFunc,
/* [in] */ void *clientData) = 0;
virtual HRESULT STDMETHODCALLTYPE GetStringLayout2(
/* [out] */ ULONG *pStringLengthOffset,
/* [out] */ ULONG *pBufferOffset) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3(
/* [in] */ FunctionEnter3 *pFuncEnter3,
/* [in] */ FunctionLeave3 *pFuncLeave3,
/* [in] */ FunctionTailcall3 *pFuncTailcall3) = 0;
virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3WithInfo(
/* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
/* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
/* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionEnter3Info(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
/* [out][in] */ ULONG *pcbArgumentInfo,
/* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionLeave3Info(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
/* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange) = 0;
virtual HRESULT STDMETHODCALLTYPE GetFunctionTailcall3Info(
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo) = 0;
virtual HRESULT STDMETHODCALLTYPE EnumModules(
/* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetRuntimeInformation(
/* [out] */ USHORT *pClrInstanceId,
/* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
/* [out] */ USHORT *pMajorVersion,
/* [out] */ USHORT *pMinorVersion,
/* [out] */ USHORT *pBuildNumber,
/* [out] */ USHORT *pQFEVersion,
/* [in] */ ULONG cchVersionString,
/* [out] */ ULONG *pcchVersionString,
/* [out] */
__out_ecount_part(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress2(
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ AppDomainID appDomainId,
/* [in] */ ThreadID threadId,
/* [out] */ void **ppAddress) = 0;
virtual HRESULT STDMETHODCALLTYPE GetAppDomainsContainingModule(
/* [in] */ ModuleID moduleId,
/* [in] */ ULONG32 cAppDomainIds,
/* [out] */ ULONG32 *pcAppDomainIds,
/* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]) = 0;
virtual HRESULT STDMETHODCALLTYPE GetModuleInfo2(
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId,
/* [out] */ DWORD *pdwModuleFlags) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerInfo3Vtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerInfo3 * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerInfo3 * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerInfo3 * This);
HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
ICorProfilerInfo3 * This,
/* [in] */ ObjectID objectId,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdTypeDef typeDef,
/* [out] */ ClassID *pClassId);
HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [out] */ LPCBYTE *pStart,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
ICorProfilerInfo3 * This,
/* [out] */ DWORD *pdwEvents);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
ICorProfilerInfo3 * This,
/* [in] */ LPCBYTE ip,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdToken token,
/* [out] */ FunctionID *pFunctionId);
HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
ICorProfilerInfo3 * This,
/* [in] */ ThreadID threadId,
/* [out] */ HANDLE *phThread);
HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
ICorProfilerInfo3 * This,
/* [in] */ ObjectID objectId,
/* [out] */ ULONG *pcSize);
HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [out] */ CorElementType *pBaseElemType,
/* [out] */ ClassID *pBaseClassId,
/* [out] */ ULONG *pcRank);
HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
ICorProfilerInfo3 * This,
/* [in] */ ThreadID threadId,
/* [out] */ DWORD *pdwWin32ThreadId);
HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
ICorProfilerInfo3 * This,
/* [out] */ ThreadID *pThreadId);
HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken);
HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
ICorProfilerInfo3 * This,
/* [in] */ DWORD dwEvents);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionEnter *pFuncEnter,
/* [in] */ FunctionLeave *pFuncLeave,
/* [in] */ FunctionTailcall *pFuncTailcall);
HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionIDMapper *pFunc);
HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppImport,
/* [out] */ mdToken *pToken);
HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId);
HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ DWORD dwOpenFlags,
/* [in] */ REFIID riid,
/* [out] */ IUnknown **ppOut);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodId,
/* [out] */ LPCBYTE *ppMethodHeader,
/* [out] */ ULONG *pcbMethodSize);
HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [out] */ IMethodMalloc **ppMalloc);
HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ mdMethodDef methodid,
/* [in] */ LPCBYTE pbNewILMethodHeader);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
ICorProfilerInfo3 * This,
/* [in] */ AppDomainID appDomainId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ ProcessID *pProcessId);
HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
ICorProfilerInfo3 * This,
/* [in] */ AssemblyID assemblyId,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AppDomainID *pAppDomainId,
/* [out] */ ModuleID *pModuleId);
HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId);
HRESULT ( STDMETHODCALLTYPE *ForceGC )(
ICorProfilerInfo3 * This);
HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ BOOL fStartJit,
/* [in] */ ULONG cILMapEntries,
/* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
ICorProfilerInfo3 * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
ICorProfilerInfo3 * This,
/* [out] */ IUnknown **ppicd);
HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
ICorProfilerInfo3 * This,
/* [in] */ ThreadID threadId,
/* [out] */ ContextID *pContextId);
HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
ICorProfilerInfo3 * This,
/* [in] */ BOOL fThisThreadOnly,
/* [out] */ DWORD *pdwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
ICorProfilerInfo3 * This,
/* [in] */ DWORD dwProfilerContext);
HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ ULONG32 cMap,
/* [out] */ ULONG32 *pcMap,
/* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
ICorProfilerInfo3 * This,
/* [in] */ ThreadID thread,
/* [in] */ StackSnapshotCallback *callback,
/* [in] */ ULONG32 infoFlags,
/* [in] */ void *clientData,
/* [size_is][in] */ BYTE context[ ],
/* [in] */ ULONG32 contextSize);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionEnter2 *pFuncEnter,
/* [in] */ FunctionLeave2 *pFuncLeave,
/* [in] */ FunctionTailcall2 *pFuncTailcall);
HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID funcId,
/* [in] */ COR_PRF_FRAME_INFO frameInfo,
/* [out] */ ClassID *pClassId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdToken *pToken,
/* [in] */ ULONG32 cTypeArgs,
/* [out] */ ULONG32 *pcTypeArgs,
/* [out] */ ClassID typeArgs[ ]);
HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
ICorProfilerInfo3 * This,
/* [out] */ ULONG *pBufferLengthOffset,
/* [out] */ ULONG *pStringLengthOffset,
/* [out] */ ULONG *pBufferOffset);
HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classID,
/* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
/* [in] */ ULONG cFieldOffset,
/* [out] */ ULONG *pcFieldOffset,
/* [out] */ ULONG *pulClassSize);
HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [out] */ ModuleID *pModuleId,
/* [out] */ mdTypeDef *pTypeDefToken,
/* [out] */ ClassID *pParentClassId,
/* [in] */ ULONG32 cNumTypeArgs,
/* [out] */ ULONG32 *pcNumTypeArgs,
/* [out] */ ClassID typeArgs[ ]);
HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionID,
/* [in] */ ULONG32 cCodeInfos,
/* [out] */ ULONG32 *pcCodeInfos,
/* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleID,
/* [in] */ mdTypeDef typeDef,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ ClassID *pClassID);
HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleID,
/* [in] */ mdMethodDef funcDef,
/* [in] */ ClassID classId,
/* [in] */ ULONG32 cTypeArgs,
/* [size_is][in] */ ClassID typeArgs[ ],
/* [out] */ FunctionID *pFunctionID);
HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleID,
/* [out] */ ICorProfilerObjectEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
ICorProfilerInfo3 * This,
/* [in] */ ObjectID objectId,
/* [in] */ ULONG32 cDimensions,
/* [size_is][out] */ ULONG32 pDimensionSizes[ ],
/* [size_is][out] */ int pDimensionLowerBounds[ ],
/* [out] */ BYTE **ppData);
HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [out] */ ULONG32 *pBufferOffset);
HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
ICorProfilerInfo3 * This,
/* [in] */ ThreadID threadId,
/* [out] */ AppDomainID *pAppDomainId);
HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ AppDomainID appDomainId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ThreadID threadId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ ContextID contextId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
ICorProfilerInfo3 * This,
/* [in] */ ULONG cObjectRanges,
/* [out] */ ULONG *pcObjectRanges,
/* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
ICorProfilerInfo3 * This,
/* [in] */ ObjectID objectId,
/* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
ICorProfilerInfo3 * This,
/* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
ICorProfilerInfo3 * This,
/* [out] */ ICorProfilerFunctionEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
ICorProfilerInfo3 * This,
/* [in] */ DWORD dwExpectedCompletionMilliseconds);
HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionIDMapper2 *pFunc,
/* [in] */ void *clientData);
HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
ICorProfilerInfo3 * This,
/* [out] */ ULONG *pStringLengthOffset,
/* [out] */ ULONG *pBufferOffset);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionEnter3 *pFuncEnter3,
/* [in] */ FunctionLeave3 *pFuncLeave3,
/* [in] */ FunctionTailcall3 *pFuncTailcall3);
HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
/* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
/* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
/* [out][in] */ ULONG *pcbArgumentInfo,
/* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
/* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
ICorProfilerInfo3 * This,
/* [in] */ FunctionID functionId,
/* [in] */ COR_PRF_ELT_INFO eltInfo,
/* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
HRESULT ( STDMETHODCALLTYPE *EnumModules )(
ICorProfilerInfo3 * This,
/* [out] */ ICorProfilerModuleEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
ICorProfilerInfo3 * This,
/* [out] */ USHORT *pClrInstanceId,
/* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
/* [out] */ USHORT *pMajorVersion,
/* [out] */ USHORT *pMinorVersion,
/* [out] */ USHORT *pBuildNumber,
/* [out] */ USHORT *pQFEVersion,
/* [in] */ ULONG cchVersionString,
/* [out] */ ULONG *pcchVersionString,
/* [out] */
__out_ecount_part(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
ICorProfilerInfo3 * This,
/* [in] */ ClassID classId,
/* [in] */ mdFieldDef fieldToken,
/* [in] */ AppDomainID appDomainId,
/* [in] */ ThreadID threadId,
/* [out] */ void **ppAddress);
HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [in] */ ULONG32 cAppDomainIds,
/* [out] */ ULONG32 *pcAppDomainIds,
/* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
ICorProfilerInfo3 * This,
/* [in] */ ModuleID moduleId,
/* [out] */ LPCBYTE *ppBaseLoadAddress,
/* [in] */ ULONG cchName,
/* [out] */ ULONG *pcchName,
/* [out] */
__out_ecount_part(cchName, *pcchName) WCHAR szName[ ],
/* [out] */ AssemblyID *pAssemblyId,
/* [out] */ DWORD *pdwModuleFlags);
END_INTERFACE
} ICorProfilerInfo3Vtbl;
interface ICorProfilerInfo3
{
CONST_VTBL struct ICorProfilerInfo3Vtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerInfo3_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerInfo3_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \
( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \
( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \
( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \
( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \
( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \
( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \
( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \
( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \
( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
#define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
#define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
#define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
#define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
#define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
#define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \
( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
#define ICorProfilerInfo3_ForceGC(This) \
( (This)->lpVtbl -> ForceGC(This) )
#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \
( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \
( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \
( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
#define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
#define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
#define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
#define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
#define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
#define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
#define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
#define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
#define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
#define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \
( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \
( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
#define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
#define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \
( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \
( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \
( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \
( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
#define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
#define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
#define ICorProfilerInfo3_EnumModules(This,ppEnum) \
( (This)->lpVtbl -> EnumModules(This,ppEnum) )
#define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
#define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
#define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
#define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__
#define __ICorProfilerObjectEnum_INTERFACE_DEFINED__
/* interface ICorProfilerObjectEnum */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerObjectEnum;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("2C6269BD-2D13-4321-AE12-6686365FD6AF")
ICorProfilerObjectEnum : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCount(
/* [out] */ ULONG *pcelt) = 0;
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ObjectID objects[ ],
/* [out] */ ULONG *pceltFetched) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerObjectEnumVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerObjectEnum * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerObjectEnum * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerObjectEnum * This);
HRESULT ( STDMETHODCALLTYPE *Skip )(
ICorProfilerObjectEnum * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
ICorProfilerObjectEnum * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
ICorProfilerObjectEnum * This,
/* [out] */ ICorProfilerObjectEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
ICorProfilerObjectEnum * This,
/* [out] */ ULONG *pcelt);
HRESULT ( STDMETHODCALLTYPE *Next )(
ICorProfilerObjectEnum * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ObjectID objects[ ],
/* [out] */ ULONG *pceltFetched);
END_INTERFACE
} ICorProfilerObjectEnumVtbl;
interface ICorProfilerObjectEnum
{
CONST_VTBL struct ICorProfilerObjectEnumVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerObjectEnum_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerObjectEnum_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerObjectEnum_Skip(This,celt) \
( (This)->lpVtbl -> Skip(This,celt) )
#define ICorProfilerObjectEnum_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define ICorProfilerObjectEnum_Clone(This,ppEnum) \
( (This)->lpVtbl -> Clone(This,ppEnum) )
#define ICorProfilerObjectEnum_GetCount(This,pcelt) \
( (This)->lpVtbl -> GetCount(This,pcelt) )
#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
#define __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
/* interface ICorProfilerFunctionEnum */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerFunctionEnum;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("FF71301A-B994-429D-A10B-B345A65280EF")
ICorProfilerFunctionEnum : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCount(
/* [out] */ ULONG *pcelt) = 0;
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
/* [out] */ ULONG *pceltFetched) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerFunctionEnumVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerFunctionEnum * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerFunctionEnum * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerFunctionEnum * This);
HRESULT ( STDMETHODCALLTYPE *Skip )(
ICorProfilerFunctionEnum * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
ICorProfilerFunctionEnum * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
ICorProfilerFunctionEnum * This,
/* [out] */ ICorProfilerFunctionEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
ICorProfilerFunctionEnum * This,
/* [out] */ ULONG *pcelt);
HRESULT ( STDMETHODCALLTYPE *Next )(
ICorProfilerFunctionEnum * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
/* [out] */ ULONG *pceltFetched);
END_INTERFACE
} ICorProfilerFunctionEnumVtbl;
interface ICorProfilerFunctionEnum
{
CONST_VTBL struct ICorProfilerFunctionEnumVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerFunctionEnum_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerFunctionEnum_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerFunctionEnum_Skip(This,celt) \
( (This)->lpVtbl -> Skip(This,celt) )
#define ICorProfilerFunctionEnum_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \
( (This)->lpVtbl -> Clone(This,ppEnum) )
#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \
( (This)->lpVtbl -> GetCount(This,pcelt) )
#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */
#ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__
#define __ICorProfilerModuleEnum_INTERFACE_DEFINED__
/* interface ICorProfilerModuleEnum */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_ICorProfilerModuleEnum;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("b0266d75-2081-4493-af7f-028ba34db891")
ICorProfilerModuleEnum : public IUnknown
{
public:
virtual HRESULT STDMETHODCALLTYPE Skip(
/* [in] */ ULONG celt) = 0;
virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
virtual HRESULT STDMETHODCALLTYPE Clone(
/* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
virtual HRESULT STDMETHODCALLTYPE GetCount(
/* [out] */ ULONG *pcelt) = 0;
virtual HRESULT STDMETHODCALLTYPE Next(
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ModuleID ids[ ],
/* [out] */ ULONG *pceltFetched) = 0;
};
#else /* C style interface */
typedef struct ICorProfilerModuleEnumVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
ICorProfilerModuleEnum * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
ICorProfilerModuleEnum * This);
ULONG ( STDMETHODCALLTYPE *Release )(
ICorProfilerModuleEnum * This);
HRESULT ( STDMETHODCALLTYPE *Skip )(
ICorProfilerModuleEnum * This,
/* [in] */ ULONG celt);
HRESULT ( STDMETHODCALLTYPE *Reset )(
ICorProfilerModuleEnum * This);
HRESULT ( STDMETHODCALLTYPE *Clone )(
ICorProfilerModuleEnum * This,
/* [out] */ ICorProfilerModuleEnum **ppEnum);
HRESULT ( STDMETHODCALLTYPE *GetCount )(
ICorProfilerModuleEnum * This,
/* [out] */ ULONG *pcelt);
HRESULT ( STDMETHODCALLTYPE *Next )(
ICorProfilerModuleEnum * This,
/* [in] */ ULONG celt,
/* [length_is][size_is][out] */ ModuleID ids[ ],
/* [out] */ ULONG *pceltFetched);
END_INTERFACE
} ICorProfilerModuleEnumVtbl;
interface ICorProfilerModuleEnum
{
CONST_VTBL struct ICorProfilerModuleEnumVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define ICorProfilerModuleEnum_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define ICorProfilerModuleEnum_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define ICorProfilerModuleEnum_Skip(This,celt) \
( (This)->lpVtbl -> Skip(This,celt) )
#define ICorProfilerModuleEnum_Reset(This) \
( (This)->lpVtbl -> Reset(This) )
#define ICorProfilerModuleEnum_Clone(This,ppEnum) \
( (This)->lpVtbl -> Clone(This,ppEnum) )
#define ICorProfilerModuleEnum_GetCount(This,pcelt) \
( (This)->lpVtbl -> GetCount(This,pcelt) )
#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \
( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */
#ifndef __IMethodMalloc_INTERFACE_DEFINED__
#define __IMethodMalloc_INTERFACE_DEFINED__
/* interface IMethodMalloc */
/* [local][unique][uuid][object] */
EXTERN_C const IID IID_IMethodMalloc;
#if defined(__cplusplus) && !defined(CINTERFACE)
MIDL_INTERFACE("A0EFB28B-6EE2-4d7b-B983-A75EF7BEEDB8")
IMethodMalloc : public IUnknown
{
public:
virtual PVOID STDMETHODCALLTYPE Alloc(
/* [in] */ ULONG cb) = 0;
};
#else /* C style interface */
typedef struct IMethodMallocVtbl
{
BEGIN_INTERFACE
HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
IMethodMalloc * This,
/* [in] */ REFIID riid,
/* [iid_is][out] */
__RPC__deref_out void **ppvObject);
ULONG ( STDMETHODCALLTYPE *AddRef )(
IMethodMalloc * This);
ULONG ( STDMETHODCALLTYPE *Release )(
IMethodMalloc * This);
PVOID ( STDMETHODCALLTYPE *Alloc )(
IMethodMalloc * This,
/* [in] */ ULONG cb);
END_INTERFACE
} IMethodMallocVtbl;
interface IMethodMalloc
{
CONST_VTBL struct IMethodMallocVtbl *lpVtbl;
};
#ifdef COBJMACROS
#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \
( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
#define IMethodMalloc_AddRef(This) \
( (This)->lpVtbl -> AddRef(This) )
#define IMethodMalloc_Release(This) \
( (This)->lpVtbl -> Release(This) )
#define IMethodMalloc_Alloc(This,cb) \
( (This)->lpVtbl -> Alloc(This,cb) )
#endif /* COBJMACROS */
#endif /* C style interface */
#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */
/* Additional Prototypes for ALL interfaces */
/* end of Additional Prototypes */
#ifdef __cplusplus
}
#endif
#endif