diff options
32 files changed, 2089 insertions, 6854 deletions
diff --git a/clrdefinitions.cmake b/clrdefinitions.cmake index 56088ddf3f..3c4c5e57e0 100644 --- a/clrdefinitions.cmake +++ b/clrdefinitions.cmake @@ -176,9 +176,9 @@ if(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD) add_definitions(-DFEATURE_PERFMAP) endif(CLR_CMAKE_PLATFORM_LINUX OR CLR_CMAKE_PLATFORM_FREEBSD) -if(NOT CLR_CMAKE_PLATFORM_UNIX) +if(WIN32 OR CLR_CMAKE_PLATFORM_LINUX) add_definitions(-DFEATURE_PROFAPI_ATTACH_DETACH) -endif(NOT CLR_CMAKE_PLATFORM_UNIX) +endif(WIN32 OR CLR_CMAKE_PLATFORM_LINUX) add_definitions(-DFEATURE_READYTORUN) set(FEATURE_READYTORUN 1) diff --git a/crossgen.cmake b/crossgen.cmake index 1bf84c8a36..27f4b7c922 100644 --- a/crossgen.cmake +++ b/crossgen.cmake @@ -17,6 +17,7 @@ remove_definitions( -DFEATURE_REJIT -DFEATURE_TIERED_COMPILATION -DFEATURE_VERSIONING_LOG + -DFEATURE_PROFAPI_ATTACH_DETACH ) if(FEATURE_READYTORUN) @@ -4,5 +4,9 @@ add_definitions(-DDACCESS_COMPILE) if(WIN32) add_definitions(-MT) endif(WIN32) + remove_definitions(-DPROFILING_SUPPORTED) add_definitions(-DPROFILING_SUPPORTED_DATA) + +remove_definitions(-DFEATURE_PROFAPI_ATTACH_DETACH) +add_definitions(-DDATA_PROFAPI_ATTACH_DETACH) diff --git a/src/dlls/mscoree/mscoree.cpp b/src/dlls/mscoree/mscoree.cpp index d1c8a7620e..0d587e2fd8 100644 --- a/src/dlls/mscoree/mscoree.cpp +++ b/src/dlls/mscoree/mscoree.cpp @@ -24,10 +24,6 @@ #include "clrprivhosting.h" -#ifdef FEATURE_PROFAPI_ATTACH_DETACH -#include "../../vm/profattach.h" -#endif // FEATURE_PROFAPI_ATTACH_DETACH - #include <dbgenginemetrics.h> // Locals. diff --git a/src/dlls/mscoree/mscorwks_ntdef.src b/src/dlls/mscoree/mscorwks_ntdef.src index c0670c2db3..bdbce4f4c6 100644 --- a/src/dlls/mscoree/mscorwks_ntdef.src +++ b/src/dlls/mscoree/mscorwks_ntdef.src @@ -31,5 +31,3 @@ EXPORTS GetMetaDataInternalInterface GetMetaDataInternalInterfaceFromPublic GetMetaDataPublicInterfaceFromInternal - - CreateCLRProfiling diff --git a/src/inc/corprof.idl b/src/inc/corprof.idl index d3a8072210..f5ad6b5120 100644 --- a/src/inc/corprof.idl +++ b/src/inc/corprof.idl @@ -4050,25 +4050,3 @@ interface ICorProfilerAssemblyReferenceProvider : IUnknown // assembly specified in the wszAssemblyPath argument of the GetAssemblyReferences callback. HRESULT AddAssemblyReference(const COR_PRF_ASSEMBLY_REFERENCE_INFO * pAssemblyRefInfo); }; - - -/*************************************************************************************** -** ICLRProfiling ** -** Activated using mscoree!CLRCreateInstance. Export AttachProfiler API to profilers ** -***************************************************************************************/ -[ - uuid(B349ABE3-B56F-4689-BFCD-76BF39D888EA), - version(1.0), - helpstring("CoreCLR profiling interface for profiler attach"), - local -] -interface ICLRProfiling : IUnknown -{ - HRESULT AttachProfiler( - [in] DWORD dwProfileeProcessID, - [in] DWORD dwMillisecondsMax, // optional - [in] const CLSID * pClsidProfiler, - [in] LPCWSTR wszProfilerPath, // optional - [in, size_is(cbClientData)] void * pvClientData, // optional - [in] UINT cbClientData); // optional -} diff --git a/src/inc/metahost.idl b/src/inc/metahost.idl index b7c2e0ba67..1ed19b5ba9 100644 --- a/src/inc/metahost.idl +++ b/src/inc/metahost.idl @@ -488,7 +488,6 @@ interface ICLRRuntimeInfo : IUnknown ** CLSID_TypeNameFactory IID_ITypeNameFactory ** ** CLSID_CLRStrongName IID_ICLRStrongName ** ** CLSID_CLRDebuggingLegacy IID_ICorDebug ** - ** CLSID_CLRProfiling IID_ICLRProfiling ** ** ** ** Supersedes: CorBindTo* and others ** **********************************************************************************/ diff --git a/src/inc/profilepriv.h b/src/inc/profilepriv.h index ae7b225f8c..647457e932 100644 --- a/src/inc/profilepriv.h +++ b/src/inc/profilepriv.h @@ -115,6 +115,8 @@ struct ProfControlBlock // Whether we've turned off concurrent GC during attach BOOL fConcurrentGCDisabledForAttach; + + Volatile<BOOL> fProfControlBlockInitialized; void Init(); void ResetPerSessionStatus(); diff --git a/src/inc/profilepriv.inl b/src/inc/profilepriv.inl index 912624180f..5a04bd3302 100644 --- a/src/inc/profilepriv.inl +++ b/src/inc/profilepriv.inl @@ -70,6 +70,8 @@ inline void ProfControlBlock::Init() fConcurrentGCDisabledForAttach = FALSE; ResetPerSessionStatus(); + + fProfControlBlockInitialized = TRUE; } // Reset those variables that is only for the current attach session diff --git a/src/pal/prebuilt/inc/corprof.h b/src/pal/prebuilt/inc/corprof.h index 5eab6fa4f0..be4b8102eb 100644 --- a/src/pal/prebuilt/inc/corprof.h +++ b/src/pal/prebuilt/inc/corprof.h @@ -6,7 +6,7 @@ /* File created by MIDL compiler version 8.01.0622 */ /* at Mon Jan 18 19:14:07 2038 */ -/* Compiler settings for D:/coreclr/src/inc/corprof.idl: +/* Compiler settings for C:/git/coreclr/src/inc/corprof.idl: Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 protocol : dce , ms_ext, c_ext, robust error checks: allocation ref bounds_check enum stub_data @@ -49,196 +49,189 @@ #define __ICorProfilerCallback_FWD_DEFINED__ typedef interface ICorProfilerCallback ICorProfilerCallback; -#endif /* __ICorProfilerCallback_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback2_FWD_DEFINED__ #define __ICorProfilerCallback2_FWD_DEFINED__ typedef interface ICorProfilerCallback2 ICorProfilerCallback2; -#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback3_FWD_DEFINED__ #define __ICorProfilerCallback3_FWD_DEFINED__ typedef interface ICorProfilerCallback3 ICorProfilerCallback3; -#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback4_FWD_DEFINED__ #define __ICorProfilerCallback4_FWD_DEFINED__ typedef interface ICorProfilerCallback4 ICorProfilerCallback4; -#endif /* __ICorProfilerCallback4_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback4_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback5_FWD_DEFINED__ #define __ICorProfilerCallback5_FWD_DEFINED__ typedef interface ICorProfilerCallback5 ICorProfilerCallback5; -#endif /* __ICorProfilerCallback5_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback5_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback6_FWD_DEFINED__ #define __ICorProfilerCallback6_FWD_DEFINED__ typedef interface ICorProfilerCallback6 ICorProfilerCallback6; -#endif /* __ICorProfilerCallback6_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback6_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback7_FWD_DEFINED__ #define __ICorProfilerCallback7_FWD_DEFINED__ typedef interface ICorProfilerCallback7 ICorProfilerCallback7; -#endif /* __ICorProfilerCallback7_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback7_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback8_FWD_DEFINED__ #define __ICorProfilerCallback8_FWD_DEFINED__ typedef interface ICorProfilerCallback8 ICorProfilerCallback8; -#endif /* __ICorProfilerCallback8_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback8_FWD_DEFINED__ */ #ifndef __ICorProfilerCallback9_FWD_DEFINED__ #define __ICorProfilerCallback9_FWD_DEFINED__ typedef interface ICorProfilerCallback9 ICorProfilerCallback9; -#endif /* __ICorProfilerCallback9_FWD_DEFINED__ */ +#endif /* __ICorProfilerCallback9_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo_FWD_DEFINED__ #define __ICorProfilerInfo_FWD_DEFINED__ typedef interface ICorProfilerInfo ICorProfilerInfo; -#endif /* __ICorProfilerInfo_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo2_FWD_DEFINED__ #define __ICorProfilerInfo2_FWD_DEFINED__ typedef interface ICorProfilerInfo2 ICorProfilerInfo2; -#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo3_FWD_DEFINED__ #define __ICorProfilerInfo3_FWD_DEFINED__ typedef interface ICorProfilerInfo3 ICorProfilerInfo3; -#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */ #ifndef __ICorProfilerObjectEnum_FWD_DEFINED__ #define __ICorProfilerObjectEnum_FWD_DEFINED__ typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum; -#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__ #define __ICorProfilerFunctionEnum_FWD_DEFINED__ typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum; -#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerModuleEnum_FWD_DEFINED__ #define __ICorProfilerModuleEnum_FWD_DEFINED__ typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum; -#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */ #ifndef __IMethodMalloc_FWD_DEFINED__ #define __IMethodMalloc_FWD_DEFINED__ typedef interface IMethodMalloc IMethodMalloc; -#endif /* __IMethodMalloc_FWD_DEFINED__ */ +#endif /* __IMethodMalloc_FWD_DEFINED__ */ #ifndef __ICorProfilerFunctionControl_FWD_DEFINED__ #define __ICorProfilerFunctionControl_FWD_DEFINED__ typedef interface ICorProfilerFunctionControl ICorProfilerFunctionControl; -#endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */ +#endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo4_FWD_DEFINED__ #define __ICorProfilerInfo4_FWD_DEFINED__ typedef interface ICorProfilerInfo4 ICorProfilerInfo4; -#endif /* __ICorProfilerInfo4_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo4_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo5_FWD_DEFINED__ #define __ICorProfilerInfo5_FWD_DEFINED__ typedef interface ICorProfilerInfo5 ICorProfilerInfo5; -#endif /* __ICorProfilerInfo5_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo5_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo6_FWD_DEFINED__ #define __ICorProfilerInfo6_FWD_DEFINED__ typedef interface ICorProfilerInfo6 ICorProfilerInfo6; -#endif /* __ICorProfilerInfo6_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo6_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo7_FWD_DEFINED__ #define __ICorProfilerInfo7_FWD_DEFINED__ typedef interface ICorProfilerInfo7 ICorProfilerInfo7; -#endif /* __ICorProfilerInfo7_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo7_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo8_FWD_DEFINED__ #define __ICorProfilerInfo8_FWD_DEFINED__ typedef interface ICorProfilerInfo8 ICorProfilerInfo8; -#endif /* __ICorProfilerInfo8_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo8_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo9_FWD_DEFINED__ #define __ICorProfilerInfo9_FWD_DEFINED__ typedef interface ICorProfilerInfo9 ICorProfilerInfo9; -#endif /* __ICorProfilerInfo9_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo9_FWD_DEFINED__ */ #ifndef __ICorProfilerInfo10_FWD_DEFINED__ #define __ICorProfilerInfo10_FWD_DEFINED__ typedef interface ICorProfilerInfo10 ICorProfilerInfo10; -#endif /* __ICorProfilerInfo10_FWD_DEFINED__ */ +#endif /* __ICorProfilerInfo10_FWD_DEFINED__ */ #ifndef __ICorProfilerMethodEnum_FWD_DEFINED__ #define __ICorProfilerMethodEnum_FWD_DEFINED__ typedef interface ICorProfilerMethodEnum ICorProfilerMethodEnum; -#endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerThreadEnum_FWD_DEFINED__ #define __ICorProfilerThreadEnum_FWD_DEFINED__ typedef interface ICorProfilerThreadEnum ICorProfilerThreadEnum; -#endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */ +#endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */ #ifndef __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ #define __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ typedef interface ICorProfilerAssemblyReferenceProvider ICorProfilerAssemblyReferenceProvider; -#endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */ - - -#ifndef __ICLRProfiling_FWD_DEFINED__ -#define __ICLRProfiling_FWD_DEFINED__ -typedef interface ICLRProfiling ICLRProfiling; - -#endif /* __ICLRProfiling_FWD_DEFINED__ */ +#endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */ /* header files for imported files */ @@ -273,7 +266,7 @@ typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_corprof_ DWORD dwOSPlatformId; DWORD dwOSMajorVersion; DWORD dwOSMinorVersion; - } OSINFO; + } OSINFO; typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0002 { @@ -287,7 +280,7 @@ typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_000 ULONG ulProcessor; OSINFO *rOS; ULONG ulOS; - } ASSEMBLYMETADATA; + } ASSEMBLYMETADATA; #endif typedef const BYTE *LPCBYTE; @@ -307,7 +300,7 @@ typedef struct _COR_IL_MAP ULONG32 oldOffset; ULONG32 newOffset; BOOL fAccurate; - } COR_IL_MAP; + } COR_IL_MAP; #endif //_COR_IL_MAP #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_ @@ -315,17 +308,17 @@ typedef struct _COR_IL_MAP typedef enum CorDebugIlToNativeMappingTypes { - NO_MAPPING = -1, - PROLOG = -2, - EPILOG = -3 - } 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; + } COR_DEBUG_IL_TO_NATIVE_MAP; #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_ #ifndef _COR_FIELD_OFFSET_ @@ -334,7 +327,7 @@ typedef struct _COR_FIELD_OFFSET { mdFieldDef ridOfField; ULONG ulOffset; - } COR_FIELD_OFFSET; + } COR_FIELD_OFFSET; #endif // _COR_FIELD_OFFSET_ typedef UINT_PTR ProcessID; @@ -365,7 +358,7 @@ typedef /* [public][public][public][public][public][public][public][public][publ { FunctionID functionID; UINT_PTR clientID; - } FunctionIDOrClientID; + } FunctionIDOrClientID; typedef UINT_PTR __stdcall __stdcall FunctionIDMapper( FunctionID funcId, @@ -379,10 +372,10 @@ typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2( 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; + 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; @@ -390,36 +383,36 @@ typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE { UINT_PTR startAddress; ULONG length; - } COR_PRF_FUNCTION_ARGUMENT_RANGE; + } 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; + } COR_PRF_FUNCTION_ARGUMENT_INFO; typedef struct _COR_PRF_CODE_INFO { UINT_PTR startAddress; SIZE_T size; - } COR_PRF_CODE_INFO; + } COR_PRF_CODE_INFO; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0004 { - 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; + 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; ReJITID reJitId; - } COR_PRF_FUNCTION; + } COR_PRF_FUNCTION; typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO { @@ -430,13 +423,13 @@ typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO void *pbHashValue; ULONG cbHashValue; DWORD dwAssemblyRefFlags; - } COR_PRF_ASSEMBLY_REFERENCE_INFO; + } COR_PRF_ASSEMBLY_REFERENCE_INFO; typedef struct _COR_PRF_METHOD { ModuleID moduleId; mdMethodDef methodId; - } COR_PRF_METHOD; + } COR_PRF_METHOD; typedef void FunctionEnter( FunctionID funcID); @@ -501,110 +494,110 @@ typedef BOOL ObjectReferenceCallback( typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0005 { - 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_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_MONITOR_CLR_EXCEPTIONS = 0x1000000, - COR_PRF_MONITOR_ALL = 0x107ffff, - 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_DISABLE_ALL_NGEN_IMAGES = 0x80000000, - COR_PRF_ALL = 0x8fffffff, - 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_EXCEPTIONS ) | COR_PRF_MONITOR_JIT_COMPILATION ) | COR_PRF_ENABLE_REJIT ) , - 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_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_DISABLE_ALL_NGEN_IMAGES ) - } COR_PRF_MONITOR; + 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_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_MONITOR_CLR_EXCEPTIONS = 0x1000000, + COR_PRF_MONITOR_ALL = 0x107ffff, + 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_DISABLE_ALL_NGEN_IMAGES = 0x80000000, + COR_PRF_ALL = 0x8fffffff, + 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_EXCEPTIONS ) | COR_PRF_MONITOR_JIT_COMPILATION ) | COR_PRF_ENABLE_REJIT ) , + 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_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_DISABLE_ALL_NGEN_IMAGES ) + } COR_PRF_MONITOR; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0006 { - COR_PRF_HIGH_MONITOR_NONE = 0, - COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1, - COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2, - COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4, - COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8, - COR_PRF_HIGH_BASIC_GC = 0x10, - COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS = 0x20, - COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0, - COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED = 0x40, - COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( ( ( ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) | COR_PRF_HIGH_BASIC_GC ) | COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS ) | COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED ) , - COR_PRF_HIGH_MONITOR_IMMUTABLE = COR_PRF_HIGH_DISABLE_TIERED_COMPILATION - } COR_PRF_HIGH_MONITOR; + COR_PRF_HIGH_MONITOR_NONE = 0, + COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1, + COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2, + COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4, + COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8, + COR_PRF_HIGH_BASIC_GC = 0x10, + COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS = 0x20, + COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0, + COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED = 0x40, + COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( ( ( ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) | COR_PRF_HIGH_BASIC_GC ) | COR_PRF_HIGH_MONITOR_GC_MOVED_OBJECTS ) | COR_PRF_HIGH_MONITOR_LARGEOBJECT_ALLOCATED ) , + COR_PRF_HIGH_MONITOR_IMMUTABLE = COR_PRF_HIGH_DISABLE_TIERED_COMPILATION + } COR_PRF_HIGH_MONITOR; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0007 { - PROFILER_PARENT_UNKNOWN = 0xfffffffd, - PROFILER_GLOBAL_CLASS = 0xfffffffe, - PROFILER_GLOBAL_MODULE = 0xffffffff - } COR_PRF_MISC; + 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_0008 { - COR_PRF_CACHED_FUNCTION_FOUND = 0, - COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 ) - } COR_PRF_JIT_CACHE; + 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_0009 { - COR_PRF_TRANSITION_CALL = 0, - COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 ) - } COR_PRF_TRANSITION_REASON; + 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_0010 { - 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_FOR_REJIT = 8 - } COR_PRF_SUSPEND_REASON; + 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_FOR_REJIT = 8 + } COR_PRF_SUSPEND_REASON; typedef /* [public][public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0011 { - COR_PRF_DESKTOP_CLR = 0x1, - COR_PRF_CORE_CLR = 0x2 - } COR_PRF_RUNTIME_TYPE; + COR_PRF_DESKTOP_CLR = 0x1, + COR_PRF_CORE_CLR = 0x2 + } COR_PRF_RUNTIME_TYPE; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0000_0012 { - COR_PRF_REJIT_BLOCK_INLINING = 0x1, - COR_PRF_REJIT_INLINING_CALLBACKS = 0x2 - } COR_PRF_REJIT_FLAGS; + COR_PRF_REJIT_BLOCK_INLINING = 0x1, + COR_PRF_REJIT_INLINING_CALLBACKS = 0x2 + } COR_PRF_REJIT_FLAGS; @@ -875,7 +868,7 @@ EXTERN_C const IID IID_ICorProfilerCallback; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallbackVtbl { @@ -1205,232 +1198,232 @@ EXTERN_C const IID IID_ICorProfilerCallback; #ifdef COBJMACROS -#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback_AddRef(This) \ +#define ICorProfilerCallback_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback_Release(This) \ +#define ICorProfilerCallback_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback_Shutdown(This) \ +#define ICorProfilerCallback_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_corprof_0000_0001 */ @@ -1439,35 +1432,35 @@ EXTERN_C const IID IID_ICorProfilerCallback; 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; + 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; + 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; + 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; + 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 { @@ -1475,16 +1468,16 @@ typedef struct COR_PRF_GC_GENERATION_RANGE ObjectID rangeStart; UINT_PTR rangeLength; UINT_PTR rangeLengthReserved; - } COR_PRF_GC_GENERATION_RANGE; + } 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; + 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 { @@ -1492,26 +1485,26 @@ typedef struct COR_PRF_EX_CLAUSE_INFO UINT_PTR programCounter; UINT_PTR framePointer; UINT_PTR shadowStackPointer; - } COR_PRF_EX_CLAUSE_INFO; + } 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; + 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_WINDOWS_RUNTIME = 0x40 - } COR_PRF_MODULE_FLAGS; + 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_WINDOWS_RUNTIME = 0x40 + } COR_PRF_MODULE_FLAGS; @@ -1572,7 +1565,7 @@ EXTERN_C const IID IID_ICorProfilerCallback2; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback2Vtbl { @@ -1946,257 +1939,257 @@ EXTERN_C const IID IID_ICorProfilerCallback2; #ifdef COBJMACROS -#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback2_AddRef(This) \ +#define ICorProfilerCallback2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback2_Release(This) \ +#define ICorProfilerCallback2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback2_Shutdown(This) \ +#define ICorProfilerCallback2_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback2_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback2_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback2_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback2_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback2_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback2_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback2_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback2_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__ @@ -2226,7 +2219,7 @@ EXTERN_C const IID IID_ICorProfilerCallback3; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback3Vtbl { @@ -2612,267 +2605,267 @@ EXTERN_C const IID IID_ICorProfilerCallback3; #ifdef COBJMACROS -#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback3_AddRef(This) \ +#define ICorProfilerCallback3_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback3_Release(This) \ +#define ICorProfilerCallback3_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback3_Shutdown(This) \ +#define ICorProfilerCallback3_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback3_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback3_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback3_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback3_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback3_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback3_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback3_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback3_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback3_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback3_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback4_INTERFACE_DEFINED__ @@ -2926,7 +2919,7 @@ EXTERN_C const IID IID_ICorProfilerCallback4; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback4Vtbl { @@ -3351,286 +3344,286 @@ EXTERN_C const IID IID_ICorProfilerCallback4; #ifdef COBJMACROS -#define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback4_AddRef(This) \ +#define ICorProfilerCallback4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback4_Release(This) \ +#define ICorProfilerCallback4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback4_Shutdown(This) \ +#define ICorProfilerCallback4_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback4_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback4_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback4_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback4_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback4_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback4_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback4_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback4_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback4_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback4_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback4_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback4_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback4_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback4_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback4_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback4_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback4_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback4_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback4_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback5_INTERFACE_DEFINED__ @@ -3657,7 +3650,7 @@ EXTERN_C const IID IID_ICorProfilerCallback5; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback5Vtbl { @@ -4089,290 +4082,290 @@ EXTERN_C const IID IID_ICorProfilerCallback5; #ifdef COBJMACROS -#define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback5_AddRef(This) \ +#define ICorProfilerCallback5_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback5_Release(This) \ +#define ICorProfilerCallback5_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback5_Shutdown(This) \ +#define ICorProfilerCallback5_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback5_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback5_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback5_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback5_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback5_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback5_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback5_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback5_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback5_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback5_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback5_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback5_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback5_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback5_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback5_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback5_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback5_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback5_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback5_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback6_INTERFACE_DEFINED__ @@ -4397,7 +4390,7 @@ EXTERN_C const IID IID_ICorProfilerCallback6; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback6Vtbl { @@ -4834,294 +4827,294 @@ EXTERN_C const IID IID_ICorProfilerCallback6; #ifdef COBJMACROS -#define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback6_AddRef(This) \ +#define ICorProfilerCallback6_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback6_Release(This) \ +#define ICorProfilerCallback6_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback6_Shutdown(This) \ +#define ICorProfilerCallback6_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback6_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback6_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback6_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback6_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback6_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback6_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback6_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback6_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback6_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback6_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback6_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback6_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback6_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback6_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback6_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback6_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback6_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback6_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback6_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback7_INTERFACE_DEFINED__ @@ -5145,7 +5138,7 @@ EXTERN_C const IID IID_ICorProfilerCallback7; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback7Vtbl { @@ -5586,298 +5579,298 @@ EXTERN_C const IID IID_ICorProfilerCallback7; #ifdef COBJMACROS -#define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback7_AddRef(This) \ +#define ICorProfilerCallback7_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback7_Release(This) \ +#define ICorProfilerCallback7_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback7_Shutdown(This) \ +#define ICorProfilerCallback7_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback7_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback7_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback7_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback7_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback7_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback7_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback7_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback7_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback7_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback7_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback7_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback7_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback7_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback7_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback7_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback7_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback7_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback7_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback7_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback8_INTERFACE_DEFINED__ @@ -5909,7 +5902,7 @@ EXTERN_C const IID IID_ICorProfilerCallback8; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback8Vtbl { @@ -6363,305 +6356,305 @@ EXTERN_C const IID IID_ICorProfilerCallback8; #ifdef COBJMACROS -#define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback8_AddRef(This) \ +#define ICorProfilerCallback8_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback8_Release(This) \ +#define ICorProfilerCallback8_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback8_Shutdown(This) \ +#define ICorProfilerCallback8_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback8_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback8_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback8_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback8_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback8_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback8_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback8_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback8_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback8_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback8_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback8_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback8_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback8_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback8_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback8_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback8_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback8_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback8_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback8_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) -#define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ +#define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) -#define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerCallback9_INTERFACE_DEFINED__ @@ -6685,7 +6678,7 @@ EXTERN_C const IID IID_ICorProfilerCallback9; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerCallback9Vtbl { @@ -7143,309 +7136,309 @@ EXTERN_C const IID IID_ICorProfilerCallback9; #ifdef COBJMACROS -#define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerCallback9_AddRef(This) \ +#define ICorProfilerCallback9_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerCallback9_Release(This) \ +#define ICorProfilerCallback9_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \ +#define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \ ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) -#define ICorProfilerCallback9_Shutdown(This) \ +#define ICorProfilerCallback9_Shutdown(This) \ ( (This)->lpVtbl -> Shutdown(This) ) -#define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \ +#define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) -#define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \ +#define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \ ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) -#define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ +#define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \ ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) -#define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \ +#define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) -#define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \ +#define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \ ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) -#define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ +#define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \ ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) -#define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \ +#define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) -#define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \ +#define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \ ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) -#define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \ +#define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \ ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) -#define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ +#define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \ ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) -#define ICorProfilerCallback9_ClassLoadStarted(This,classId) \ +#define ICorProfilerCallback9_ClassLoadStarted(This,classId) \ ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) -#define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \ +#define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \ ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) -#define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \ +#define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \ ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) -#define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \ +#define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \ ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) -#define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ +#define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) -#define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ +#define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \ ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) -#define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \ +#define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \ ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) -#define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \ +#define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \ ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) -#define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \ +#define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \ ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) -#define ICorProfilerCallback9_ThreadCreated(This,threadId) \ +#define ICorProfilerCallback9_ThreadCreated(This,threadId) \ ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) -#define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \ +#define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \ ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) -#define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ +#define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \ ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) -#define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \ +#define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) -#define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \ +#define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \ ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) -#define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \ +#define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \ ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) -#define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \ +#define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \ ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) -#define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \ +#define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \ ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) -#define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \ +#define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \ ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) -#define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \ +#define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \ ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) -#define ICorProfilerCallback9_RuntimeSuspendFinished(This) \ +#define ICorProfilerCallback9_RuntimeSuspendFinished(This) \ ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) -#define ICorProfilerCallback9_RuntimeSuspendAborted(This) \ +#define ICorProfilerCallback9_RuntimeSuspendAborted(This) \ ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) -#define ICorProfilerCallback9_RuntimeResumeStarted(This) \ +#define ICorProfilerCallback9_RuntimeResumeStarted(This) \ ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) -#define ICorProfilerCallback9_RuntimeResumeFinished(This) \ +#define ICorProfilerCallback9_RuntimeResumeFinished(This) \ ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) -#define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \ +#define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) -#define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \ +#define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \ ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) -#define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \ +#define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \ ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) -#define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ +#define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \ ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) -#define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ +#define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \ ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) -#define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \ +#define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \ ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) -#define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \ +#define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \ ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) -#define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \ +#define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) -#define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \ +#define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \ ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) -#define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \ +#define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \ ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) -#define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \ +#define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) -#define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \ +#define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \ ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) -#define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \ +#define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) -#define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \ +#define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) -#define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \ +#define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \ ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) -#define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \ +#define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \ ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) -#define ICorProfilerCallback9_ExceptionCatcherLeave(This) \ +#define ICorProfilerCallback9_ExceptionCatcherLeave(This) \ ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) -#define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ +#define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \ ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) -#define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ +#define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \ ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) -#define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \ +#define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) -#define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \ +#define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \ ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) -#define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \ +#define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \ ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) -#define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ +#define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \ ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) -#define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_GarbageCollectionFinished(This) \ +#define ICorProfilerCallback9_GarbageCollectionFinished(This) \ ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) -#define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ +#define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \ ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) -#define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ +#define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \ ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) -#define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \ +#define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \ ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) -#define ICorProfilerCallback9_HandleDestroyed(This,handleId) \ +#define ICorProfilerCallback9_HandleDestroyed(This,handleId) \ ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) -#define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ +#define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \ ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) -#define ICorProfilerCallback9_ProfilerAttachComplete(This) \ +#define ICorProfilerCallback9_ProfilerAttachComplete(This) \ ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) -#define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \ +#define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \ ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) -#define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ +#define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) -#define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ +#define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \ ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) -#define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ +#define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \ ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) -#define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ +#define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \ ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) -#define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ +#define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \ ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) -#define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ +#define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \ ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) -#define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \ +#define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \ ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) -#define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ +#define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) -#define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ +#define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \ ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) -#define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \ +#define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \ ( (This)->lpVtbl -> DynamicMethodUnloaded(This,functionId) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */ /* interface __MIDL_itf_corprof_0000_0009 */ @@ -7454,9 +7447,9 @@ EXTERN_C const IID IID_ICorProfilerCallback9; typedef /* [public] */ enum __MIDL___MIDL_itf_corprof_0000_0009_0001 { - COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, - COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 - } COR_PRF_CODEGEN_FLAGS; + COR_PRF_CODEGEN_DISABLE_INLINING = 0x1, + COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2 + } COR_PRF_CODEGEN_FLAGS; @@ -7637,7 +7630,7 @@ EXTERN_C const IID IID_ICorProfilerInfo; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfoVtbl { @@ -7857,124 +7850,124 @@ EXTERN_C const IID IID_ICorProfilerInfo; #ifdef COBJMACROS -#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo_AddRef(This) \ +#define ICorProfilerInfo_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo_Release(This) \ +#define ICorProfilerInfo_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#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) \ +#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) \ +#define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#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) \ +#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) \ +#define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo_ForceGC(This) \ +#define ICorProfilerInfo_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__ @@ -8119,7 +8112,7 @@ EXTERN_C const IID IID_ICorProfilerInfo2; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo2Vtbl { @@ -8484,188 +8477,188 @@ EXTERN_C const IID IID_ICorProfilerInfo2; #ifdef COBJMACROS -#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo2_AddRef(This) \ +#define ICorProfilerInfo2_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo2_Release(This) \ +#define ICorProfilerInfo2_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#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) \ +#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) \ +#define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#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) \ +#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) \ +#define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo2_ForceGC(This) \ +#define ICorProfilerInfo2_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#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) \ +#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) \ +#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) \ +#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) \ +#define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#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) \ +#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) \ +#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) \ +#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) \ +#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) \ +#define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,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) \ +#define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__ @@ -8766,7 +8759,7 @@ EXTERN_C const IID IID_ICorProfilerInfo3; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo3Vtbl { @@ -9225,231 +9218,231 @@ EXTERN_C const IID IID_ICorProfilerInfo3; #ifdef COBJMACROS -#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo3_AddRef(This) \ +#define ICorProfilerInfo3_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo3_Release(This) \ +#define ICorProfilerInfo3_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#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) \ +#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) \ +#define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#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) \ +#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) \ +#define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo3_ForceGC(This) \ +#define ICorProfilerInfo3_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#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) \ +#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) \ +#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) \ +#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) \ +#define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#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) \ +#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) \ +#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) \ +#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) \ +#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) \ +#define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,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) \ +#define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#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) \ +#define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo3_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo3_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#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) \ +#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) \ +#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) \ +#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 /* C style interface */ -#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__ @@ -9486,7 +9479,7 @@ EXTERN_C const IID IID_ICorProfilerObjectEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerObjectEnumVtbl { @@ -9538,40 +9531,40 @@ EXTERN_C const IID IID_ICorProfilerObjectEnum; #ifdef COBJMACROS -#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerObjectEnum_AddRef(This) \ +#define ICorProfilerObjectEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerObjectEnum_Release(This) \ +#define ICorProfilerObjectEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerObjectEnum_Skip(This,celt) \ +#define ICorProfilerObjectEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerObjectEnum_Reset(This) \ +#define ICorProfilerObjectEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerObjectEnum_Clone(This,ppEnum) \ +#define ICorProfilerObjectEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerObjectEnum_GetCount(This,pcelt) \ +#define ICorProfilerObjectEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \ +#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ @@ -9608,7 +9601,7 @@ EXTERN_C const IID IID_ICorProfilerFunctionEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerFunctionEnumVtbl { @@ -9660,40 +9653,40 @@ EXTERN_C const IID IID_ICorProfilerFunctionEnum; #ifdef COBJMACROS -#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerFunctionEnum_AddRef(This) \ +#define ICorProfilerFunctionEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerFunctionEnum_Release(This) \ +#define ICorProfilerFunctionEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerFunctionEnum_Skip(This,celt) \ +#define ICorProfilerFunctionEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerFunctionEnum_Reset(This) \ +#define ICorProfilerFunctionEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \ +#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \ +#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__ @@ -9730,7 +9723,7 @@ EXTERN_C const IID IID_ICorProfilerModuleEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerModuleEnumVtbl { @@ -9782,40 +9775,40 @@ EXTERN_C const IID IID_ICorProfilerModuleEnum; #ifdef COBJMACROS -#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerModuleEnum_AddRef(This) \ +#define ICorProfilerModuleEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerModuleEnum_Release(This) \ +#define ICorProfilerModuleEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerModuleEnum_Skip(This,celt) \ +#define ICorProfilerModuleEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerModuleEnum_Reset(This) \ +#define ICorProfilerModuleEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerModuleEnum_Clone(This,ppEnum) \ +#define ICorProfilerModuleEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerModuleEnum_GetCount(This,pcelt) \ +#define ICorProfilerModuleEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */ #ifndef __IMethodMalloc_INTERFACE_DEFINED__ @@ -9839,7 +9832,7 @@ EXTERN_C const IID IID_IMethodMalloc; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct IMethodMallocVtbl { @@ -9874,28 +9867,28 @@ EXTERN_C const IID IID_IMethodMalloc; #ifdef COBJMACROS -#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \ +#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define IMethodMalloc_AddRef(This) \ +#define IMethodMalloc_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define IMethodMalloc_Release(This) \ +#define IMethodMalloc_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define IMethodMalloc_Alloc(This,cb) \ +#define IMethodMalloc_Alloc(This,cb) \ ( (This)->lpVtbl -> Alloc(This,cb) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */ +#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerFunctionControl_INTERFACE_DEFINED__ @@ -9927,7 +9920,7 @@ EXTERN_C const IID IID_ICorProfilerFunctionControl; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerFunctionControlVtbl { @@ -9972,34 +9965,34 @@ EXTERN_C const IID IID_ICorProfilerFunctionControl; #ifdef COBJMACROS -#define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerFunctionControl_AddRef(This) \ +#define ICorProfilerFunctionControl_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerFunctionControl_Release(This) \ +#define ICorProfilerFunctionControl_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \ +#define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \ ( (This)->lpVtbl -> SetCodegenFlags(This,flags) ) -#define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \ +#define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) ) -#define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo4_INTERFACE_DEFINED__ @@ -10068,7 +10061,7 @@ EXTERN_C const IID IID_ICorProfilerInfo4; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo4Vtbl { @@ -10585,262 +10578,262 @@ EXTERN_C const IID IID_ICorProfilerInfo4; #ifdef COBJMACROS -#define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo4_AddRef(This) \ +#define ICorProfilerInfo4_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo4_Release(This) \ +#define ICorProfilerInfo4_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo4_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo4_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo4_ForceGC(This) \ +#define ICorProfilerInfo4_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo4_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo4_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo4_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 ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo4_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo4_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo4_InitializeCurrentThread(This) \ +#define ICorProfilerInfo4_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo5_INTERFACE_DEFINED__ @@ -10869,7 +10862,7 @@ EXTERN_C const IID IID_ICorProfilerInfo5; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo5Vtbl { @@ -11396,269 +11389,269 @@ EXTERN_C const IID IID_ICorProfilerInfo5; #ifdef COBJMACROS -#define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo5_AddRef(This) \ +#define ICorProfilerInfo5_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo5_Release(This) \ +#define ICorProfilerInfo5_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo5_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo5_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo5_ForceGC(This) \ +#define ICorProfilerInfo5_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo5_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo5_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo5_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 ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo5_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo5_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo5_InitializeCurrentThread(This) \ +#define ICorProfilerInfo5_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo6_INTERFACE_DEFINED__ @@ -11686,7 +11679,7 @@ EXTERN_C const IID IID_ICorProfilerInfo6; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo6Vtbl { @@ -12221,273 +12214,273 @@ EXTERN_C const IID IID_ICorProfilerInfo6; #ifdef COBJMACROS -#define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo6_AddRef(This) \ +#define ICorProfilerInfo6_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo6_Release(This) \ +#define ICorProfilerInfo6_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo6_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo6_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo6_ForceGC(This) \ +#define ICorProfilerInfo6_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo6_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo6_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo6_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 ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo6_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo6_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo6_InitializeCurrentThread(This) \ +#define ICorProfilerInfo6_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo7_INTERFACE_DEFINED__ @@ -12522,7 +12515,7 @@ EXTERN_C const IID IID_ICorProfilerInfo7; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo7Vtbl { @@ -13074,283 +13067,283 @@ EXTERN_C const IID IID_ICorProfilerInfo7; #ifdef COBJMACROS -#define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo7_AddRef(This) \ +#define ICorProfilerInfo7_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo7_Release(This) \ +#define ICorProfilerInfo7_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo7_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo7_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo7_ForceGC(This) \ +#define ICorProfilerInfo7_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo7_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo7_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo7_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 ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo7_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo7_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo7_InitializeCurrentThread(This) \ +#define ICorProfilerInfo7_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo8_INTERFACE_DEFINED__ @@ -13389,7 +13382,7 @@ EXTERN_C const IID IID_ICorProfilerInfo8; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo8Vtbl { @@ -13962,293 +13955,293 @@ EXTERN_C const IID IID_ICorProfilerInfo8; #ifdef COBJMACROS -#define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo8_AddRef(This) \ +#define ICorProfilerInfo8_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo8_Release(This) \ +#define ICorProfilerInfo8_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo8_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo8_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo8_ForceGC(This) \ +#define ICorProfilerInfo8_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo8_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo8_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo8_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 ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo8_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo8_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo8_InitializeCurrentThread(This) \ +#define ICorProfilerInfo8_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) -#define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \ +#define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \ ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) -#define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ +#define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) -#define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ +#define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo9_INTERFACE_DEFINED__ @@ -14288,7 +14281,7 @@ EXTERN_C const IID IID_ICorProfilerInfo9; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo9Vtbl { @@ -14883,303 +14876,303 @@ EXTERN_C const IID IID_ICorProfilerInfo9; #ifdef COBJMACROS -#define ICorProfilerInfo9_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo9_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo9_AddRef(This) \ +#define ICorProfilerInfo9_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo9_Release(This) \ +#define ICorProfilerInfo9_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo9_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo9_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo9_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo9_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo9_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo9_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo9_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo9_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo9_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo9_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo9_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo9_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo9_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo9_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo9_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo9_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo9_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo9_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo9_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo9_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo9_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo9_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo9_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo9_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo9_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo9_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo9_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo9_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo9_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo9_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo9_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo9_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo9_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo9_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo9_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo9_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo9_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo9_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo9_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo9_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo9_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo9_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo9_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo9_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo9_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo9_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo9_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo9_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo9_ForceGC(This) \ +#define ICorProfilerInfo9_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo9_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo9_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo9_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo9_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo9_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo9_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo9_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo9_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo9_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo9_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo9_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo9_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo9_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo9_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo9_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo9_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo9_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo9_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo9_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo9_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo9_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo9_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo9_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo9_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo9_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo9_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo9_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo9_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo9_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo9_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo9_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo9_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo9_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo9_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo9_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo9_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo9_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo9_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo9_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo9_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo9_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo9_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo9_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo9_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo9_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo9_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo9_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo9_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo9_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo9_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo9_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo9_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo9_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo9_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo9_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo9_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo9_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo9_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo9_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo9_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo9_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo9_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo9_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo9_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo9_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo9_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo9_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo9_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo9_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo9_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo9_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo9_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 ICorProfilerInfo9_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo9_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo9_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo9_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo9_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo9_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo9_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo9_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo9_InitializeCurrentThread(This) \ +#define ICorProfilerInfo9_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo9_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo9_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo9_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo9_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo9_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo9_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo9_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo9_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo9_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo9_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo9_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo9_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo9_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo9_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo9_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo9_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo9_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo9_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo9_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo9_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo9_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo9_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo9_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo9_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo9_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo9_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo9_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo9_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) -#define ICorProfilerInfo9_IsFunctionDynamic(This,functionId,isDynamic) \ +#define ICorProfilerInfo9_IsFunctionDynamic(This,functionId,isDynamic) \ ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) -#define ICorProfilerInfo9_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ +#define ICorProfilerInfo9_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) -#define ICorProfilerInfo9_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ +#define ICorProfilerInfo9_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) -#define ICorProfilerInfo9_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \ +#define ICorProfilerInfo9_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \ ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) ) -#define ICorProfilerInfo9_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \ +#define ICorProfilerInfo9_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) ) -#define ICorProfilerInfo9_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo9_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerInfo10_INTERFACE_DEFINED__ @@ -15218,7 +15211,7 @@ EXTERN_C const IID IID_ICorProfilerInfo10; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerInfo10Vtbl { @@ -15835,316 +15828,316 @@ EXTERN_C const IID IID_ICorProfilerInfo10; #ifdef COBJMACROS -#define ICorProfilerInfo10_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerInfo10_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerInfo10_AddRef(This) \ +#define ICorProfilerInfo10_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerInfo10_Release(This) \ +#define ICorProfilerInfo10_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerInfo10_GetClassFromObject(This,objectId,pClassId) \ +#define ICorProfilerInfo10_GetClassFromObject(This,objectId,pClassId) \ ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) -#define ICorProfilerInfo10_GetClassFromToken(This,moduleId,typeDef,pClassId) \ +#define ICorProfilerInfo10_GetClassFromToken(This,moduleId,typeDef,pClassId) \ ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) -#define ICorProfilerInfo10_GetCodeInfo(This,functionId,pStart,pcSize) \ +#define ICorProfilerInfo10_GetCodeInfo(This,functionId,pStart,pcSize) \ ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) -#define ICorProfilerInfo10_GetEventMask(This,pdwEvents) \ +#define ICorProfilerInfo10_GetEventMask(This,pdwEvents) \ ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) -#define ICorProfilerInfo10_GetFunctionFromIP(This,ip,pFunctionId) \ +#define ICorProfilerInfo10_GetFunctionFromIP(This,ip,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) -#define ICorProfilerInfo10_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ +#define ICorProfilerInfo10_GetFunctionFromToken(This,moduleId,token,pFunctionId) \ ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) -#define ICorProfilerInfo10_GetHandleFromThread(This,threadId,phThread) \ +#define ICorProfilerInfo10_GetHandleFromThread(This,threadId,phThread) \ ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) -#define ICorProfilerInfo10_GetObjectSize(This,objectId,pcSize) \ +#define ICorProfilerInfo10_GetObjectSize(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) -#define ICorProfilerInfo10_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ +#define ICorProfilerInfo10_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \ ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) -#define ICorProfilerInfo10_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ +#define ICorProfilerInfo10_GetThreadInfo(This,threadId,pdwWin32ThreadId) \ ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) -#define ICorProfilerInfo10_GetCurrentThreadID(This,pThreadId) \ +#define ICorProfilerInfo10_GetCurrentThreadID(This,pThreadId) \ ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) -#define ICorProfilerInfo10_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ +#define ICorProfilerInfo10_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \ ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) -#define ICorProfilerInfo10_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ +#define ICorProfilerInfo10_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \ ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) -#define ICorProfilerInfo10_SetEventMask(This,dwEvents) \ +#define ICorProfilerInfo10_SetEventMask(This,dwEvents) \ ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) -#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo10_SetFunctionIDMapper(This,pFunc) \ +#define ICorProfilerInfo10_SetFunctionIDMapper(This,pFunc) \ ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) -#define ICorProfilerInfo10_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ +#define ICorProfilerInfo10_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \ ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) -#define ICorProfilerInfo10_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ +#define ICorProfilerInfo10_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \ ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) -#define ICorProfilerInfo10_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ +#define ICorProfilerInfo10_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \ ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) -#define ICorProfilerInfo10_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ +#define ICorProfilerInfo10_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \ ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) -#define ICorProfilerInfo10_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ +#define ICorProfilerInfo10_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \ ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) -#define ICorProfilerInfo10_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ +#define ICorProfilerInfo10_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \ ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) -#define ICorProfilerInfo10_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ +#define ICorProfilerInfo10_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \ ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) -#define ICorProfilerInfo10_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ +#define ICorProfilerInfo10_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \ ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) -#define ICorProfilerInfo10_SetFunctionReJIT(This,functionId) \ +#define ICorProfilerInfo10_SetFunctionReJIT(This,functionId) \ ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) -#define ICorProfilerInfo10_ForceGC(This) \ +#define ICorProfilerInfo10_ForceGC(This) \ ( (This)->lpVtbl -> ForceGC(This) ) -#define ICorProfilerInfo10_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ +#define ICorProfilerInfo10_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \ ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) -#define ICorProfilerInfo10_GetInprocInspectionInterface(This,ppicd) \ +#define ICorProfilerInfo10_GetInprocInspectionInterface(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) -#define ICorProfilerInfo10_GetInprocInspectionIThisThread(This,ppicd) \ +#define ICorProfilerInfo10_GetInprocInspectionIThisThread(This,ppicd) \ ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) -#define ICorProfilerInfo10_GetThreadContext(This,threadId,pContextId) \ +#define ICorProfilerInfo10_GetThreadContext(This,threadId,pContextId) \ ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) -#define ICorProfilerInfo10_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ +#define ICorProfilerInfo10_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \ ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) -#define ICorProfilerInfo10_EndInprocDebugging(This,dwProfilerContext) \ +#define ICorProfilerInfo10_EndInprocDebugging(This,dwProfilerContext) \ ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) -#define ICorProfilerInfo10_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ +#define ICorProfilerInfo10_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) -#define ICorProfilerInfo10_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ +#define ICorProfilerInfo10_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \ ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) -#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) -#define ICorProfilerInfo10_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ +#define ICorProfilerInfo10_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) -#define ICorProfilerInfo10_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo10_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo10_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ +#define ICorProfilerInfo10_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \ ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) -#define ICorProfilerInfo10_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ +#define ICorProfilerInfo10_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \ ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) -#define ICorProfilerInfo10_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo10_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo10_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ +#define ICorProfilerInfo10_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \ ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) -#define ICorProfilerInfo10_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ +#define ICorProfilerInfo10_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \ ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) -#define ICorProfilerInfo10_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ +#define ICorProfilerInfo10_EnumModuleFrozenObjects(This,moduleID,ppEnum) \ ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) -#define ICorProfilerInfo10_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ +#define ICorProfilerInfo10_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \ ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) -#define ICorProfilerInfo10_GetBoxClassLayout(This,classId,pBufferOffset) \ +#define ICorProfilerInfo10_GetBoxClassLayout(This,classId,pBufferOffset) \ ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) -#define ICorProfilerInfo10_GetThreadAppDomain(This,threadId,pAppDomainId) \ +#define ICorProfilerInfo10_GetThreadAppDomain(This,threadId,pAppDomainId) \ ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) -#define ICorProfilerInfo10_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ +#define ICorProfilerInfo10_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \ ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) -#define ICorProfilerInfo10_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ +#define ICorProfilerInfo10_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \ ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) -#define ICorProfilerInfo10_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ +#define ICorProfilerInfo10_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) -#define ICorProfilerInfo10_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ +#define ICorProfilerInfo10_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \ ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) -#define ICorProfilerInfo10_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ +#define ICorProfilerInfo10_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \ ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) -#define ICorProfilerInfo10_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ +#define ICorProfilerInfo10_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \ ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) -#define ICorProfilerInfo10_GetObjectGeneration(This,objectId,range) \ +#define ICorProfilerInfo10_GetObjectGeneration(This,objectId,range) \ ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) -#define ICorProfilerInfo10_GetNotifiedExceptionClauseInfo(This,pinfo) \ +#define ICorProfilerInfo10_GetNotifiedExceptionClauseInfo(This,pinfo) \ ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) -#define ICorProfilerInfo10_EnumJITedFunctions(This,ppEnum) \ +#define ICorProfilerInfo10_EnumJITedFunctions(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) -#define ICorProfilerInfo10_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ +#define ICorProfilerInfo10_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \ ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) -#define ICorProfilerInfo10_SetFunctionIDMapper2(This,pFunc,clientData) \ +#define ICorProfilerInfo10_SetFunctionIDMapper2(This,pFunc,clientData) \ ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) -#define ICorProfilerInfo10_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ +#define ICorProfilerInfo10_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \ ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) -#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) -#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ +#define ICorProfilerInfo10_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \ ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) -#define ICorProfilerInfo10_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ +#define ICorProfilerInfo10_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \ ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) -#define ICorProfilerInfo10_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ +#define ICorProfilerInfo10_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \ ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) -#define ICorProfilerInfo10_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ +#define ICorProfilerInfo10_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \ ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) -#define ICorProfilerInfo10_EnumModules(This,ppEnum) \ +#define ICorProfilerInfo10_EnumModules(This,ppEnum) \ ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) -#define ICorProfilerInfo10_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \ +#define ICorProfilerInfo10_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 ICorProfilerInfo10_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ +#define ICorProfilerInfo10_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \ ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) -#define ICorProfilerInfo10_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ +#define ICorProfilerInfo10_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \ ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) -#define ICorProfilerInfo10_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ +#define ICorProfilerInfo10_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \ ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) -#define ICorProfilerInfo10_EnumThreads(This,ppEnum) \ +#define ICorProfilerInfo10_EnumThreads(This,ppEnum) \ ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) -#define ICorProfilerInfo10_InitializeCurrentThread(This) \ +#define ICorProfilerInfo10_InitializeCurrentThread(This) \ ( (This)->lpVtbl -> InitializeCurrentThread(This) ) -#define ICorProfilerInfo10_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo10_RequestReJIT(This,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) -#define ICorProfilerInfo10_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ +#define ICorProfilerInfo10_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \ ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) -#define ICorProfilerInfo10_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo10_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo10_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ +#define ICorProfilerInfo10_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) -#define ICorProfilerInfo10_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ +#define ICorProfilerInfo10_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \ ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) -#define ICorProfilerInfo10_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ +#define ICorProfilerInfo10_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) -#define ICorProfilerInfo10_EnumJITedFunctions2(This,ppEnum) \ +#define ICorProfilerInfo10_EnumJITedFunctions2(This,ppEnum) \ ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) -#define ICorProfilerInfo10_GetObjectSize2(This,objectId,pcSize) \ +#define ICorProfilerInfo10_GetObjectSize2(This,objectId,pcSize) \ ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) -#define ICorProfilerInfo10_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ +#define ICorProfilerInfo10_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \ ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) -#define ICorProfilerInfo10_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ +#define ICorProfilerInfo10_SetEventMask2(This,dwEventsLow,dwEventsHigh) \ ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) -#define ICorProfilerInfo10_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ +#define ICorProfilerInfo10_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \ ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) -#define ICorProfilerInfo10_ApplyMetaData(This,moduleId) \ +#define ICorProfilerInfo10_ApplyMetaData(This,moduleId) \ ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) -#define ICorProfilerInfo10_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ +#define ICorProfilerInfo10_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \ ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) -#define ICorProfilerInfo10_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ +#define ICorProfilerInfo10_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \ ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) -#define ICorProfilerInfo10_IsFunctionDynamic(This,functionId,isDynamic) \ +#define ICorProfilerInfo10_IsFunctionDynamic(This,functionId,isDynamic) \ ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) -#define ICorProfilerInfo10_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ +#define ICorProfilerInfo10_GetFunctionFromIP3(This,ip,functionId,pReJitId) \ ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) -#define ICorProfilerInfo10_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ +#define ICorProfilerInfo10_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \ ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) -#define ICorProfilerInfo10_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \ +#define ICorProfilerInfo10_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \ ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) ) -#define ICorProfilerInfo10_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \ +#define ICorProfilerInfo10_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \ ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) ) -#define ICorProfilerInfo10_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \ +#define ICorProfilerInfo10_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \ ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) ) -#define ICorProfilerInfo10_EnumerateObjectReferences(This,objectId,callback,clientData) \ +#define ICorProfilerInfo10_EnumerateObjectReferences(This,objectId,callback,clientData) \ ( (This)->lpVtbl -> EnumerateObjectReferences(This,objectId,callback,clientData) ) -#define ICorProfilerInfo10_IsFrozenObject(This,objectId,pbFrozen) \ +#define ICorProfilerInfo10_IsFrozenObject(This,objectId,pbFrozen) \ ( (This)->lpVtbl -> IsFrozenObject(This,objectId,pbFrozen) ) -#define ICorProfilerInfo10_GetLOHObjectSizeThreshold(This,pThreshold) \ +#define ICorProfilerInfo10_GetLOHObjectSizeThreshold(This,pThreshold) \ ( (This)->lpVtbl -> GetLOHObjectSizeThreshold(This,pThreshold) ) -#define ICorProfilerInfo10_RequestReJITWithInliners(This,dwRejitFlags,cFunctions,moduleIds,methodIds) \ +#define ICorProfilerInfo10_RequestReJITWithInliners(This,dwRejitFlags,cFunctions,moduleIds,methodIds) \ ( (This)->lpVtbl -> RequestReJITWithInliners(This,dwRejitFlags,cFunctions,moduleIds,methodIds) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerInfo10_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerInfo10_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__ @@ -16181,7 +16174,7 @@ EXTERN_C const IID IID_ICorProfilerMethodEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerMethodEnumVtbl { @@ -16233,40 +16226,40 @@ EXTERN_C const IID IID_ICorProfilerMethodEnum; #ifdef COBJMACROS -#define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerMethodEnum_AddRef(This) \ +#define ICorProfilerMethodEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerMethodEnum_Release(This) \ +#define ICorProfilerMethodEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerMethodEnum_Skip(This,celt) \ +#define ICorProfilerMethodEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerMethodEnum_Reset(This) \ +#define ICorProfilerMethodEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerMethodEnum_Clone(This,ppEnum) \ +#define ICorProfilerMethodEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerMethodEnum_GetCount(This,pcelt) \ +#define ICorProfilerMethodEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \ +#define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__ @@ -16303,7 +16296,7 @@ EXTERN_C const IID IID_ICorProfilerThreadEnum; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerThreadEnumVtbl { @@ -16355,40 +16348,40 @@ EXTERN_C const IID IID_ICorProfilerThreadEnum; #ifdef COBJMACROS -#define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerThreadEnum_AddRef(This) \ +#define ICorProfilerThreadEnum_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerThreadEnum_Release(This) \ +#define ICorProfilerThreadEnum_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerThreadEnum_Skip(This,celt) \ +#define ICorProfilerThreadEnum_Skip(This,celt) \ ( (This)->lpVtbl -> Skip(This,celt) ) -#define ICorProfilerThreadEnum_Reset(This) \ +#define ICorProfilerThreadEnum_Reset(This) \ ( (This)->lpVtbl -> Reset(This) ) -#define ICorProfilerThreadEnum_Clone(This,ppEnum) \ +#define ICorProfilerThreadEnum_Clone(This,ppEnum) \ ( (This)->lpVtbl -> Clone(This,ppEnum) ) -#define ICorProfilerThreadEnum_GetCount(This,pcelt) \ +#define ICorProfilerThreadEnum_GetCount(This,pcelt) \ ( (This)->lpVtbl -> GetCount(This,pcelt) ) -#define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \ +#define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \ ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) #endif /* COBJMACROS */ -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */ #ifndef __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ @@ -16412,7 +16405,7 @@ EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider; }; -#else /* C style interface */ +#else /* C style interface */ typedef struct ICorProfilerAssemblyReferenceProviderVtbl { @@ -16447,118 +16440,28 @@ EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider; #ifdef COBJMACROS -#define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \ +#define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \ ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) -#define ICorProfilerAssemblyReferenceProvider_AddRef(This) \ +#define ICorProfilerAssemblyReferenceProvider_AddRef(This) \ ( (This)->lpVtbl -> AddRef(This) ) -#define ICorProfilerAssemblyReferenceProvider_Release(This) \ +#define ICorProfilerAssemblyReferenceProvider_Release(This) \ ( (This)->lpVtbl -> Release(This) ) -#define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \ +#define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \ ( (This)->lpVtbl -> AddAssemblyReference(This,pAssemblyRefInfo) ) #endif /* COBJMACROS */ -#endif /* C style interface */ - - - - -#endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */ - - -#ifndef __ICLRProfiling_INTERFACE_DEFINED__ -#define __ICLRProfiling_INTERFACE_DEFINED__ - -/* interface ICLRProfiling */ -/* [object][local][helpstring][version][uuid] */ - - -EXTERN_C const IID IID_ICLRProfiling; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("B349ABE3-B56F-4689-BFCD-76BF39D888EA") - ICLRProfiling : public IUnknown - { - public: - virtual HRESULT STDMETHODCALLTYPE AttachProfiler( - /* [in] */ DWORD dwProfileeProcessID, - /* [in] */ DWORD dwMillisecondsMax, - /* [in] */ const CLSID *pClsidProfiler, - /* [in] */ LPCWSTR wszProfilerPath, - /* [size_is][in] */ void *pvClientData, - /* [in] */ UINT cbClientData) = 0; - - }; - - -#else /* C style interface */ - - typedef struct ICLRProfilingVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - ICLRProfiling * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - ICLRProfiling * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - ICLRProfiling * This); - - HRESULT ( STDMETHODCALLTYPE *AttachProfiler )( - ICLRProfiling * This, - /* [in] */ DWORD dwProfileeProcessID, - /* [in] */ DWORD dwMillisecondsMax, - /* [in] */ const CLSID *pClsidProfiler, - /* [in] */ LPCWSTR wszProfilerPath, - /* [size_is][in] */ void *pvClientData, - /* [in] */ UINT cbClientData); - - END_INTERFACE - } ICLRProfilingVtbl; - - interface ICLRProfiling - { - CONST_VTBL struct ICLRProfilingVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define ICLRProfiling_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define ICLRProfiling_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define ICLRProfiling_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define ICLRProfiling_AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) \ - ( (This)->lpVtbl -> AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ +#endif /* C style interface */ -#endif /* __ICLRProfiling_INTERFACE_DEFINED__ */ +#endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */ /* Additional Prototypes for ALL interfaces */ diff --git a/src/vm/CMakeLists.txt b/src/vm/CMakeLists.txt index b4c635924c..7acfa94e43 100644 --- a/src/vm/CMakeLists.txt +++ b/src/vm/CMakeLists.txt @@ -363,9 +363,6 @@ set(VM_SOURCES_WKS objectlist.cpp olevariant.cpp pendingload.cpp - profattach.cpp - profattachclient.cpp - profattachserver.cpp profdetach.cpp profilermetadataemitvalidator.cpp profilingenumerators.cpp @@ -485,14 +482,10 @@ set(VM_HEADERS_WKS objectlist.h olevariant.h pendingload.h - profattach.h - profattachclient.h - profattachserver.h profdetach.h profilermetadataemitvalidator.h profilingenumerators.h profilinghelper.h - profilinghelper.h proftoeeinterfaceimpl.h proftoeeinterfaceimpl.inl qcall.h diff --git a/src/vm/diagnosticprotocolhelper.cpp b/src/vm/diagnosticprotocolhelper.cpp index 2813a7d138..b48432df3f 100644 --- a/src/vm/diagnosticprotocolhelper.cpp +++ b/src/vm/diagnosticprotocolhelper.cpp @@ -7,9 +7,12 @@ #include "diagnosticprotocolhelper.h" #include "diagnosticsipc.h" #include "diagnosticsprotocol.h" +#if defined(FEATURE_PROFAPI_ATTACH_DETACH) && !defined(DACCESS_COMPILE) +#include "profilinghelper.h" +#include "profilinghelper.inl" +#endif // defined(FEATURE_PROFAPI_ATTACH_DETACH) && !defined(DACCESS_COMPILE) #ifdef FEATURE_PERFTRACING -#ifdef FEATURE_PAL static void WriteStatus(uint64_t result, IpcStream* pStream) { @@ -21,6 +24,8 @@ static void WriteStatus(uint64_t result, IpcStream* pStream) } } +#ifdef FEATURE_PAL + void DiagnosticProtocolHelper::GenerateCoreDump(IpcStream* pStream) { CONTRACTL @@ -88,4 +93,143 @@ void DiagnosticProtocolHelper::GenerateCoreDump(IpcStream* pStream) } #endif // FEATURE_PAL + +#ifdef FEATURE_PROFAPI_ATTACH_DETACH +void DiagnosticProtocolHelper::AttachProfiler(IpcStream *pStream) +{ + CONTRACTL + { + THROWS; + GC_TRIGGERS; + MODE_PREEMPTIVE; + PRECONDITION(pStream != nullptr); + } + CONTRACTL_END; + + if (pStream == nullptr) + { + return; + } + + HRESULT hr = S_OK; + uint8_t buffer[IpcStreamReadBufferSize] { }; + uint32_t nNumberOfBytesRead = 0; + uint32_t dwAttachTimeout = 0; + CLSID profilerGuid = { }; + uint32_t cbProfilerPath = 0; + NewArrayHolder<WCHAR> pwszProfilerPath = nullptr; + uint32_t cbClientData = 0; + NewArrayHolder<uint8_t> pClientData = nullptr; + + uint8_t *pBufferCursor = 0; + uint32_t bufferLen = 0; + uint32_t pathSize = 0; + uint32_t bytesToRead = 0; + uint32_t bufferBytesRead = 0; + uint8_t *pClientDataCursor = 0; + + bool fSuccess = pStream->Read(buffer, sizeof(buffer), nNumberOfBytesRead); + if (!fSuccess) + { + hr = E_UNEXPECTED; + goto ErrExit; + } + + pBufferCursor = buffer; + bufferLen = nNumberOfBytesRead; + if (!(TryParse(pBufferCursor, bufferLen, dwAttachTimeout) && + TryParse(pBufferCursor, bufferLen, profilerGuid))) + { + hr = E_INVALIDARG; + goto ErrExit; + } + + if (!TryParse(pBufferCursor, bufferLen, cbProfilerPath) || + cbProfilerPath > bufferLen) + { + // TODO: A really long path (thousands of characters) could be longer than + // the buffer here, if that happens we'll return E_INVALIDARG. The read + // buffer is 8192 bytes, so has room for 4096 16 bit characters. Minus a few for + // the header, etc, the realistic max is around 4000 characters. + hr = E_INVALIDARG; + goto ErrExit; + } + + pwszProfilerPath = new (nothrow) WCHAR[cbProfilerPath]; + if (pwszProfilerPath == nullptr) + { + hr = E_INVALIDARG; + goto ErrExit; + } + + pathSize = cbProfilerPath * sizeof(WCHAR); + memcpy(pwszProfilerPath, pBufferCursor, pathSize); + bufferLen -= pathSize; + pBufferCursor += pathSize; + + if (!TryParse(pBufferCursor, bufferLen, cbClientData)) + { + hr = E_INVALIDARG; + goto ErrExit; + } + + pClientData = new (nothrow) uint8_t[cbClientData]; + if (pClientData == nullptr) + { + hr = E_OUTOFMEMORY; + goto ErrExit; + } + + bufferBytesRead = 0; + pClientDataCursor = pClientData; + // TODO: get rid of this ad-hoc byte[] parsing code + while (bufferBytesRead < cbClientData) + { + if (bufferLen == 0) + { + // Client data was bigger than the buffer, need to read more + fSuccess = pStream->Read(buffer, sizeof(buffer), nNumberOfBytesRead); + if (!fSuccess) + { + hr = E_UNEXPECTED; + goto ErrExit; + } + + pBufferCursor = buffer; + bufferLen = nNumberOfBytesRead; + } + + bytesToRead = min((cbClientData - bufferBytesRead), bufferLen); + memcpy(pClientDataCursor, pBufferCursor, bytesToRead); + pClientDataCursor += bytesToRead; + + _ASSERTE(bytesToRead <= bufferLen && "bytesToRead > bufferLen means we overran the buffer"); + bufferLen -= bytesToRead; + bufferBytesRead += bytesToRead; + } + + _ASSERTE(bufferBytesRead == cbClientData && "bufferBytesRead > cbClientData means we read too far"); + + if (cbClientData == 0) + { + pClientData = nullptr; + } + + if (!g_profControlBlock.fProfControlBlockInitialized) + { + hr = CORPROF_E_RUNTIME_UNINITIALIZED; + goto ErrExit; + } + + hr = ProfilingAPIUtility::LoadProfilerForAttach(&profilerGuid, + pwszProfilerPath, + pClientData, + cbClientData, + dwAttachTimeout); +ErrExit: + WriteStatus(hr, pStream); + delete pStream; +} +#endif // FEATURE_PROFAPI_ATTACH_DETACH + #endif // FEATURE_PERFTRACING diff --git a/src/vm/diagnosticprotocolhelper.h b/src/vm/diagnosticprotocolhelper.h index ca3149d878..30a7be63a1 100644 --- a/src/vm/diagnosticprotocolhelper.h +++ b/src/vm/diagnosticprotocolhelper.h @@ -19,6 +19,10 @@ public: static void GenerateCoreDump(IpcStream *pStream); // `dotnet-dump collect` #endif +#ifdef FEATURE_PROFAPI_ATTACH_DETACH + static void AttachProfiler(IpcStream *pStream); +#endif // FEATURE_PROFAPI_ATTACH_DETACH + private: const static uint32_t IpcStreamReadBufferSize = 8192; }; diff --git a/src/vm/diagnosticserver.cpp b/src/vm/diagnosticserver.cpp index 9b9791ffec..e94fa81511 100644 --- a/src/vm/diagnosticserver.cpp +++ b/src/vm/diagnosticserver.cpp @@ -72,6 +72,12 @@ static DWORD WINAPI DiagnosticsServerThread(LPVOID lpThreadParameter) break; #endif +#ifdef FEATURE_PROFAPI_ATTACH_DETACH + case DiagnosticMessageType::AttachProfiler: + DiagnosticProtocolHelper::AttachProfiler(pStream); + break; +#endif // FEATURE_PROFAPI_ATTACH_DETACH + default: STRESS_LOG1(LF_DIAGNOSTICS_PORT, LL_WARNING, "Received unknown request type (%d)\n", header.RequestType); delete pStream; diff --git a/src/vm/diagnosticserver.h b/src/vm/diagnosticserver.h index 49f6981247..9452c497e6 100644 --- a/src/vm/diagnosticserver.h +++ b/src/vm/diagnosticserver.h @@ -25,6 +25,7 @@ enum class DiagnosticMessageType : uint32_t /////////////////////////////////////////////////////////////////////////// // Profiler = 2048 + AttachProfiler = 2048, }; //! TODO: Temp class. diff --git a/src/vm/diagnosticsprotocol.h b/src/vm/diagnosticsprotocol.h index 765977f02a..418e927ec4 100644 --- a/src/vm/diagnosticsprotocol.h +++ b/src/vm/diagnosticsprotocol.h @@ -11,7 +11,8 @@ template <typename T> bool TryParse(uint8_t *&bufferCursor, uint32_t &bufferLen, T &result) { static_assert( - std::is_integral<T>::value || std::is_same<T, float>::value || std::is_same<T, double>::value, + std::is_integral<T>::value || std::is_same<T, float>::value || + std::is_same<T, double>::value || std::is_same<T, CLSID>::value, "Can only be instantiated with integral and floating point types."); if (bufferLen < sizeof(T)) diff --git a/src/vm/finalizerthread.cpp b/src/vm/finalizerthread.cpp index ad3386e5a5..46b4f224cc 100644 --- a/src/vm/finalizerthread.cpp +++ b/src/vm/finalizerthread.cpp @@ -13,10 +13,6 @@ #include "runtimecallablewrapper.h" #endif -#ifdef FEATURE_PROFAPI_ATTACH_DETACH -#include "profattach.h" -#endif // FEATURE_PROFAPI_ATTACH_DETACH - BOOL FinalizerThread::fQuitFinalizer = FALSE; #if defined(__linux__) && defined(FEATURE_EVENT_TRACE) @@ -148,20 +144,9 @@ void FinalizerThread::FinalizeAllObjects(int bitToCheck) Thread *pThread = GetThread(); -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - ULONGLONG ui64TimestampLastCheckedProfAttachEventMs = 0; -#endif //FEATURE_PROFAPI_ATTACH_DETACH - // Finalize everyone while (fobj) { -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - // Don't let an overloaded finalizer queue starve out - // an attaching profiler. In between running finalizers, - // check the profiler attach event without blocking. - ProcessProfilerAttachIfNecessary(&ui64TimestampLastCheckedProfAttachEventMs); -#endif // FEATURE_PROFAPI_ATTACH_DETACH - if (fobj->GetHeader()->GetBits() & bitToCheck) { fobj = GCHeapUtilities::GetGCHeap()->GetNextFinalizable(); @@ -176,98 +161,6 @@ void FinalizerThread::FinalizeAllObjects(int bitToCheck) FireEtwGCFinalizersEnd_V1(fcount, GetClrInstanceId()); } - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - -// ---------------------------------------------------------------------------- -// ProcessProfilerAttachIfNecessary -// -// Description: -// This is called to peek at the Profiler Attach Event in between finalizers to check -// if it's signaled. If it is, this calls -// code:ProfilingAPIAttachDetach::ProcessSignaledAttachEvent to deal with it. -// -// -// Arguments: -// * pui64TimestampLastCheckedEventMs: [in / out] This keeps track of how often the -// Profiler Attach Event is checked, so it's not checked too often during a -// tight loop (in particular, the loop in code:SVR::FinalizeAllObjects which -// executes all finalizer routines in the queue). This argument has the -// following possible values: -// * [in] (pui64TimestampLastCheckedEventMs) == NULL: Means the arg is not used, so -// just check the event and ignore this argument -// * [in] (*pui64TimestampLastCheckedEventMs) == 0: Arg is uninitialized. Just -// initialize it with the current tick count and return without checking the -// event (as the event was probably just checked before entering the loop -// that called this function). -// * [in] (*pui64TimestampLastCheckedEventMs) != 0: Arg is initialized to the -// approximate tick count of when the event was last checked. If it's time -// to check the event again, do so and update this parameter on [out] with -// the current timestamp. Otherwise, do nothing and return. -// -// Notes: -// * The Profiler Attach Event is also checked in the main WaitForMultipleObjects in -// WaitForFinalizerEvent -// - -// static -void FinalizerThread::ProcessProfilerAttachIfNecessary(ULONGLONG * pui64TimestampLastCheckedEventMs) -{ - STATIC_CONTRACT_NOTHROW; - STATIC_CONTRACT_GC_NOTRIGGER; - STATIC_CONTRACT_MODE_ANY; - - if (MHandles[kProfilingAPIAttach] == NULL) - { - return; - } - - if (pui64TimestampLastCheckedEventMs != NULL) - { - if (*pui64TimestampLastCheckedEventMs == 0) - { - // Just initialize timestamp and leave - *pui64TimestampLastCheckedEventMs = CLRGetTickCount64(); - return; - } - - static DWORD dwMsBetweenCheckingProfAPIAttachEvent = 0; - if (dwMsBetweenCheckingProfAPIAttachEvent == 0) - { - // First time through, initialize with how long to wait between checking the - // event. - dwMsBetweenCheckingProfAPIAttachEvent = CLRConfig::GetConfigValue( - CLRConfig::EXTERNAL_MsBetweenAttachCheck); - } - ULONGLONG ui64TimestampNowMs = CLRGetTickCount64(); - _ASSERTE(ui64TimestampNowMs >= (*pui64TimestampLastCheckedEventMs)); - if (ui64TimestampNowMs - (*pui64TimestampLastCheckedEventMs) < - dwMsBetweenCheckingProfAPIAttachEvent) - { - // Too soon, go home - return; - } - - // Otherwise, update the timestamp and wait on the finalizer event below - *pui64TimestampLastCheckedEventMs = ui64TimestampNowMs; - } - - // Check the attach event without waiting; only if it's signaled right now will we - // process the event. - if (WaitForSingleObject(MHandles[kProfilingAPIAttach], 0) != WAIT_OBJECT_0) - { - // Any return value that indicates we can't verify the attach event is signaled - // right now means we should just forget about it and immediately return to - // whatever we were doing - return; - } - - // Event is signaled; process it by spawning a new thread to do the work - ProfilingAPIAttachDetach::ProcessSignaledAttachEvent(); -} - -#endif // FEATURE_PROFAPI_ATTACH_DETACH - void FinalizerThread::WaitForFinalizerEvent (CLREvent *event) { // Non-host environment @@ -280,12 +173,6 @@ void FinalizerThread::WaitForFinalizerEvent (CLREvent *event) // kFinalizer alone (2s wait) // all events together (infinite wait) -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - // NULL means check attach event now, and don't worry about how long it was since - // the last time the event was checked. - ProcessProfilerAttachIfNecessary(NULL); -#endif // FEATURE_PROFAPI_ATTACH_DETACH - //give a chance to the finalizer event (2s) switch (event->Wait(2000, FALSE)) { @@ -321,10 +208,7 @@ void FinalizerThread::WaitForFinalizerEvent (CLREvent *event) // expect. _ASSERTE(kLowMemoryNotification == 0); _ASSERTE((kFinalizer == 1) && (MHandles[1] != NULL)); -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - _ASSERTE(kProfilingAPIAttach == 2); -#endif //FEATURE_PROFAPI_ATTACH_DETACH - + // Exclude the low-memory notification event from the wait if the event // handle is NULL or the EE isn't fully started up yet. if ((MHandles[kLowMemoryNotification] == NULL) || !g_fEEStarted) @@ -333,14 +217,6 @@ void FinalizerThread::WaitForFinalizerEvent (CLREvent *event) cEventsForWait--; } -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - // Exclude kProfilingAPIAttach if it's NULL - if (MHandles[kProfilingAPIAttach] == NULL) - { - cEventsForWait--; - } -#endif //FEATURE_PROFAPI_ATTACH_DETACH - switch (WaitForMultipleObjectsEx( cEventsForWait, // # objects to wait on &(MHandles[uiEventIndexOffsetForWait]), // array of objects to wait on @@ -374,12 +250,6 @@ void FinalizerThread::WaitForFinalizerEvent (CLREvent *event) break; case (WAIT_OBJECT_0 + kFinalizer): return; -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - case (WAIT_OBJECT_0 + kProfilingAPIAttach): - // Spawn thread to perform the profiler attach, then resume our wait - ProfilingAPIAttachDetach::ProcessSignaledAttachEvent(); - break; -#endif // FEATURE_PROFAPI_ATTACH_DETACH #if defined(__linux__) && defined(FEATURE_EVENT_TRACE) case (WAIT_TIMEOUT + kLowMemoryNotification): case (WAIT_TIMEOUT + kFinalizer): @@ -560,24 +430,6 @@ DWORD WINAPI FinalizerThread::FinalizerThreadStart(void *args) EnsureYieldProcessorNormalizedInitialized(); -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - // Add the Profiler Attach Event to the array of event handles that the - // finalizer thread waits on. If the process is not enabled for profiler - // attach (e.g., running memory- or sync-hosted, or there is some other error - // that causes the Profiler Attach Event not to be created), then this just - // adds NULL in the slot where the Profiler Attach Event handle would go. In - // this case, WaitForFinalizerEvent will know to ignore that handle when it - // waits. - // - // Calling ProfilingAPIAttachDetach::GetAttachEvent induces lazy - // initialization of the profiling API attach/detach support objects, - // including the event itself and its security descriptor. So switch to - // preemptive mode during these OS calls - GetFinalizerThread()->EnablePreemptiveGC(); - MHandles[kProfilingAPIAttach] = ::ProfilingAPIAttachDetach::GetAttachEvent(); - GetFinalizerThread()->DisablePreemptiveGC(); -#endif // FEATURE_PROFAPI_ATTACH_DETACH - while (!fQuitFinalizer) { // This will apply any policy for swallowing exceptions during normal diff --git a/src/vm/finalizerthread.h b/src/vm/finalizerthread.h index 3a62814d18..3a398136f1 100644 --- a/src/vm/finalizerthread.h +++ b/src/vm/finalizerthread.h @@ -26,11 +26,6 @@ class FinalizerThread { kLowMemoryNotification = 0, kFinalizer = 1, - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - kProfilingAPIAttach = 2, -#endif // FEATURE_PROFAPI_ATTACH_DETACH - kHandleCount, }; @@ -38,10 +33,6 @@ class FinalizerThread static void WaitForFinalizerEvent (CLREvent *event); -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - static void ProcessProfilerAttachIfNecessary(ULONGLONG * pui64TimestampLastCheckedEventMs); -#endif // FEATURE_PROFAPI_ATTACH_DETACH - static void DoOneFinalization(Object* fobj, Thread* pThread); static void FinalizeAllObjects(int bitToCheck); diff --git a/src/vm/profattach.cpp b/src/vm/profattach.cpp deleted file mode 100644 index cae073c15b..0000000000 --- a/src/vm/profattach.cpp +++ /dev/null @@ -1,1215 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttach.cpp -// - -// -// Definitions of functions that help with attaching and detaching profilers -// - -// ====================================================================================== - - -#include "common.h" - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - -#include <sddl.h> // Windows security descriptor language -#include <SecurityUtil.h> -#include "eeprofinterfaces.h" -#include "eetoprofinterfaceimpl.h" -#include "corprof.h" -#include "proftoeeinterfaceimpl.h" -#include "proftoeeinterfaceimpl.inl" -#include "profilinghelper.h" -#include "profilinghelper.inl" -#include "profattach.h" -#include "profattach.inl" -#include "securitywrapper.h" -#include "profattachserver.h" -#include "profattachserver.inl" -#include "profattachclient.h" -#include "profdetach.h" - -PSECURITY_DESCRIPTOR ProfilingAPIAttachDetach::s_pSecurityDescriptor = NULL; -HANDLE ProfilingAPIAttachDetach::s_hAttachEvent = NULL; -ProfilingAPIAttachDetach::AttachThreadingMode ProfilingAPIAttachDetach::s_attachThreadingMode = - ProfilingAPIAttachDetach::kUninitialized; -BOOL ProfilingAPIAttachDetach::s_fInitializeCalled = FALSE; - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::OverlappedResultHolder implementation. See -// code:ProfilingAPIAttachDetach::OverlappedResultHolder for more information -// - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::OverlappedResultHolder::Initialize -// -// Description: -// Call this first! This initializes the contained OVERLAPPED structure -// -// Return Value: -// Returns E_OUTOFMEMORY if OVERLAPPED structure could not be allocated. -// Else S_OK. -// - -HRESULT ProfilingAPIAttachDetach::OverlappedResultHolder::Initialize() -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - } - CONTRACTL_END; - - Assign(new (nothrow) OVERLAPPED); - if (m_value == NULL) - { - return E_OUTOFMEMORY; - } - - memset(m_value, 0, sizeof(OVERLAPPED)); - return S_OK; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::OverlappedResultHolder::Wait -// -// Description: -// Uses the contained OVERLAPPED structure (pointed to by m_value) to call -// WaitForSingleObject to wait for an overlapped read or write on the pipe to complete -// (or timeout). -// -// Arguments: -// * dwMillisecondsMax - [in] Timeout for the wait -// * hPipe - [in] Handle to the pipe object carrying out the request (may be either a -// server or client pipe handle). -// * pcbReceived - [out] Number of bytes received from the overlapped request -// -// Return Value: -// HRESULT indicating success or failure -// -// Assumptions: -// * Must call code:ProfilingAPIAttachDetach::OverlappedResultHolder::Initialize first - -HRESULT ProfilingAPIAttachDetach::OverlappedResultHolder::Wait( - DWORD dwMillisecondsMax, - HANDLE hPipe, - DWORD * pcbReceived) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(hPipe)); - _ASSERTE(m_value != NULL); - _ASSERTE(pcbReceived != NULL); - - HRESULT hr = E_UNEXPECTED; - - // Since the OVERLAPPED structure referenced by m_value contains a NULL event, the OS - // will signal hPipe itself when the operation is complete - switch (WaitForSingleObject(hPipe, dwMillisecondsMax)) - { - default: - _ASSERTE(!"Unexpected return from WaitForSingleObject()"); - hr = E_UNEXPECTED; - break; - - case WAIT_FAILED: - hr = HRESULT_FROM_GetLastError(); - break; - - case WAIT_TIMEOUT: - hr = HRESULT_FROM_WIN32(ERROR_TIMEOUT); - break; - - case WAIT_OBJECT_0: - // Operation finished in time. Get the results - if (!GetOverlappedResult( - hPipe, - m_value, - pcbReceived, - TRUE)) // bWait: operation is done, so this returns immediately anyway - { - hr = HRESULT_FROM_GetLastError(); - } - else - { - hr = S_OK; - } - break; - } - - // The gymnastics below are to ensure that Windows is done with the overlapped - // structure, so we know it's safe to allow the base class (NewHolder) to free it - // when the destructor is called. - - if (SUCCEEDED(hr)) - { - // Operation successful, so we're done with the OVERLAPPED structure pointed to - // by m_value and may return - return hr; - } - - _ASSERTE(FAILED(hr)); - - // There was a failure waiting for or retrieving the result. Cancel the operation and - // wait again for verification that the operation is completed or canceled. - - // Note that we're ignoring whether CancelIo succeeds or fails, as our action is the - // same either way: Wait on the pipe again to verify that no active operation remains. - CancelIo(hPipe); - - if (WaitForSingleObject(hPipe, dwMillisecondsMax) == WAIT_OBJECT_0) - { - // Typical case: The wait returns successfully and quickly, so we have - // verification that the OVERLAPPED structured pointed to by m_value is done - // being used. - return hr; - } - - // Atypical case: For all our trying, we're unable to force this request to end - // before returning. Therefore, we're intentionally leaking the OVERLAPPED structured - // pointed to by m_value, as Windows may write to it at a later time. - SuppressRelease(); - return hr; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::ProfilingAPIAttachThreadStart -// -// Description: -// Thread proc for AttachThread. Serves as simple try/catch wrapper around -// ProfilingAPIAttachThreadMain -// -// Arguments: -// * LPVOID thread proc param is ignored -// -// Return Value: -// Just returns 0 always. -// - -// static -DWORD WINAPI ProfilingAPIAttachDetach::ProfilingAPIAttachThreadStart(LPVOID) -{ - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - // At start of this thread, set its type so SOS !threads and anyone else knows who we - // are. - ClrFlsSetThreadType(ThreadType_ProfAPI_Attach); - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF: AttachThread created and executing.\n")); - - // This try block is a last-ditch stop-gap to prevent an unhandled exception on the - // AttachThread from bringing down the process. Note that if the unhandled - // exception is a terminal one, then hey, sure, let's tear everything down. Also - // note that any naughtiness in the profiler (e.g., throwing an exception from its - // Initialize callback) should already be handled before we pop back to here, so this - // is just being super paranoid. - EX_TRY - { - // Don't care about return value, thread proc will just return 0 regardless - ProfilingAPIAttachThreadMain(); - } - EX_CATCH - { - _ASSERTE(!"Unhandled exception on profiling API attach / detach thread"); - } - EX_END_CATCH(RethrowTerminalExceptions); - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF: AttachThread exiting.\n")); - - return 0; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::ProfilingAPIAttachThreadMain -// -// Description: -// Main code for AttachThread. Includes all attach functionality. -// -// Return Value: -// S_OK if a profiler ever attached, error HRESULT otherwise -// - -// static -HRESULT ProfilingAPIAttachDetach::ProfilingAPIAttachThreadMain() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - HRESULT hr; - - ProfilingAPIAttachServer attachServer; - hr = attachServer.ExecutePipeRequests(); - if (FAILED(hr)) - { - // No profiler got attached, so we're done - return hr; - } - - // If we made it here, a profiler was successfully attached. It would be nice to be - // able to assert g_profControlBlock.curProfStatus.Get() == kProfStatusActive, but - // that's prone to a theoretical race: the profiler might have attached and detached - // by the time we get here. - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::InitSecurityAttributes -// -// Description: -// Initializes a SECURITY_ATTRIBUTES struct using the result of -// code:ProfilingAPIAttachDetach::GetSecurityDescriptor -// -// Arguments: -// * pSecAttrs - [in/out] SECURITY_ATTRIBUTES struct to initialize -// * cbSecAttrs - Size in bytes of *pSecAttrs -// -// Return Value: -// HRESULT indicating success or failure -// - -// static -HRESULT ProfilingAPIAttachDetach::InitSecurityAttributes( - SECURITY_ATTRIBUTES * pSecAttrs, - DWORD cbSecAttrs) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - PSECURITY_DESCRIPTOR psd = NULL; - HRESULT hr = GetSecurityDescriptor(&psd); - if (FAILED(hr)) - { - return hr; - } - - _ASSERTE(psd != NULL); - memset(pSecAttrs, 0, cbSecAttrs); - pSecAttrs->nLength = cbSecAttrs; - pSecAttrs->lpSecurityDescriptor = psd; - pSecAttrs->bInheritHandle = FALSE; - - return S_OK; -} - -//--------------------------------------------------------------------------------------- -// -// Helper function that gets the string (SDDL) form of the mandatory SID for this -// process. This encodes the integrity level of the process for use in security -// descriptors. The integrity level is capped at "high". See code:#HighGoodEnough. -// -// Arguments: -// * pwszIntegritySidString - [out] On return will point to a buffer allocated by -// Windows that contains the string representation of the SID. If -// GetIntegritySidString succeeds, the caller is responsible for freeing -// *pwszIntegritySidString via LocalFree(). -// -// Return Value: -// HRESULT indicating success or failure. -// -// - -static HRESULT GetIntegritySidString(__out LPWSTR * pwszIntegritySidString) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - HRESULT hr; - _ASSERTE(pwszIntegritySidString != NULL); - - NewArrayHolder<BYTE> pbLabel; - - // This grabs the mandatory label SID of the current process. We will write this - // SID into the security descriptor, to ensure that triggers of lower integrity - // levels may NOT access the object... with one exception. See code:#HighGoodEnough - hr = SecurityUtil::GetMandatoryLabelFromProcess(GetCurrentProcess(), &pbLabel); - if (FAILED(hr)) - { - return hr; - } - - TOKEN_MANDATORY_LABEL * ptml = (TOKEN_MANDATORY_LABEL *) pbLabel.GetValue(); - - // #HighGoodEnough: - // The mandatory label SID we write into the security descriptor is the same as that - // of the current process, with one exception. If the current process's integrity - // level > high (e.g., ASP.NET running at "system" integrity level), then write - // "high" into the security descriptor instead of the current process's actual - // integrity level. This allows a high integrity trigger to access the object. This - // implements the policy that a high integrity level is "good enough" to profile any - // process, even if the target process is at an even higher integrity level than - // "high". Why have this policy: - // * A high integrity process represents an elevated admin, which morally equates - // to a principal that should have complete control over the machine. This - // includes debugging or profiling any process. - // * According to a security expert dev on Windows, integrity level is not a - // "security feature". It's mainly useful as defense-in-depth or to protect - // IE users and admins from themselves in most cases. - // * It's impossible to spawn a system integrity trigger process outside of - // session 0 services. So profiling ASP.NET would be really hard without this - // policy. - DWORD * pdwIntegrityLevel = SecurityUtil::GetIntegrityLevelFromMandatorySID(ptml->Label.Sid); - if (*pdwIntegrityLevel > SECURITY_MANDATORY_HIGH_RID) - { - *pdwIntegrityLevel = SECURITY_MANDATORY_HIGH_RID; - } - - if (!ConvertSidToStringSid(ptml->Label.Sid, pwszIntegritySidString)) - { - return HRESULT_FROM_GetLastError(); - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::GetSecurityDescriptor -// -// Description: -// Generates a security descriptor based on an ACL containing (1) an ACE that allows -// the current user read / write and (2) an ACE that allows admins read / write. -// Resulting security descriptor is returned in an [out] param, and is also cached for -// future use. -// -// Arguments: -// * ppsd - [out] Generated (or cached) security descriptor -// -// Return Value: -// HRESULT indicating success or failure. -// - -// static -HRESULT ProfilingAPIAttachDetach::GetSecurityDescriptor(PSECURITY_DESCRIPTOR * ppsd) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(ppsd != NULL); - - if (s_pSecurityDescriptor != NULL) - { - *ppsd = s_pSecurityDescriptor; - return S_OK; - } - - // Get the user SID for the DACL - - PSID psidUser = NULL; - HRESULT hr = ProfilingAPIUtility::GetCurrentProcessUserSid(&psidUser); - if (FAILED(hr)) - { - return hr; - } - - WinAllocatedBlockHolder pvCurrentUserSidString; - - if (!ConvertSidToStringSid(psidUser, (LPWSTR *)(LPVOID *) &pvCurrentUserSidString)) - { - return HRESULT_FROM_GetLastError(); - } - - // Get the integrity / mandatory SID for the SACL, if Vista+ - - LPCWSTR pwszIntegritySid = NULL; - WinAllocatedBlockHolder pvIntegritySidString; - - hr = GetIntegritySidString((LPWSTR *) (LPVOID *) &pvIntegritySidString); - if (FAILED(hr)) - { - return hr; - } - pwszIntegritySid = (LPCWSTR) pvIntegritySidString.GetValue(); - - ULONG cbsd; - StackSString sddlSecurityDescriptor; - WinAllocatedBlockHolder pvSecurityDescriptor; - - // The following API (ConvertStringSecurityDescriptorToSecurityDescriptorW) takes a - // string representation of a security descriptor (using the SDDL language), and - // returns back the security descriptor object to be used when defining the globally - // named event or pipe object. For a description of this language, go to the help on - // the API, and click on "string-format security descriptor": - // http://msdn.microsoft.com/library/default.asp?url=/library/en-us/secauthz/security/security_descriptor_string_format.asp - // or look through sddl.h. - - // Cheat sheet for the subset of the format that we're using: - // - // Security Descriptor string: - // D:dacl_flags(string_ace1)(string_ace2)... (string_acen) - // Security SACL string: - // S:sacl_flags(string_ace1)(string_ace2)... (string_acen) - // Each string_ace: - // ace_type;ace_flags;rights;object_guid;inherit_object_guid;account_sid - // - // The following portions of the security descriptor string are NOT used: - // O:owner_sid (b/c we want current user to be the owner) - // G:group_sid (b/c not setting the primary group of the object) - - // This reusable chunk defines the "(string_ace)" portion of the DACL. Given - // a SID, this makes an ACE for the SID with GENERIC_READ | GENERIC_WRITE access - #define ACE_STRING(AccountSidString) \ - \ - SDDL_ACE_BEGIN \ - \ - /* ace_type: "A;" An "allow" DACL (not "deny") */ \ - SDDL_ACCESS_ALLOWED SDDL_SEPERATOR \ - \ - /* (skipping ace_flags, so that no child auto-inherits from this object) */ \ - SDDL_SEPERATOR \ - \ - /* rights: "GRGW": GENERIC_READ | GENERIC_WRITE access allowed */ \ - SDDL_GENERIC_READ SDDL_GENERIC_WRITE SDDL_SEPERATOR \ - \ - /* (skipping object_guid) */ \ - SDDL_SEPERATOR \ - \ - /* (skipping inherit_object_guid) */ \ - SDDL_SEPERATOR \ - \ - /* account_sid (filled in by macro user) */ \ - AccountSidString \ - \ - SDDL_ACE_END - - - // First, construct the DACL - - sddlSecurityDescriptor.Printf( - // "D:" This is a DACL - SDDL_DACL SDDL_DELIMINATOR - - // dacl_flags: - - // "P" This is protected (i.e., don't allow security descriptor to be modified - // by inheritable ACEs) - SDDL_PROTECTED - - // (string_ace1) - // account_sid: "BA" built-in local administrators group - ACE_STRING(SDDL_BUILTIN_ADMINISTRATORS) - - // (string_ace2) - // account_sid: to be filled in with the current process token's primary SID - ACE_STRING(W("%s")), - - // current process token's primary SID - (LPCWSTR) (LPVOID) pvCurrentUserSidString); - - // Next, add the SACL (Vista+ only) - - if (pwszIntegritySid != NULL) - { - sddlSecurityDescriptor.AppendPrintf( - // "S:" This is a SACL -- for the integrity level of the current process - SDDL_SACL SDDL_DELIMINATOR - - // The SACL ACE begins here - SDDL_ACE_BEGIN - - // ace_type: "ML;" A Mandatory Label ACE (i.e., integrity level) - SDDL_MANDATORY_LABEL SDDL_SEPERATOR - - // (skipping ace_flags, so that no child auto-inherits from this object) - SDDL_SEPERATOR - - // rights: "NWNR;" If the trigger's integrity level is lower than the - // integrity level we're writing into this security descriptor, then that - // trigger may not read or write to this object. - SDDL_NO_WRITE_UP SDDL_NO_READ_UP SDDL_SEPERATOR - - // (skipping object_guid) - SDDL_SEPERATOR - - // (skipping inherit_object_guid) - SDDL_SEPERATOR - - // To be filled in with the current process's mandatory label SID (which - // describes the current process's integrity level, capped at "high integrity") - W("%s") - - SDDL_ACE_END, - - // current process's mandatory label SID - pwszIntegritySid); - } - - if (!ConvertStringSecurityDescriptorToSecurityDescriptorW( - sddlSecurityDescriptor.GetUnicode(), - SDDL_REVISION_1, - (PSECURITY_DESCRIPTOR *) (LPVOID *) &pvSecurityDescriptor, - &cbsd)) - { - return HRESULT_FROM_GetLastError(); - } - - if (FastInterlockCompareExchangePointer( - &s_pSecurityDescriptor, - (PSECURITY_DESCRIPTOR) pvSecurityDescriptor, - NULL) == NULL) - { - // Ownership transferred to s_pSecurityDescriptor, so don't free it here - pvSecurityDescriptor.SuppressRelease(); - } - - _ASSERTE(s_pSecurityDescriptor != NULL); - *ppsd = s_pSecurityDescriptor; - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::Initialize -// -// Description: -// Perform startup (one-time-only) initialization for attach / detach infrastructure. -// This includes the Global Attach Event, but does NOT include the Global Attach Pipe -// (which is created only on demand). This is lazily called the first time the -// finalizer asks for the attach event. -// -// Return Value: -// S_OK: Attach / detach infrastructure initialized ok -// S_FALSE: Attach / detach infrastructure not initialized, but for an acceptable reason -// (e.g., executing memory- or sync- hosted) -// else: error HRESULT indicating an unacceptable failure that prevented attach / -// detach infrastructure from initializing (e.g., security problem, OOM, etc.) -// -// Assumptions: -// * By the time this is called: -// * Configuration must have been read from the registry -// * If there is a host, it has already initialized its state, including its -// intent to memory-host or sync-host. -// * Finalizer thread is initializing and is first asking for the attach event. -// - -// static -HRESULT ProfilingAPIAttachDetach::Initialize() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - // This one assert verifies two things: - // * 1. Configuration has been read from the registry, AND - // * 2. If there is a host, it has already initialized its state. - // #2 is implied by this assert, because the host initializes its state before - // EEStartup is even called: Host directly calls CorHost2::SetHostControl to - // initialize itself, announce whether the CLR will be memory hosted, sync hosted, - // etc., and then host calls CorHost2::Start, which calls EEStartup, which - // initializes configuration information. So if configuration information is - // available, the host must have already initialized itself. - // - // The reason we care is that, for profiling API attach to be enabled during this - // run, we need to have the finalizer thread wait on multiple sync objects. And - // waiting on multiple objects is disallowed if we're memory / sync-hosted. So we - // need to know now whether waiting on multiple objects is allowed, so we know - // whether we can initialize the Attach support objects. - _ASSERTE(g_pConfig != NULL); - - // Even if we fail to create the event, this BOOL indicates we at least - // tried to. - _ASSERTE(!s_fInitializeCalled); - s_fInitializeCalled = TRUE; - - INDEBUG(VerifyMessageStructureLayout()); - - InitializeAttachThreadingMode(); - - if (s_attachThreadingMode == kOnDemand) - { - return InitializeForOnDemandMode(); - } - - _ASSERTE(s_attachThreadingMode == kAlwaysOn); - return InitializeForAlwaysOnMode(); -} - -#ifdef _DEBUG - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::VerifyMessageStructureLayout -// -// Description: -// Debug-only function that asserts if there appear to be changes to structures that -// are not allowed to change (for backward-compatibility reasons). In particular: -// * BaseRequestMessage must not change -// - -// static -void ProfilingAPIAttachDetach::VerifyMessageStructureLayout() -{ - LIMITED_METHOD_CONTRACT; - - // If any of these asserts fire, then GetVersionRequestMessage is changing its binary - // layout in an incompatible way. Bad! - _ASSERTE(sizeof(GetVersionRequestMessage) == 8); - _ASSERTE(offsetof(GetVersionRequestMessage, m_cbMessage) == 0); - _ASSERTE(offsetof(GetVersionRequestMessage, m_requestMessageType) == 4); - - // If any of these asserts fire, then GetVersionResponseMessage is changing its binary - // layout in an incompatible way. Bad! - _ASSERTE(sizeof(GetVersionResponseMessage) == 12); - _ASSERTE(offsetof(GetVersionResponseMessage, m_hr) == 0); - _ASSERTE(offsetof(GetVersionResponseMessage, m_profileeVersion) == 4); - _ASSERTE(offsetof(GetVersionResponseMessage, m_minimumAllowableTriggerVersion) == 8); -} - -#endif //_DEBUG - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::InitializeAttachThreadingMode -// -// Description: -// Looks at environment and GC mode to determine whether the AttachThread should -// always be around, or created only on demand. See -// code:ProfilingAPIAttachDetach::AttachThreadingMode. -// - -// static -void ProfilingAPIAttachDetach::InitializeAttachThreadingMode() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(s_attachThreadingMode == kUninitialized); - - // Environment variable trumps all, so check it first - DWORD dwAlwaysOn = g_pConfig->GetConfigDWORD_DontUse_( - CLRConfig::EXTERNAL_AttachThreadAlwaysOn, - GCHeapUtilities::IsServerHeap() ? 1 : 0); // Default depends on GC server mode - - if (dwAlwaysOn == 0) - { - s_attachThreadingMode = kOnDemand; - } - else - { - s_attachThreadingMode = kAlwaysOn; - } -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::InitializeForAlwaysOnMode -// -// Description: -// Performs initialization specific to running in Always On mode. Specifically, this -// means creating the AttachThread. The attach event is not created in this case. -// -// Return Value: -// HRESULT indicating success or failure. -// - -// static -HRESULT ProfilingAPIAttachDetach::InitializeForAlwaysOnMode() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(s_attachThreadingMode == kAlwaysOn); - - LOG((LF_CORPROF, LL_INFO10, "**PROF: Attach AlwaysOn mode invoked; creating new AttachThread.\n")); - - CreateAttachThread(); - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::InitializeForOnDemandMode -// -// Description: -// Performs initialization specific to running in On Demand mode. Specifically, this -// means creating the attach event. (The AttachThread will only be created when this -// event is signaled by a trigger process.) -// -// Return Value: -// HRESULT indicating success or failure. -// - -// static -HRESULT ProfilingAPIAttachDetach::InitializeForOnDemandMode() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(s_attachThreadingMode == kOnDemand); - - LOG((LF_CORPROF, LL_INFO10, "**PROF: Attach OnDemand mode invoked; creating attach event.\n")); - - // The only part of attach that gets initialized before a profiler has - // actually requested to attach is the single global event that gets - // signaled from out-of-process. - - StackSString attachEventName; - HRESULT hr; - hr = GetAttachEventName(::GetCurrentProcess(), &attachEventName); - if (FAILED(hr)) - { - return hr; - } - - // Deliberately NOT using CLREvent, as it does not have support for a global name. - // It's ok not to use CLREvent, as we're assured above that we're not sync-hosted, - // which means CLREvent would just use raw Windows events anyway. - - SECURITY_ATTRIBUTES *psa = NULL; - - SECURITY_ATTRIBUTES sa; - - // Only assign security attributes for non-app container scenario - // We are assuming the default (blocking everything for app container scenario is good enough - if (!IsAppContainerProcess(::GetCurrentProcess())) - { - hr = InitSecurityAttributes(&sa, sizeof(sa)); - if (FAILED(hr)) - { - return hr; - } - - psa = &sa; - } - - _ASSERTE(s_hAttachEvent == NULL); - s_hAttachEvent = WszCreateEvent( - psa, // security attributes - FALSE, // bManualReset = FALSE: autoreset after waiting thread is unblocked - FALSE, // initial state = FALSE, i.e., unsignaled - attachEventName.GetUnicode() // Global name seen out-of-proc - ); - if (s_hAttachEvent == NULL) - { - return HRESULT_FROM_GetLastError(); - } - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::GetAttachEvent -// -// Description: -// Used by finalizer thread to get the profiling API attach event. First time this is -// called, the event and other supporting objects will be created. -// -// Return Value: -// The attach event or NULL if attach event creation failed during startup. In either -// case, do NOT call CloseHandle on the returned event handle. -// -// Assumptions: -// * ProfilingAPIUtility::InitializeProfiling should already have been called before -// this is called. That ensures that, if a profiler was configured to load on -// startup, then that load has already occurred by now. -// * The event's HANDLE refcount is managed solely by ProfilingAPIAttachDetach. So do -// not call CloseHandle() on the HANDLE returned. -// -// Notes: -// * If the attach event was not created on startup, then this will return NULL. -// Possible reasons why this can occur: -// * The current process is the NGEN service, OR -// * The process is sync- or memory- hosted, OR -// * Attach is running in "always on" mode, meaning we always have an AttachThread -// with a pipe, so there's no need for an event. -// - -// static -HANDLE ProfilingAPIAttachDetach::GetAttachEvent() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - if (IsCompilationProcess()) - { - // No profiler attach on NGEN! - return NULL; - } - - if (!s_fInitializeCalled) - { - // If a profiler was supposed to load on startup, it's already happened - // now. So it's safe to set up the attach support objects, and allow - // an attaching profiler to make an attempt (which can now gracefully fail - // if a startup profiler has loaded). - - HRESULT hr = Initialize(); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: ProfilingAPIAttachDetach::Initialize failed, so this process will not " - "be able to attach a profiler. hr=0x%x.\n", - hr)); - ProfilingAPIUtility::LogProfError(IDS_E_PROF_ATTACH_INIT, hr); - - return NULL; - } - } - - if (s_attachThreadingMode == kAlwaysOn) - { - // In always-on mode, we always have an AttachThread listening on the pipe, so - // there's no need for an event. - _ASSERTE(s_hAttachEvent == NULL); - } - - return s_hAttachEvent; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::ProcessSignaledAttachEvent -// -// Description: -// Called by finalizer thread when the finalizer thread detects that the globally -// named Profiler Attach Event is signaled. This simply spins up the AttachThread -// (starting in ProfilingAPIAttachThreadStart) and returns. -// - -// static -void ProfilingAPIAttachDetach::ProcessSignaledAttachEvent() -{ - // This function is practically a leaf (though not quite), and is called from the - // finalizer thread at various points, so keeping the contract strict to allow for - // maximum flexibility on when this may called. - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - LOG((LF_CORPROF, LL_INFO10, "**PROF: Attach event signaled; creating new AttachThread.\n")); - - CreateAttachThread(); -} - -typedef BOOL -(WINAPI *PFN_GetAppContainerNamedObjectPath)( - HANDLE Token, - PSID AppContainerSid, - ULONG ObjectPathLength, - WCHAR * ObjectPath, - PULONG ReturnLength - ); - -static Volatile<PFN_GetAppContainerNamedObjectPath> g_pfnGetAppContainerNamedObjectPath = NULL; - -// ---------------------------------------------------------------------------- -// GetAppContainerNamedObjectPath -// -// Description: -// Retrieve named object path for the specified app container process -// The name looks something like the following: -// LowBoxNamedObjects\<AppContainer_SID> -// AppContainer_SID is the SID for the app container, for example: S-1-15-2-3-4-5-6-7-8 -// -// Arguments: -// * hProcess - handle of the app container proces -// * wszObjectPath - [out] Buffer to fill in -// * dwObjectPathSizeInChar - Size of buffer -// -HRESULT ProfilingAPIAttachDetach::GetAppContainerNamedObjectPath(HANDLE hProcess, __out_ecount(dwObjectPathSizeInChar) WCHAR * wszObjectPath, DWORD dwObjectPathSizeInChar) -{ - LIMITED_METHOD_CONTRACT; - - _ASSERTE(wszObjectPath != NULL); - - HandleHolder hToken; - - if (!OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)) - { - return HRESULT_FROM_GetLastError(); - } - - if (g_pfnGetAppContainerNamedObjectPath.Load() == NULL) - { - HMODULE hMod = WszGetModuleHandle(W("kernel32.dll")); - if (hMod == NULL) - { - // This should never happen but I'm checking it anyway - return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); - } - - PFN_GetAppContainerNamedObjectPath pfnGetAppContainerNamedObjectPath = (PFN_GetAppContainerNamedObjectPath) - ::GetProcAddress( - hMod, - "GetAppContainerNamedObjectPath"); - - if (!pfnGetAppContainerNamedObjectPath) - { - - return HRESULT_FROM_GetLastError(); - } - - // We should always get the same address back from GetProcAddress so there is no concern for race condition - g_pfnGetAppContainerNamedObjectPath = pfnGetAppContainerNamedObjectPath; - } - - DWORD dwBufferLength; - if (!g_pfnGetAppContainerNamedObjectPath( - hToken, // Process token - NULL, // AppContainer package SID optional. - dwObjectPathSizeInChar, // Object path length - wszObjectPath, // Object path - &dwBufferLength // return length - )) - { - return HRESULT_FROM_GetLastError(); - } - - return S_OK; -} - - -// @TODO: Update this once Windows header file is updated to Win8 -#ifndef TokenIsAppContainer - #define TokenIsAppContainer ((TOKEN_INFORMATION_CLASS) 29) -#endif - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::IsAppContainerProcess -// -// Description: -// Return whether the specified process is a app container process -// - -// static -BOOL ProfilingAPIAttachDetach::IsAppContainerProcess(HANDLE hProcess) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - HandleHolder hToken; - - if(!::OpenProcessToken(hProcess, TOKEN_QUERY, &hToken)) - { - return FALSE; - } - - BOOL fIsAppContainerProcess; - DWORD dwReturnLength; - if (!::GetTokenInformation( - hToken, - TokenIsAppContainer, - &fIsAppContainerProcess, - sizeof(BOOL), - &dwReturnLength) || - dwReturnLength != sizeof(BOOL)) - { - return FALSE; - } - else - { - return fIsAppContainerProcess; - } -} - -//--------------------------------------------------------------------------------------- -// -// Called by other points in the runtime (e.g., finalizer thread) to create a new thread -// to fill the role of the AttachThread. -// - -// static -void ProfilingAPIAttachDetach::CreateAttachThread() -{ - // This function is practically a leaf (though not quite), and is called from the - // finalizer thread at various points, so keeping the contract strict to allow for - // maximum flexibility on when this may called. - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - HandleHolder hAttachThread; - - // The AttachThread is intentionally not an EE Thread-object thread - hAttachThread = ::CreateThread( - NULL, // lpThreadAttributes; don't want child processes inheriting this handle - 0, // dwStackSize (0 = use default) - ProfilingAPIAttachThreadStart, - NULL, // lpParameter (none to pass) - 0, // dwCreationFlags (0 = use default flags, start thread immediately) - NULL // lpThreadId (don't need therad ID) - ); - if (hAttachThread == NULL) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Failed to create AttachThread. GetLastError=%d.\n", - GetLastError())); - - // No other error-specific code really makes much sense here. An error here is - // probably due to serious OOM issues which would also probably prevent logging - // an event. A trigger process will report that it waited for the pipe to be - // created, and timed out during the wait. That should be enough for the user. - } -} - -// ---------------------------------------------------------------------------- -// CLRProfilingImpl::AttachProfiler -// -// Description: -// A wrapper COM function to invoke AttachProfiler with parameters from -// profiling trigger along with a runtime version string -// -HRESULT CLRProfilingImpl::AttachProfiler(DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID *pClsidProfiler, - LPCWSTR wszProfilerPath, - void *pvClientData, - UINT cbClientData) -{ - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - WCHAR wszRuntimeVersion[MAX_PATH_FNAME]; - DWORD dwSize = _countof(wszRuntimeVersion); - HRESULT hr = GetCORVersionInternal(wszRuntimeVersion, dwSize, &dwSize); - if (FAILED(hr)) - return hr; - - return ::AttachProfiler(dwProfileeProcessID, - dwMillisecondsMax, - pClsidProfiler, - wszProfilerPath, - pvClientData, - cbClientData, - wszRuntimeVersion); -} - - -// Contract for public APIs. These must be NOTHROW. -EXTERN_C const IID IID_ICLRProfiling; - -HRESULT -CreateCLRProfiling( - __out void ** ppCLRProfilingInstance) -{ - CONTRACTL - { - NOTHROW; - } - CONTRACTL_END; - - HRESULT hrIgnore = S_OK; // ignored HResult - HRESULT hr = S_OK; - HMODULE hMod = NULL; - IUnknown * pCordb = NULL; - - LOG((LF_CORDB, LL_EVERYTHING, "Calling CreateCLRProfiling")); - - NewHolder<CLRProfilingImpl> pProfilingImpl = new (nothrow) CLRProfilingImpl(); - if (pProfilingImpl == NULL) - return E_OUTOFMEMORY; - - hr = pProfilingImpl->QueryInterface(IID_ICLRProfiling, ppCLRProfilingInstance); - if (SUCCEEDED(hr)) - { - pProfilingImpl.SuppressRelease(); - return S_OK; - } - return E_FAIL; -} - -#endif // FEATURE_PROFAPI_ATTACH_DETACH diff --git a/src/vm/profattach.h b/src/vm/profattach.h deleted file mode 100644 index 9ccc863e33..0000000000 --- a/src/vm/profattach.h +++ /dev/null @@ -1,399 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttach.h -// - -// -// Declaration of functions that help with attaching and detaching profilers, including -// message structures that are passed back and forth between the trigger (client) and -// the target profilee (server). For code specific to triggers and profilees, see -// code:ProfilingAPIAttachClient and code:ProfilingAPIAttachServer, respectively. -// - -// ====================================================================================== - -#ifndef __PROF_ATTACH_H__ -#define __PROF_ATTACH_H__ - -#include "internalunknownimpl.h" -#include "corprof.h" - - -//--------------------------------------------------------------------------------------- -// Types of request messages that may be sent from trigger across the pipe -// -enum RequestMessageType -{ - // Client (trigger) asks server (profilee) for server's version information. - // The message type must be code:ProfilingAPIAttachDetach::BaseRequestMessage - kMsgGetVersion, - - // Client (trigger) asks server (profilee) to attach the profiler. The message - // type must be code:ProfilingAPIAttachDetach::AttachRequestMessage or AttachRequestMessageV2 - kMsgAttach, - - kMsgCount -}; - - -// --------------------------------------------------------------------------------------- -// Base request message format. All request messages sent by trigger across pipe derive -// from this. -// -// **** COMPATIBILITY WARNING *** -// -// You are not allowed to change this structure in such a way as would modify the binary -// layout of derived type GetVersionRequestMessage, or else the trigger & profilee will -// be unable to negotiate version information. Asserts in -// code:ProfilingAPIAttachDetach::VerifyMessageStructureLayout attempt to enforce this. -// -// **** COMPATIBILITY WARNING *** -// -struct BaseRequestMessage -{ -public: - // Total size of the message (including size of derived type, client data, etc., if - // present in the message) - DWORD m_cbMessage; - - // What kind of message is this? - RequestMessageType m_requestMessageType; - - BaseRequestMessage(DWORD cbMessage, RequestMessageType requestMessageType); - -private: - // Use parameterized constructor above to initialize this struct - BaseRequestMessage(); -}; - - -// --------------------------------------------------------------------------------------- -// Message format for requesting version information from the target profilee -// -// **** COMPATIBILITY WARNING *** -// -// You are not allowed to change the binary layout of this structure, or else the trigger -// & profilee will be unable to negotiate version information. Asserts in -// code:ProfilingAPIAttachDetach::VerifyMessageStructureLayout attempt to enforce this. -// -// **** COMPATIBILITY WARNING *** -// -struct GetVersionRequestMessage : public BaseRequestMessage -{ -public: - GetVersionRequestMessage(); -}; - - -//--------------------------------------------------------------------------------------- -// Attach request message format. A kMsgAttach message sent by trigger must be of this -// type. -struct AttachRequestMessage : public BaseRequestMessage -{ -public: - // Trigger sends its version info here. This allows the target profilee to - // customize its response for the format expected by the trigger. - UINT m_triggerVersion; - - // The GUID of the profiler's COM object to load - CLSID m_clsidProfiler; - - // The path to the profiler's COM object to load - WCHAR m_wszProfilerPath[MAX_LONGPATH]; - - // Client data is custom data that the profiler's - // trigger-process wishes to copy into this process. - // Profiler authors will typically use this as a way to - // communicate to the profiler DLL what options the profiler - // user has chosen. This will help the profiler DLL configure - // itself (e.g., to determine which callbacks to request). - // - // Since the client data is variable length, and we may - // want to tail-extend this structure in the future, we use - // an offset to point to the client data. Client data - // begins at this + m_dwClientDataStartOffset bytes. - DWORD m_dwClientDataStartOffset; - DWORD m_cbClientDataLength; - - AttachRequestMessage( - DWORD cbMessage, - const UINT & triggerVersion, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - DWORD dwClientDataStartOffset, - DWORD cbClientDataLength); - -private: - // Use parameterized constructor above to initialize this struct - AttachRequestMessage(); -}; - -//--------------------------------------------------------------------------------------- -// Attach request message V2 -// Pass the timeout information from client (the trigger process) to server (the profilee) -struct AttachRequestMessageV2 : public AttachRequestMessage -{ - -public : - // Timeout for the wait operation for concurrent GC in server side - // Basically time out passed from AttachProfiler API minus the amount of time already - // elapsed in client side - DWORD m_dwConcurrentGCWaitTimeoutInMs; - -public : - AttachRequestMessageV2( - DWORD cbMessage, - const UINT & triggerVersion, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - DWORD dwClientDataStartOffset, - DWORD cbClientDataLength, - DWORD dwConcurrentGCWaitTimeoutInMs); - - // Whether the attach request message is a V2 message (including V2+) - static BOOL CanCastTo(const AttachRequestMessage * pMsg); - -private: - // Use parameterized constructor above to initialize this struct - AttachRequestMessageV2(); -}; - -// --------------------------------------------------------------------------------------- -// Base response message format. All response messages returned by profilee across the -// pipe to the trigger derive from this. -// -// **** COMPATIBILITY WARNING *** -// -// You are not allowed to change this structure in such a way as would change the binary -// layout of derived type GetVersionResponseMessage, or else the trigger & profilee will -// be unable to negotiate version information. Asserts in -// code:ProfilingAPIAttachDetach::VerifyMessageStructureLayout attempt to enforce this. -// -// **** COMPATIBILITY WARNING *** -// -struct BaseResponseMessage -{ -public: - // HRESULT indicating success or failure of carrying out the request - HRESULT m_hr; - - BaseResponseMessage(HRESULT hr); - -protected: - // Use parameterized constructor above to initialize this struct - BaseResponseMessage(); -}; - -// --------------------------------------------------------------------------------------- -// GetVersion response message format. The server responds to a kMsgGetVersion message -// request with a message of this type. -// -// **** COMPATIBILITY WARNING *** -// -// You are not allowed to change the binary layout of this structure, or else the trigger -// & profilee will be unable to negotiate version information. Asserts in -// code:ProfilingAPIAttachDetach::VerifyMessageStructureLayout attempt to enforce this. -// -// **** COMPATIBILITY WARNING *** -// -struct GetVersionResponseMessage : public BaseResponseMessage -{ -public: - // The target profilee constructs this response by filling out the following two - // values. The trigger process uses these values to determine whether it's compatible - // with the target profilee. - - // Target profilee provides its version info here. If trigger determines that - // this number is too small, then trigger refuses the profilee as being too old. - UINT m_profileeVersion; - - // Target profilee provides here the oldest version of a trigger process that it - // can communicate with. If trigger determines that this number is too big, - // then trigger refuses the profilee as being too new. - UINT m_minimumAllowableTriggerVersion; - - GetVersionResponseMessage( - HRESULT hr, - const UINT & profileeVersion, - const UINT & minimumAllowableTriggerVersion); - - GetVersionResponseMessage(); -}; - - -// --------------------------------------------------------------------------------------- -// Attach response message format. The server responds to a kMsgAttach message -// request with a message of this type. -// -struct AttachResponseMessage : public BaseResponseMessage -{ -public: - AttachResponseMessage(HRESULT hr); -}; - -// --------------------------------------------------------------------------------------- -// Static-only class to handle attach request communication and detach functionality -// -// The target profilee app generally calls functions in ProfilingAPIAttachServer, while -// the trigger process (by way of the AttachProfiler API) generally calls functions in -// ProfilingAPIAttachClient. ProfilingAPIAttachDetach contains functionality common to -// target profilees and triggers, as well as initialization and other routines exposed to -// other parts of the EE. -// -class ProfilingAPIAttachDetach -{ -public: - // --------------------------------------------------------------------------------------- - // Indicates whether AttachThread is always available without the need for an event - // (that the finalizer thread listens to), or whether the AttachThread is only - // available on demand (when finalizer thread detects the attach event has been - // signaled). The mode used by default is determined by the gc mode (server vs. - // workstation). But this can be overridden in either case by setting - // COMPlus_AttachThreadAlwaysOn: 0=kOnDemand, nonzero=kAlwaysOn. - enum AttachThreadingMode - { - // Too early in startup to know the mode yet - kUninitialized, - - // Default GC-workstation mode: AttachThread is only created when the attach - // event is signaled. AttachThread automatically exits when pipe requests quiet - // down. - kOnDemand, - - // Default GC-server mode: AttachThread and attach pipe are created on startup, - // and they never go away. There is no need for an attach event in this mode, so - // the attach event is never created. - kAlwaysOn, - }; - - // --------------------------------------------------------------------------------------- - // Helper class used by both the target profilee app (server) and the trigger process - // (client) to create and dispose of an OVERLAPPED structure and to use it in a call - // to the OS API GetOverlappedResult (wrapped via - // code:ProfilingAPIAttachDetach::OverlappedResultHolder::Wait). The point of having - // this holder is to encapsulate the code that verifies when the OS is finished with - // the OVERLAPPED structure (usually when OverlappedResultHolder goes out of scope). - // See code:ProfilingAPIAttachDetach::OverlappedResultHolder::Wait for details. Since - // this class derives from NewHolder<OVERLAPPED>, users may automagically cast - // instances to OVERLAPPED* for use in passing to Windows OS APIs - class OverlappedResultHolder : public NewHolder<OVERLAPPED> - { - public: - HRESULT Initialize(); - HRESULT Wait( - DWORD dwMillisecondsMax, - HANDLE hPipe, - DWORD * pcbReceived); - }; - - static const UINT kCurrentProcessVersion = 1; - static const UINT kMinimumAllowableTriggerVersion = 1; - static const UINT kMinimumAllowableProfileeVersion = 1; - - static DWORD WINAPI ProfilingAPIAttachThreadStart(LPVOID lpParameter); - static void ProcessSignaledAttachEvent(); - static HANDLE GetAttachEvent(); - static HRESULT Initialize(); - static HRESULT InitSecurityAttributes(SECURITY_ATTRIBUTES * pSecAttrs, DWORD cbSecAttrs); - static AttachThreadingMode GetAttachThreadingMode(); - - static HRESULT GetAttachPipeName(HANDLE hProfileeProcess, SString * pAttachPipeName); - static void GetAttachPipeNameForPidAndVersion(HANDLE hProfileeProcess, LPCWSTR wszRuntimeVersion, SString * pAttachPipeName); - static HRESULT GetAttachEventName(HANDLE hProfileeProcess, SString * pAttachEventName); - static void GetAttachEventNameForPidAndVersion(HANDLE hProfileeProcess, LPCWSTR wszRuntimeVersion, SString * pAttachEventName); - static HRESULT GetAppContainerNamedObjectPath(HANDLE hProcess, __out_ecount(dwObjectPathSizeInChar) WCHAR * wszObjectPath, DWORD dwObjectPathSizeInChar); - static BOOL IsAppContainerProcess(HANDLE hProcess); - -private: - // This caches the security descriptor to be used when generating the - // SECURITY_ATTRIBUTES structure for the event and pipe objects. - // - // Technically, this should be freed via LocalFree() or HeapFree (with the current - // process heap), but there's only one of these per runtime, and it is used - // throughout the process's lifetime, and there isn't much point to freeing it when - // the process shuts down since the OS does that automatically. - static PSECURITY_DESCRIPTOR s_pSecurityDescriptor; - - // HANDLE to event object created on startup and listened to by finalizer thread - // (when running in code:ProfilingAPIAttachDetach::kOnDemand mode) - // - // Technically, this should be freed via CloseHandle(), but there's only one of these - // per runtime, and it is used throughout the process's lifetime, and there isn't - // much point to freeing it when the process shuts down since the OS does that - // automatically. - static HANDLE s_hAttachEvent; - - // See code:ProfilingAPIAttachDetach::AttachThreadingMode - static AttachThreadingMode s_attachThreadingMode; - - static BOOL s_fInitializeCalled; - - // Static-only class. Private constructor enforces you don't try to make an instance - ProfilingAPIAttachDetach() {} - - INDEBUG(static void VerifyMessageStructureLayout()); - static void InitializeAttachThreadingMode(); - static HRESULT InitializeForOnDemandMode(); - static HRESULT InitializeForAlwaysOnMode(); - static HRESULT ProfilingAPIAttachThreadMain(); - static void CreateAttachThread(); - - static HRESULT GetSecurityDescriptor(PSECURITY_DESCRIPTOR * ppsd); -}; - -// IClassFactory implementation for ICLRProfiling inteface. -class CLRProfilingClassFactoryImpl : public IUnknownCommon<IClassFactory> -{ -public: - CLRProfilingClassFactoryImpl() - { - LIMITED_METHOD_CONTRACT; - } - - ~CLRProfilingClassFactoryImpl() - { - LIMITED_METHOD_CONTRACT; - } - - // - // IClassFactory methods - // - STDMETHOD(CreateInstance( - IUnknown *pUnkOuter, - REFIID riid, - void **ppv)); - - STDMETHOD(LockServer( - BOOL fLock)); -}; - -// CLRProfiling implementation. -class CLRProfilingImpl : public IUnknownCommon<ICLRProfiling> -{ -public: - CLRProfilingImpl() - { - LIMITED_METHOD_CONTRACT; - } - - ~CLRProfilingImpl() - { - LIMITED_METHOD_CONTRACT; - } - - // - // ICLRProfiling method - // - STDMETHOD(AttachProfiler( - DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData)); -}; - - -#endif // __PROF_ATTACH_H__ diff --git a/src/vm/profattach.inl b/src/vm/profattach.inl deleted file mode 100644 index 93222fd62b..0000000000 --- a/src/vm/profattach.inl +++ /dev/null @@ -1,459 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttach.inl -// - -// -// Implementation of inlineable functions that help with attaching and detaching -// profilers -// - -// ====================================================================================== - -#ifndef __PROF_ATTACH_INL__ -#define __PROF_ATTACH_INL__ - -// ---------------------------------------------------------------------------- -// BaseRequestMessage::BaseRequestMessage -// -// Description: -// Constructor for base class of all request messages sent from trigger (client) to -// profilee (server). -// -// Arguments: -// * cbMessage - Size, in bytes, of the entire request message (including size of -// derived type, client data, etc., if present in the message) -// * requestMessageType - Enum representing type of request this constitutes -// - -inline BaseRequestMessage::BaseRequestMessage( - DWORD cbMessage, - RequestMessageType requestMessageType) : - m_cbMessage(cbMessage), - m_requestMessageType(requestMessageType) -{ - LIMITED_METHOD_CONTRACT; -} - -// ---------------------------------------------------------------------------- -// GetVersionRequestMessage::GetVersionRequestMessage -// -// Description: -// Constructor to create a fully initialized GetVersionRequestMessage -// - -inline GetVersionRequestMessage::GetVersionRequestMessage() - : BaseRequestMessage(sizeof(GetVersionRequestMessage), kMsgGetVersion) -{ - LIMITED_METHOD_CONTRACT; -} - -// ---------------------------------------------------------------------------- -// AttachRequestMessage::AttachRequestMessage -// -// Description: -// Constructor for request message of type kMsgAttach sent from trigger (client) to -// profilee (server) -// -// Arguments: -// * cbMessage - Size, in bytes, of the entire request message (including size of -// derived type, client data, etc., if present in the message) -// * triggerVersion - Uint representing profiler attach interface version used by trigger -// * pClsidProfiler - CLSID of profiler to attach -// * wszProfilerPath - path to profiler DLL -// * dwClientDataStartOffset - see code:AttachRequestMessage -// * cbClientDataLength - see code:AttachRequestMessage -// - -inline AttachRequestMessage::AttachRequestMessage( - DWORD cbMessage, - const UINT & triggerVersion, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - DWORD dwClientDataStartOffset, - DWORD cbClientDataLength) : - BaseRequestMessage(cbMessage, kMsgAttach), - m_dwClientDataStartOffset(dwClientDataStartOffset), - m_cbClientDataLength(cbClientDataLength) -{ - LIMITED_METHOD_CONTRACT; - _ASSERT(cbMessage >= sizeof(AttachRequestMessage) + cbClientDataLength); - memcpy(&m_clsidProfiler, pClsidProfiler, sizeof(m_clsidProfiler)); - m_triggerVersion = triggerVersion; - if (wszProfilerPath != NULL) - { - _ASSERTE(wcslen(wszProfilerPath) < _countof(m_wszProfilerPath)); - wcscpy_s(m_wszProfilerPath, _countof(m_wszProfilerPath), wszProfilerPath); - } - else - { - m_wszProfilerPath[0] = L'\0'; - } -} - -// ---------------------------------------------------------------------------- -// AttachRequestMessageV2::AttachRequestMessageV2 -// -// Description: -// Constructor for request message V2 of type kMsgAttach sent from trigger (client) to -// profilee (server) -// -// Arguments: -// * cbMessage - Size, in bytes, of the entire request message (including size of -// derived type, client data, etc., if present in the message) -// * triggerVersion - Uint representing profiler attach interface version used by trigger -// * pClsidProfiler - CLSID of profiler to attach -// * wszProfilerPath - path to profiler DLL -// * dwClientDataStartOffset - see code:AttachRequestMessage -// * cbClientDataLength - see code:AttachRequestMessage -// * dwConcurrentGCWaitTimeoutInMs - the time out for wait operation on concurrent GC to finish. -// Attach scenario only. -// -inline AttachRequestMessageV2::AttachRequestMessageV2( - DWORD cbMessage, - const UINT & triggerVersion, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - DWORD dwClientDataStartOffset, - DWORD cbClientDataLength, - DWORD dwConcurrentGCWaitTimeoutInMs) - :AttachRequestMessage( - cbMessage, - triggerVersion, - pClsidProfiler, - wszProfilerPath, - dwClientDataStartOffset, - cbClientDataLength), - m_dwConcurrentGCWaitTimeoutInMs(dwConcurrentGCWaitTimeoutInMs) -{ - LIMITED_METHOD_CONTRACT; - _ASSERT(cbMessage >= sizeof(AttachRequestMessageV2) + cbClientDataLength); -} - -// ---------------------------------------------------------------------------- -// AttachRequestMessageV2::CanCastTo -inline BOOL AttachRequestMessageV2::CanCastTo(const AttachRequestMessage *pMsg) -{ - LIMITED_METHOD_CONTRACT; - - // We already have checks that the client data doesn't go beyond the message body. - // If someone creates a bad message that pretends to be a V2 message, the worst scenario - // is we got a bad time out. - if (pMsg->m_cbMessage >= sizeof(AttachRequestMessageV2) + pMsg->m_cbClientDataLength) - return TRUE; - - return FALSE; -} - -// ---------------------------------------------------------------------------- -// BaseResponseMessage::BaseResponseMessage -// -// Description: -// Constructor for base class of all response messages returned by profilee (server) -// to trigger (client) -// -// Arguments: -// * hr - HRESULT indicating success or failure of executing the request that the -// trigger had made to the profilee -// - -inline BaseResponseMessage::BaseResponseMessage(HRESULT hr) : - m_hr(hr) -{ - LIMITED_METHOD_CONTRACT; -} - -// ---------------------------------------------------------------------------- -// BaseResponseMessage::BaseResponseMessage -// -// Description: -// Zero-parameter constructor for BaseResponseMessage for use when hr is not yet -// known. -// - -inline BaseResponseMessage::BaseResponseMessage() : - m_hr(E_UNEXPECTED) -{ - LIMITED_METHOD_CONTRACT; -} - -// ---------------------------------------------------------------------------- -// GetVersionResponseMessage::GetVersionResponseMessage -// -// Description: -// Constructor to create a fully initialized GetVersionResponseMessage -// -// Arguments: -// * hr - Success / failure of carrying out the GetVersion request -// * profileeVersion - Version of the target profilee app's runtime (server) -// * minimumAllowableTriggerVersion - Oldest version of a trigger process that this -// target profilee app is willing to talk to. -// - -inline GetVersionResponseMessage::GetVersionResponseMessage( - HRESULT hr, - const UINT & profileeVersion, - const UINT & minimumAllowableTriggerVersion) : - BaseResponseMessage(hr) -{ - LIMITED_METHOD_CONTRACT; - m_profileeVersion = profileeVersion; - m_minimumAllowableTriggerVersion = minimumAllowableTriggerVersion; -} - -// ---------------------------------------------------------------------------- -// GetVersionResponseMessage::GetVersionResponseMessage -// -// Description: -// Constructor to use for GetVersionResponseMessage when the data is not known yet. -// The trigger will typically use this constructor to create an empty -// GetVersionResponseMessage as storage to receive the GetVersionResponseMessage data -// that will come in over the pipe from the target profilee app. -// - -inline GetVersionResponseMessage::GetVersionResponseMessage() -{ - LIMITED_METHOD_CONTRACT; - memset(this, 0, sizeof(*this)); - m_hr = E_UNEXPECTED; -} - -// ---------------------------------------------------------------------------- -// AttachResponseMessage::AttachResponseMessage -// -// Description: -// Constructor for AttachResponseMessage -// -// Arguments: -// * hr - Success / failure of carrying out the attach request -// - -inline AttachResponseMessage::AttachResponseMessage(HRESULT hr) - : BaseResponseMessage(hr) -{ - LIMITED_METHOD_CONTRACT; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::GetAttachThreadingMode -// -// Description: -// Returns the profiling attach threading mode for this runtime instance. See -// code:ProfilingAPIAttachDetach::AttachThreadingMode. -// -// Return Value: -// The profiling attach threading mode -// -// Assumptions: -// * code:ProfilingAPIAttachDetach::Initialize must be called before this function. -// - -// static -inline ProfilingAPIAttachDetach::AttachThreadingMode ProfilingAPIAttachDetach::GetAttachThreadingMode() -{ - LIMITED_METHOD_CONTRACT; - - // ProfilingAPIAttachDetach::Initialize must be called before this function. - _ASSERTE(s_fInitializeCalled); - return s_attachThreadingMode; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::GetAttachEventNameForPidAndVersion -// -// Description: -// Generates name for Globally Named Attach Event, based on PID and the runtime version -// Name looks like this: -// CPFATE_nnnn_RuntimeVersion -// CPFATE stands for CLR Profiling API attach trigger event -// nnnn is decimal process ID -// RuntimeVersion is the string of the runtime version -// -// Arguments: -// * hProfileeProcess - The profilee process we want to attach to -// * wszRuntimeVersion - runtime version string -// * pAttachEventName - [in/out] SString to hold the generated name -// - -// static -inline void ProfilingAPIAttachDetach::GetAttachEventNameForPidAndVersion(HANDLE hProfileeProcess, LPCWSTR wszRuntimeVersion, SString * pAttachEventName) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - // Convert to lower case using invariant culture - SString strRuntimeVersion(wszRuntimeVersion); - strRuntimeVersion.LowerCase(); - - DWORD dwProfileeProcessPid = ::GetProcessId(hProfileeProcess); - - if (IsAppContainerProcess(hProfileeProcess)) - { - HANDLE hCurrentProcess = ::GetCurrentProcess(); - if (hProfileeProcess == hCurrentProcess || IsAppContainerProcess(::GetCurrentProcess())) - { - // App container to app container or the current process is the profilee process - // In any case, use a local name - pAttachEventName->Printf(L"NCPFATE_%d_%s", dwProfileeProcessPid, strRuntimeVersion.GetUnicode()); - } - else - { - // Otherwise, we'll assume it is full-trust to lowbox, and in this case we need to prefix the name with app container path - WCHAR wszObjectPath[MAX_PATH]; - HRESULT hr = GetAppContainerNamedObjectPath(hProfileeProcess, wszObjectPath, sizeof(wszObjectPath)/sizeof(WCHAR)); - IfFailThrow(hr); - - // - // Retrieve the session ID - // - DWORD dwSessionId; - if (!ProcessIdToSessionId(dwProfileeProcessPid, &dwSessionId)) - { - COMPlusThrowHR(HRESULT_FROM_GetLastError()); - } - - pAttachEventName->Printf(L"Session\\%d\\%s\\NCPFATE_%d_%s", dwSessionId, wszObjectPath, dwProfileeProcessPid, strRuntimeVersion.GetUnicode()); - } - } - else - { - // Non-app conatiner scenario - // Create in global namespace - pAttachEventName->Printf(L"Global\\NCPFATE_%d_%s", dwProfileeProcessPid, strRuntimeVersion.GetUnicode()); - } -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachDetach::GetAttachPipeNameForPidAndVersion -// -// Description: -// Generates name for Globally Named Attach Pipe, based on PID and the runtime version -// Name looks like this: -// \\.\pipe\CPFATP_nnnn_RuntimeVersion -// CPFATP stands for CLR Profiling API attach trigger pipe -// nnnn is decimal process ID -// RuntimeVersion is the string of the runtime version -// -// Arguments: -// * hProfileeProcess - The profilee process we want to attach to -// * wszRuntimeVersion - runtime version string -// * pAttachPipeName - [in/out] SString to hold the generated name -// - -// static -inline void ProfilingAPIAttachDetach::GetAttachPipeNameForPidAndVersion(HANDLE hProfileeProcess, LPCWSTR wszRuntimeVersion, SString * pAttachPipeName) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - // Convert to lower case using invariant culture - SString strRuntimeVersion(wszRuntimeVersion); - strRuntimeVersion.LowerCase(); - - DWORD dwProfileeProcessPid = ::GetProcessId(hProfileeProcess); - - if (IsAppContainerProcess(hProfileeProcess)) - { - - // - // Retrieve low object path - // - WCHAR wszObjectPath[MAX_PATH]; - HRESULT hr = GetAppContainerNamedObjectPath(hProfileeProcess, wszObjectPath, sizeof(wszObjectPath)/sizeof(WCHAR)); - IfFailThrow(hr); - - // - // Retrieve the session ID - // - DWORD dwSessionId; - if (!ProcessIdToSessionId(dwProfileeProcessPid, &dwSessionId)) - { - COMPlusThrowHR(HRESULT_FROM_GetLastError()); - } - - pAttachPipeName->Printf(L"\\\\.\\pipe\\Sessions\\%d\\%s\\NCPFATP_%d_%s", dwSessionId, wszObjectPath, dwProfileeProcessPid, strRuntimeVersion.GetUnicode()); - } - else - { - pAttachPipeName->Printf(L"\\\\.\\pipe\\NCPFATP_%d_%s", dwProfileeProcessPid, strRuntimeVersion.GetUnicode()); - } -} - -// Simple wrapper around code:ProfilingAPIAttachDetach::GetAttachEventNameForPidAndVersion using -// current process's PID and current runtime directory -// static -inline HRESULT ProfilingAPIAttachDetach::GetAttachEventName(HANDLE hProfileeProcess, SString * pAttachEventName) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - WCHAR wszRuntimeVersion[MAX_PATH]; - wszRuntimeVersion[0] = L'\0'; - - // Note: CoreCLR can have the same version as Desktop CLR. And it's possible to have mutilple - // instances of the same version of the CoreCLR in the process. We need to come up with - // something other than version When Attach is enabled for CoreCLR. - DWORD dwSize = _countof(wszRuntimeVersion); - HRESULT hr = GetCORVersionInternal(wszRuntimeVersion, dwSize, &dwSize); - if (FAILED(hr)) - { - return hr; - } - - GetAttachEventNameForPidAndVersion(hProfileeProcess, wszRuntimeVersion, pAttachEventName); - return S_OK; -} - -// Simple wrapper around code:ProfilingAPIAttachDetach::GetAttachPipeNameForPidAndVersion using -// current process's PID and current runtime directory -// static -inline HRESULT ProfilingAPIAttachDetach::GetAttachPipeName(HANDLE hProfileeProcess, SString * pAttachPipeName) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - WCHAR wszRuntimeVersion[MAX_PATH]; - wszRuntimeVersion[0] = L'\0'; - - // Note: CoreCLR can have the same version as Desktop CLR. And it's possible to have mutilple - // instances of the same version of the CoreCLR in the process. We need to come up with - // something other than version When Attach is enabled for CoreCLR. - DWORD dwSize = _countof(wszRuntimeVersion); - HRESULT hr = GetCORVersionInternal(wszRuntimeVersion, dwSize, &dwSize); - if (FAILED(hr)) - { - return hr; - } - - GetAttachPipeNameForPidAndVersion(hProfileeProcess, wszRuntimeVersion, pAttachPipeName); - return S_OK; -} - -#endif // __PROF_ATTACH_INL__ diff --git a/src/vm/profattachclient.cpp b/src/vm/profattachclient.cpp deleted file mode 100644 index 7852a7bc1d..0000000000 --- a/src/vm/profattachclient.cpp +++ /dev/null @@ -1,944 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttachClient.cpp -// - -// -// Implementation of the AttachProfiler() API, used by CLRProfilingImpl::AttachProfiler. -// -// CLRProfilingImpl::AttachProfiler (in ndp\clr\src\DLLS\shim\shimapi.cpp) just thunks down -// to mscorwks!AttachProfiler (below), which calls other functions in this file, all of -// which are in mscorwks.dll. The AttachProfiler() API is consumed by trigger processes -// in order to force the runtime of a target process to load a profiler. The prime -// portion of this implementation lives in ProfilingAPIAttachClient, which handles -// opening a client connection to the pipe created by the target profilee, and sending -// requests across that pipe to force the target profilee (which acts as the pipe server) -// to attach a profiler. - -// -// Since these functions are executed by the trigger process, they intentionally seek the -// event and pipe objects by names based on the PID of the target app to profile (which -// is NOT the PID of the current process, as the current process is just the trigger -// process). This implies, for example, that the variable -// ProfilingAPIAttachDetach::s_hAttachEvent is of no use to the current process, as -// s_hAttachEvent is only applicable to the target profilee app's process. -// -// Most of the contracts in this file follow the lead of default contracts throughout the -// CLR (triggers, throws, etc.). Since AttachProfiler() is called by native code either -// on a native thread created by the trigger process, or via a P/Invoke, these functions -// will all run on threads in MODE_PREEMPTIVE. -// * MODE_PREEMPTIVE also allows for GetThread() == NULL, which will be the case for -// a native-only thread calling AttachProfiler() -// - -// ====================================================================================== - -#include "common.h" - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH -#include "tlhelp32.h" // For CreateToolhelp32Snapshot, etc. in MightProcessExist() -#include "profilinghelper.h" -#include "profattach.h" -#include "profattach.inl" -#include "profattachclient.h" - -// CLRProfilingImpl::AttachProfiler calls this, which itself is just a simple wrapper around -// code:ProfilingAPIAttachClient::AttachProfiler. See public documentation for a -// description of the parameters, return value, etc. -extern "C" HRESULT STDMETHODCALLTYPE AttachProfiler( - DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - LPCWSTR wszRuntimeVersion) -{ - CONTRACTL - { - NOTHROW; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - HRESULT hr = E_UNEXPECTED; - - EX_TRY - { - ProfilingAPIAttachClient attachClient; - hr = attachClient.AttachProfiler( - dwProfileeProcessID, - dwMillisecondsMax, - pClsidProfiler, - wszProfilerPath, - pvClientData, - cbClientData, - wszRuntimeVersion); - } - EX_CATCH - { - hr = GET_EXCEPTION()->GetHR(); - _ASSERTE(!"Unhandled exception executing AttachProfiler API"); - } - EX_END_CATCH(RethrowTerminalExceptions); - - // For ease-of-use by profilers, normalize similar HRESULTs down. - if ((hr == HRESULT_FROM_WIN32(ERROR_BROKEN_PIPE)) || - (hr == HRESULT_FROM_WIN32(ERROR_PIPE_NOT_CONNECTED)) || - (hr == HRESULT_FROM_WIN32(ERROR_BAD_PIPE))) - { - hr = CORPROF_E_IPC_FAILED; - } - - return hr; -} - - -// ---------------------------------------------------------------------------- -// AdjustRemainingMs -// -// Description: -// Simple helper to do timeout arithmetic. Timeout arithmetic is based on -// CLRGetTickCount64, which returns an unsigned 64-bit int representing the number of -// milliseconds transpired since the machine has been up. Since a machine is unlikely -// to be up for > 500 million years, wraparound issues may be ignored. -// -// Caller repeatedly calls this function (usually once before a lenghty operation -// with a timeout) to check on its remaining time allotment and get alerted when time -// runs out. -// -// Arguments: -// * ui64StartTimeMs - [in] When did caller begin, in tick counts (ms)? -// * dwMillisecondsMax - [in] How much time does caller have, total? -// * pdwMillisecondsRemaining - [out] Remaining ms caller has before exceeding its -// timeout. -// -// Return Value: -// HRESULT_FROM_WIN32(ERROR_TIMEOUT) if caller is out of time; else S_OK -// - -static HRESULT AdjustRemainingMs( - ULONGLONG ui64StartTimeMs, - DWORD dwMillisecondsMax, - DWORD * pdwMillisecondsRemaining) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(pdwMillisecondsRemaining != NULL); - - ULONGLONG ui64NowMs = CLRGetTickCount64(); - - if (ui64NowMs - ui64StartTimeMs > dwMillisecondsMax) - { - // Out of time! - return HRESULT_FROM_WIN32(ERROR_TIMEOUT); - } - - // How much of dwMillisecondsMax remain to be used? - *pdwMillisecondsRemaining = dwMillisecondsMax - static_cast<DWORD>(ui64NowMs - ui64StartTimeMs); - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::AttachProfiler -// -// Description: -// Main worker for AttachProfiler API. Trigger process calls mscoree!AttachProfiler -// which just defers to this function to do all the work. -// -// ** See public API docs for description of params / return value. ** -// -// Note that, in the trigger process, the dwMillisecondsMax timeouts are cumulative: -// the caller specifies a single timeout value for the entire AttachProfiler API call. -// So we must constantly adjust the timeouts we use so they're based on the time -// remaining from the original dwMillisecondsMax specified by the AttachProfiler API -// client. -// - -HRESULT ProfilingAPIAttachClient::AttachProfiler( - DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - LPCWSTR wszRuntimeVersion) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - InitializeLogging(); - - HRESULT hr; - - // Is cbClientData just huge? - if (cbClientData >= 0xFFFFffffUL - sizeof(AttachRequestMessage)) - { - return E_OUTOFMEMORY; - } - - if ((pvClientData == NULL) && (cbClientData != 0)) - { - return E_INVALIDARG; - } - - if (pClsidProfiler == NULL) - { - return E_INVALIDARG; - } - - if ((wszProfilerPath != NULL) && (wcslen(wszProfilerPath) >= MAX_LONGPATH)) - { - return E_INVALIDARG; - } - - // See if we can early-out due to the profilee process ID not existing. - // MightProcessExist() only returns FALSE if it has positively verified the process - // ID didn't exist when MightProcessExist() was called. So it might incorrectly - // return TRUE (if it hit an error trying to determine whether the process exists). - // But that's ok, as we'll catch a nonexistent process later on when we try to fiddle - // with its event & pipe. MightProcessExist() is used strictly as an optional - // optimization to early-out before waiting for the event to appear. - if (!MightProcessExist(dwProfileeProcessID)) - { - return CORPROF_E_PROFILEE_PROCESS_NOT_FOUND; - } - - // Adjust time out value according to env var COMPlus_ProfAPI_AttachProfilerTimeoutInMs - // The default is 10 seconds as we want to avoid client (trigger process) time out too early - // due to wait operation for concurrent GC in the server (profilee side) - DWORD dwMillisecondsMinFromEnv = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ProfAPI_AttachProfilerMinTimeoutInMs); - - if (dwMillisecondsMax < dwMillisecondsMinFromEnv) - dwMillisecondsMax = dwMillisecondsMinFromEnv; - -#ifdef _DEBUG - { - WCHAR wszClsidProfiler[40]; - if (!StringFromGUID2(*pClsidProfiler, wszClsidProfiler, _countof(wszClsidProfiler))) - { - wcscpy_s(&wszClsidProfiler[0], _countof(wszClsidProfiler), W("(error)")); - } - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF TRIGGER: mscorwks!AttachProfiler invoked with Trigger Process ID: '%d', " - "Target Profilee Process ID: '%d', dwMillisecondsMax: '%d', pClsidProfiler: '%S'," - "wszProfilerPath: '%S'\n", - GetProcessId(GetCurrentProcess()), - dwProfileeProcessID, - dwMillisecondsMax, - wszClsidProfiler, - wszProfilerPath == NULL ? W("") : wszProfilerPath)); - } -#endif // _DEBUG - - // See code:AdjustRemainingMs - ULONGLONG ui64StartTimeMs = CLRGetTickCount64(); - DWORD dwMillisecondsRemaining = dwMillisecondsMax; - - HandleHolder hProfileeProcess = ::OpenProcess(PROCESS_QUERY_INFORMATION, FALSE, dwProfileeProcessID); - if (!hProfileeProcess) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: OpenProcess failed. LastError=0x%x.\n", - ::GetLastError())); - return HRESULT_FROM_GetLastError(); - } - - StackSString attachPipeName; - ProfilingAPIAttachDetach::GetAttachPipeNameForPidAndVersion(hProfileeProcess, wszRuntimeVersion, &attachPipeName); - - // Try to open pipe with 0ms timeout in case the pipe is still around from - // a previous attach request - hr = OpenPipeClient(attachPipeName.GetUnicode(), 0); - if (hr == HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)) - { - // Pipe doesn't exist, so signal attach event and retry. Note that any other - // failure from the above OpenPipeClient call will NOT cause us to signal - // the attach event, as signaling the attach event can only help with making - // sure the pipe gets created, and nothing else. - StackSString attachEventName; - ProfilingAPIAttachDetach::GetAttachEventNameForPidAndVersion(hProfileeProcess, wszRuntimeVersion, &attachEventName); - hr = SignalAttachEvent(attachEventName.GetUnicode()); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: Unable to signal the global attach event. hr=0x%x.\n", - hr)); - - // It's reasonable for SignalAttachEvent to err out if the event - // simply doesn't exist. This happens on server apps that just circumvent - // using an event. They just create the AttachThread and attach pipe on - // startup, and are always listening on the pipe. So if event signaling - // failed due to nonexistent event, keep on going and try connecting to the - // pipe again. But if event signaling failed for any other reason, that's - // unexpected so give up. - if (hr != HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)) - { - return hr; - } - } - - hr = AdjustRemainingMs(ui64StartTimeMs, dwMillisecondsMax, &dwMillisecondsRemaining); - if (FAILED(hr)) - { - return hr; - } - - hr = OpenPipeClient(attachPipeName.GetUnicode(), dwMillisecondsRemaining); - } - - // hr now holds the result of either the original OpenPipeClient call (if it - // failed for a reason other than ERROR_FILE_NOT_FOUND) or the 2nd - // OpenPipeClient call (if the first call yielded ERROR_FILE_NOT_FOUND and we - // signaled the event and retried). - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: Unable to open a client connection to the pipe. hr=0x%x.\n", - hr)); - return hr; - } - - // At this point the pipe is definitely open - _ASSERTE(IsValidHandle(m_hPipeClient)); - - hr = AdjustRemainingMs(ui64StartTimeMs, dwMillisecondsMax, &dwMillisecondsRemaining); - if (FAILED(hr)) - { - return hr; - } - - // Send the GetVersion message and verify we're talking the same language - hr = VerifyVersionIsCompatible(dwMillisecondsRemaining); - if (FAILED(hr)) - { - return hr; - } - - hr = AdjustRemainingMs(ui64StartTimeMs, dwMillisecondsMax, &dwMillisecondsRemaining); - if (FAILED(hr)) - { - return hr; - } - - // Send the attach message! - HRESULT hrAttach; - hr = SendAttachRequest( - dwMillisecondsRemaining, - pClsidProfiler, - wszProfilerPath, - pvClientData, - cbClientData, - &hrAttach); - if (FAILED(hr)) - { - return hr; - } - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF TRIGGER: AttachProfiler succeeded sending attach request. Trigger Process ID: '%d', " - "Target Profilee Process ID: '%d', Attach HRESULT: '0x%x'\n", - GetProcessId(GetCurrentProcess()), - dwProfileeProcessID, - hrAttach)); - - return hrAttach; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::MightProcessExist -// -// Description: -// Returns BOOL indicating whether a process with the specified process ID might exist -// on the local computer. -// -// Arguments: -// * dwProcessID - Process ID to look up -// -// Return Value: -// nonzero if process might possibly exist; FALSE if not -// -// Notes: -// * Since processes come and go while this function executes, this should only be -// used on a process ID that is supposed to exist both before and after this -// function returns. A return of FALSE reliably tells you that supposition is -// wrong. A return of TRUE, however, only means the process ID existed when this -// function did its search. It's still possible the process has exited by the time -// this function returns. -// * If this function is unsure of a process's existence (e.g., if it encounters an -// error while trying to find out), it errs on the side of optimism and returns -// TRUE. -// - -BOOL ProfilingAPIAttachClient::MightProcessExist(DWORD dwProcessID) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - FORBID_FAULT; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - // There are a few ways to check whether a process exists. Some dismissed - // alternatives: - // - // * OpenProcess() with a "limited" access right. - // * Even relatively limited access rights such as SYNCHRONIZE and - // PROCESS_QUERY_INFORMATION often fail with ERROR_ACCESS_DENIED, even if - // the caller is running as administrator. - // - // * EnumProcesses() + search through returned PIDs - // * EnumProcesses() requires psychic powers to know how big to allocate the - // array of PIDs to receive (EnumProcesses() won't give you a hint if - // you're wrong). - // - // Method of choice is CreateToolhelp32Snapshot, which gives an enumerator to iterate - // through all processes. - - // Take a snapshot of all processes in the system. - HandleHolder hProcessSnap = CreateToolhelp32Snapshot( - TH32CS_SNAPPROCESS, - 0 // Unused when snap type is TH32CS_SNAPPROCESS - ); - if (hProcessSnap == INVALID_HANDLE_VALUE) - { - // Dunno if process exists. Err on the side of optimism - return TRUE; - } - - // Set the size of the structure before using it. - PROCESSENTRY32 entry; - ZeroMemory(&entry, sizeof(entry)); - entry.dwSize = sizeof(PROCESSENTRY32); - - // Start enumeration with Process32First. It will set dwSize to tell us how many - // members of PROCESSENTRY32 we can trust. We only need th32ProcessID - if (!Process32First(hProcessSnap, &entry) || - (offsetof(PROCESSENTRY32, th32ProcessID) + sizeof(entry.th32ProcessID) > entry.dwSize)) - { - // Can't tell if process exists, so assume it might - return TRUE; - } - - do - { - if (entry.th32ProcessID == dwProcessID) - { - // Definitely exists - return TRUE; - } - } while (Process32Next(hProcessSnap, &entry)); - - // Process32Next() failed. Return FALSE only if we exhausted our search - return (GetLastError() != ERROR_NO_MORE_FILES); -} - - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::OpenPipeClient -// -// Description: -// Attempts to create a client connection to the remote server pipe -// -// Arguments: -// * wszPipeName - Name of pipe to connect to. -// * dwMillisecondsMax - Total ms to spend trying to connect to the pipe. -// -// Return Value: -// HRESULT indicating success / failure -// - -HRESULT ProfilingAPIAttachClient::OpenPipeClient( - LPCWSTR wszPipeName, - DWORD dwMillisecondsMax) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - const DWORD kSleepMsUntilRetryCreateFile = 100; - HRESULT hr; - DWORD dwErr; - - // See code:AdjustRemainingMs - ULONGLONG ui64StartTimeMs = CLRGetTickCount64(); - DWORD dwMillisecondsRemaining = dwMillisecondsMax; - - HandleHolder hPipeClient; - - // We need to wait until the pipe is both CREATED (i.e., target profilee app has - // created the server end of the pipe) and AVAILABLE (i.e., no other trigger has opened - // the client end to the pipe). There is no Win32 API to wait until the pipe is - // CREATED, so we must make our own retry loop that calls CreateFileW. Once the pipe - // is known to be CREATED, we can use WaitNamedPipe to wait until the pipe is - // AVAILABLE. (Note: It would have been nice if we could use WaitNamedPipe to wait - // until the pipe is both CREATED and AVAILABLE. But WaitNamedPipe just returns an - // error immediately if the pipe is not yet CREATED, regardless of the timeout value - // specified.) - while (TRUE) - { - // This CreateFile call doesn't create the pipe. The pipe must be created by the - // target profilee. This CreateFile call attempts to open a client connection to - // the pipe. If CreateFile succeeds, that implies the pipe had already been - // successfully CREATED by the target profilee, and is AVAILABLE, and we now have - // a client connection to the pipe ready to go. - hPipeClient = CreateFileW( - wszPipeName, - GENERIC_READ | GENERIC_WRITE, - 0, // dwShareMode (i.e., no sharing) - NULL, // lpSecurityAttributes (i.e., handle not inheritable and - // only current user may access this handle) - OPEN_EXISTING, // Only open (don't create) the pipe - FILE_FLAG_OVERLAPPED, // Using overlapped I/O allows async ops w/ timeout - NULL); // hTemplateFile - - if (hPipeClient != INVALID_HANDLE_VALUE) - { - // CreateFile succeeded! Pipe is CREATED (by target profilee) - // and AVAILABLE and we're connected - break; - } - - // Opening the pipe failed. Why? - dwErr = GetLastError(); - switch(dwErr) - { - default: - // Any error other than the ones specifically brought out below isn't - // retry-able (e.g., security failure) - return HRESULT_FROM_WIN32(dwErr); - - case ERROR_FILE_NOT_FOUND: - // Pipe not CREATED yet. Can we retry? - if (dwMillisecondsRemaining <= kSleepMsUntilRetryCreateFile) - { - // No time left, gotta bail! - return HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND); - } - - // Sleep and retry - // (bAlertable=FALSE: don't wake up due to overlapped I/O) - ClrSleepEx(kSleepMsUntilRetryCreateFile, FALSE); - dwMillisecondsRemaining -= kSleepMsUntilRetryCreateFile; - break; - - case ERROR_PIPE_BUSY: - // Pipe CREATED, but it's not AVAILABLE. Wait until it's AVAILABLE - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF TRIGGER: Found pipe, but pipe is busy. Waiting until pipe is available.\n")); - - hr = AdjustRemainingMs(ui64StartTimeMs, dwMillisecondsMax, &dwMillisecondsRemaining); - if (FAILED(hr)) - { - return HRESULT_FROM_WIN32(ERROR_PIPE_BUSY); - } - - if (!WaitNamedPipeW(wszPipeName, dwMillisecondsRemaining)) - { - // If we timeout here, convert the error into something more useful - dwErr = GetLastError(); - if ((dwErr == ERROR_TIMEOUT) || (dwErr == ERROR_SEM_TIMEOUT)) - { - return HRESULT_FROM_WIN32(ERROR_PIPE_BUSY); - } - - // Failed for a reason other timeout. Send that reason back to caller - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: WaitNamedPipe failed for a reason other timeout. hr=0x%x.\n", - HRESULT_FROM_WIN32(dwErr))); - return HRESULT_FROM_WIN32(dwErr); - } - - // Pipe should be ready to open now, so retry. Note that it's still - // possible that another client sneaks in and connects before we get a - // chance to. If that happens, CreateFile will fail again, and we'll end up - // here waiting again (until we timeout). - break; - } - } - - // Only way to exit loop above is if pipe is CREATED and AVAILABLE. - _ASSERTE(IsValidHandle(hPipeClient)); - - // We now have a valid handle on the pipe, which means we're connected - // to the pipe, and no one else is - - // change to message-read mode. - DWORD dwMode = PIPE_READMODE_MESSAGE; - if (!SetNamedPipeHandleState( - hPipeClient, // pipe handle - &dwMode, // new pipe mode (PIPE_READMODE_MESSAGE) - NULL, // lpMaxCollectionCount, must be NULL when client & server on same box - NULL)) // lpCollectDataTimeout, must be NULL when client & server on same box - { - hr = HRESULT_FROM_GetLastError(); - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: SetNamedPipeHandleState failed. hr=0x%x.\n", - hr)); - return hr; - } - - // Pipe's client handle is now ready for use by this class - m_hPipeClient = (HANDLE) hPipeClient; - - // Ownership transferred to this class, so this function shouldn't call CloseHandle() - hPipeClient.SuppressRelease(); - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::SignalAttachEvent -// -// Description: -// Trigger process calls this (indirectly via AttachProfiler()) to find, open, and -// signal the Globally Named Attach Event. -// -// Arguments: -// * wszEventName - Name of event to signal -// -// Return Value: -// HRESULT indicating success or failure. -// - -HRESULT ProfilingAPIAttachClient::SignalAttachEvent(LPCWSTR wszEventName) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - HandleHolder hAttachEvent; - - hAttachEvent = OpenEventW( - EVENT_MODIFY_STATE, // dwDesiredAccess - FALSE, // bInheritHandle - wszEventName); - if (hAttachEvent == NULL) - { - return HRESULT_FROM_GetLastError(); - } - - // Dealing directly with Windows event objects, not CLR event cookies, so - // using Win32 API directly. Note that none of this code executes on Unix, - // so the CLR wrapper is of no use to us anyway. -#pragma push_macro("SetEvent") -#undef SetEvent - if (!SetEvent(hAttachEvent)) -#pragma pop_macro("SetEvent") - { - return HRESULT_FROM_GetLastError(); - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::VerifyVersionIsCompatible -// -// Description: -// Sends a GetVersion request message across the pipe to the target profilee, reads -// the response, and determines if the response allows for compatible communication. -// -// Arguments: -// * dwMillisecondsMax - How much time do we have left to wait for the response? -// -// Return Value: -// HRESULT indicating success or failure. If pipe communication succeeds, but we -// determine that the response doesn't allow for compatible communication, return -// CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER. -// -// Assumptions: -// * Client connection should be established before calling this function (or a -// callee will assert). -// - -HRESULT ProfilingAPIAttachClient::VerifyVersionIsCompatible( - DWORD dwMillisecondsMax) -{ - STANDARD_VM_CONTRACT; - HRESULT hr; - DWORD cbReceived; - GetVersionRequestMessage requestMsg; - GetVersionResponseMessage responseMsg; - - hr = SendAndReceive( - dwMillisecondsMax, - reinterpret_cast<LPVOID>(&requestMsg), - static_cast<DWORD>(sizeof(requestMsg)), - reinterpret_cast<LPVOID>(&responseMsg), - static_cast<DWORD>(sizeof(responseMsg)), - &cbReceived); - if (FAILED(hr)) - { - return hr; - } - - // Did profilee successfully carry out the GetVersion request? - if (FAILED(responseMsg.m_hr)) - { - return responseMsg.m_hr; - } - - // We should have valid version info for the target profilee. Now do the - // comparisons to determine if we're compatible. - if ( - // Am I too old (i.e., profilee requires a newer trigger)? - (ProfilingAPIAttachDetach::kCurrentProcessVersion < - responseMsg.m_minimumAllowableTriggerVersion) || - - // Is the profilee too old (i.e., this trigger requires a newer profilee)? - (responseMsg.m_profileeVersion < - ProfilingAPIAttachDetach::kMinimumAllowableProfileeVersion)) - { - return CORPROF_E_PROFILEE_INCOMPATIBLE_WITH_TRIGGER; - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::SendAttachRequest -// -// Description: -// Sends an Attach request message across the pipe to the target profilee, and returns -// the response. -// -// Arguments: -// * dwMillisecondsMax - [in] How much time is left to wait for response? -// * pClsidProfiler - [in] CLSID of profiler to attach -// * pvClientData - [in] Client data to pass to profiler's InitializeForAttach -// callback -// * cbClientData - [in] Size of client data -// * phrAttach - [out] Response HRESULT sent back by target profilee -// -// Return Value: -// HRESULT indicating success / failure with sending request & receiving response. If -// S_OK is returned, consult phrAttach to determine success / failure of the actual -// attach operation. -// -// Assumptions: -// * Client connection should be established before calling this function (or a callee -// will assert). -// - -HRESULT ProfilingAPIAttachClient::SendAttachRequest( - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - HRESULT * phrAttach) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(phrAttach != NULL); - - // These were already verified early on - _ASSERTE(cbClientData < 0xFFFFffffUL - sizeof(AttachRequestMessageV2)); - _ASSERTE((pvClientData != NULL) || (cbClientData == 0)); - - // Allocate enough space for the message, including the variable-length client data. - DWORD cbMessage = sizeof(AttachRequestMessageV2) + cbClientData; - _ASSERTE(cbMessage >= sizeof(AttachRequestMessageV2)); - NewHolder<BYTE> pbMessageStart(new (nothrow) BYTE[cbMessage]); - if (pbMessageStart == NULL) - { - return E_OUTOFMEMORY; - } - - // Initialize the message. First the client data at the tail end... - memcpy(pbMessageStart + sizeof(AttachRequestMessageV2), pvClientData, cbClientData); - - // ...then the message struct fields (use constructor in-place) - new ((void *) pbMessageStart) AttachRequestMessageV2( - cbMessage, - ProfilingAPIAttachDetach::kCurrentProcessVersion, // Version of the trigger process - pClsidProfiler, - wszProfilerPath, - sizeof(AttachRequestMessageV2), // dwClientDataStartOffset - cbClientData, - dwMillisecondsMax - ); - - HRESULT hr; - DWORD cbReceived; - AttachResponseMessage attachResponseMessage(E_UNEXPECTED); - - hr = SendAndReceive( - dwMillisecondsMax, - (LPVOID) pbMessageStart, - cbMessage, - reinterpret_cast<LPVOID>(&attachResponseMessage), - static_cast<DWORD>(sizeof(attachResponseMessage)), - &cbReceived); - if (FAILED(hr)) - { - return hr; - } - - // Successfully got a response from target. The response contained the HRESULT - // indicating whether the attach was successful, so return that HRESULT in the [out] - // param. - *phrAttach = attachResponseMessage.m_hr; - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachClient::SendAndReceive -// -// Description: -// Used in trigger process to send a request and receive the response. -// -// Arguments: -// * dwMillisecondsMax - [in] Timeout for entire send/receive operation -// * pvInBuffer - [in] Buffer contaning the request message -// * cbInBuffer - [in] Number of bytes in the request message -// * pvOutBuffer - [in/out] Buffer to write the response into -// * cbOutBuffer - [in] Size of the response buffer -// * pcbReceived - [out] Number of bytes actually written into response buffer -// -// Return Value: -// HRESULT indicating success or failure -// -// Notes: -// * The [out] parameters may be written to even if this function fails. But their -// contents should be ignored by the caller in this case. -// - -HRESULT ProfilingAPIAttachClient::SendAndReceive( - DWORD dwMillisecondsMax, - LPVOID pvInBuffer, - DWORD cbInBuffer, - LPVOID pvOutBuffer, - DWORD cbOutBuffer, - DWORD * pcbReceived) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeClient)); - _ASSERTE(pvInBuffer != NULL); - _ASSERTE(pvOutBuffer != NULL); - _ASSERTE(pcbReceived != NULL); - - HRESULT hr; - DWORD dwErr; - ProfilingAPIAttachDetach::OverlappedResultHolder overlapped; - hr = overlapped.Initialize(); - if (FAILED(hr)) - { - return hr; - } - - if (TransactNamedPipe( - m_hPipeClient, - pvInBuffer, - cbInBuffer, - pvOutBuffer, - cbOutBuffer, - pcbReceived, - overlapped)) - { - // Hot dog! Send and receive succeeded immediately! All done. - return S_OK; - } - - dwErr = GetLastError(); - if (dwErr != ERROR_IO_PENDING) - { - // An unexpected error. Caller has to deal with it - hr = HRESULT_FROM_WIN32(dwErr); - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: TransactNamedPipe failed. hr=0x%x.\n", - hr)); - return hr; - } - - // Typical case=ERROR_IO_PENDING: TransactNamedPipe has begun the transaction, and - // it's still in progress. Wait until it's done (or timeout expires). - hr = overlapped.Wait( - dwMillisecondsMax, - m_hPipeClient, - pcbReceived); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF TRIGGER: Waiting for overlapped result for TransactNamedPipe failed. hr=0x%x.\n", - hr)); - return hr; - } - - return S_OK; -} - -#endif // FEATURE_PROFAPI_ATTACH_DETACH diff --git a/src/vm/profattachclient.h b/src/vm/profattachclient.h deleted file mode 100644 index 7fe38d10c2..0000000000 --- a/src/vm/profattachclient.h +++ /dev/null @@ -1,78 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttachClient.h -// - -// -// Definition of ProfilingAPIAttachClient, which houses the prime portion of the -// implementation of the AttachProfiler() API, exported by mscoree.dll, and consumed by -// trigger processes in order to force the runtime of a target process to load a -// profiler. This handles opening a client connection to the pipe created by the target -// profilee, and sending requests across that pipe to force the target profilee (which -// acts as the pipe server) to attach a profiler. -// - -// ====================================================================================== - -#ifndef __PROF_ATTACH_CLIENT_H__ -#define __PROF_ATTACH_CLIENT_H__ - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH -extern "C" HRESULT STDMETHODCALLTYPE AttachProfiler( - DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - LPCWSTR wszRuntimeVersion); -#endif // FEATURE_PROFAPI_ATTACH_DETACH -// --------------------------------------------------------------------------------------- -// Here's the beef. All the pipe client stuff running in the trigger process (via call to -// AttachProfiler()) is housed in this class. Note that these functions cannot assume a -// fully initialized runtime (e.g., it would be nonsensical for these functions to -// reference ProfilingAPIAttachDetach::s_hAttachEvent). These functions operate solely by -// finding the attach event & pipes by name, and using them to communicate with the -// target profilee app. - -class ProfilingAPIAttachClient -{ -public: - HRESULT AttachProfiler( - DWORD dwProfileeProcessID, - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - LPCWSTR wszRuntimeVersion); - -protected: - // Client connection to the pipe that connects to the target profilee (server) - HandleHolder m_hPipeClient; - - BOOL MightProcessExist(DWORD dwProcessID); - HRESULT SignalAttachEvent(LPCWSTR wszEventName); - HRESULT OpenPipeClient( - LPCWSTR wszPipeName, - DWORD dwMillisecondsMax); - HRESULT VerifyVersionIsCompatible(DWORD dwMillisecondsMax); - HRESULT SendAttachRequest( - DWORD dwMillisecondsMax, - const CLSID * pClsidProfiler, - LPCWSTR wszProfilerPath, - void * pvClientData, - UINT cbClientData, - HRESULT * phrAttach); - HRESULT SendAndReceive( - DWORD dwMillisecondsMax, - LPVOID pvInBuffer, - DWORD cbInBuffer, - LPVOID pvOutBuffer, - DWORD cbOutBuffer, - DWORD * pcbReceived); -}; - -#endif //__PROF_ATTACH_CLIENT_H__ diff --git a/src/vm/profattachserver.cpp b/src/vm/profattachserver.cpp deleted file mode 100644 index 6c141a0f83..0000000000 --- a/src/vm/profattachserver.cpp +++ /dev/null @@ -1,1296 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttachServer.cpp -// - -// -// Implementation of ProfilingAPIAttachServer, which is instantiated on the stack of the -// AttachThread running in the target profilee (server end of the pipe) to receive and -// carry out requests that are sent by the trigger (client end of the pipe). -// -// Most of the contracts in this file follow the lead of default contracts throughout the -// CLR (triggers, throws, etc.) and many are marked as CAN_TAKE_LOCK, as event logging -// happens all over the place, and that loads resource strings, which takes locks. Some -// notes: -// * MODE_PREEMPTIVE also allows for GetThread() == NULL, which will be the case for -// most of these functions most of the time (as most are called on the -// AttachThread). -// * NOTHROW is used at the root of the AttachThread (to protect AttachThread from -// unhandled exceptions which would tear down the entire process), and at the -// root of the AttachProfiler() API (to protect trigger processes from unhandled -// exceptions). -// - -// ====================================================================================== - -#include "common.h" - -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - -#include "profilinghelper.h" -#include "profilinghelper.inl" -#include "profattach.h" -#include "profattach.inl" -#include "profattachserver.h" -#include "profattachserver.inl" - - -// ---------------------------------------------------------------------------- -// Implementation of RequestMessageVerifier; a helper to verify incoming messages to the -// target profilee. -// - -// ---------------------------------------------------------------------------- -// RequestMessageVerifier::Verify -// -// Description: -// Verifies self-consistency of a request message expressed as a byte array from -// the pipe. This also calls the appropriate helper to check consistency of the -// derived request message type, based on the kind of request this is. -// -// Return Value: -// S_OK or CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT -// - -HRESULT RequestMessageVerifier::Verify() -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - // In the beginning, the message is not yet verified - _ASSERTE(!m_fVerified); - - HRESULT hr = CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - - // First, do we have something big enough to fit in a BaseRequestMessage? - if (m_cbRequestMessage < sizeof(BaseRequestMessage)) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - // Yes, but do the fields lie? - const BaseRequestMessage * pUnverifiedBaseRequestMessage - = (const BaseRequestMessage *) m_pbRequestMessage; - - // Does the struct claim a size different than the entire message? - if (pUnverifiedBaseRequestMessage->m_cbMessage != m_cbRequestMessage) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - // Check for an unknown type, or a known type but with invalid subclass fields - switch(pUnverifiedBaseRequestMessage->m_requestMessageType) - { - default: - // Unknown message type - hr = CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - break; - - case kMsgGetVersion: - hr = VerifyGetVersionRequestMessage(); - break; - - case kMsgAttach: - hr = VerifyAttachRequestMessage(); - break; - } - - // For debug builds, remember whether we successfully verified the message - INDEBUG(m_fVerified = SUCCEEDED(hr)); - return hr; -} - -// ---------------------------------------------------------------------------- -// RequestMessageVerifier::VerifyGetVersionRequestMessage -// -// Description: -// Once a BaseRequestMessage has been verified as self-consistent, and is of type -// kMsgGetVersion, this helper is called to verify consistency as a Get Version -// message -// -// Return Value: -// S_OK or CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT -// -// Assumptions: -// * Verify() calls this, but only after it has verified base type -// - -HRESULT RequestMessageVerifier::VerifyGetVersionRequestMessage() -{ - LIMITED_METHOD_CONTRACT; - - const BaseRequestMessage * pBaseRequestMessage = - (const BaseRequestMessage *) m_pbRequestMessage; - - // Not much to verify here, since the get version request message is simply a - // BaseRequestMessage (no subtype) - - // Not allowed to call this unless you checked the m_requestMessageType first! - _ASSERTE(pBaseRequestMessage->m_requestMessageType == kMsgGetVersion); - - if (pBaseRequestMessage->m_cbMessage != sizeof(BaseRequestMessage)) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// RequestMessageVerifier::VerifyAttachRequestMessage -// -// Description: -// Once a BaseRequestMessage has been verified as self-consistent, and is of type -// kMsgAttach, this helper is called to verify consistency of derived type -// AttachRequestMessage -// -// Return Value: -// S_OK or CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT -// -// Assumptions: -// * Verify() calls this, but only after it has verified base type -// - -HRESULT RequestMessageVerifier::VerifyAttachRequestMessage() -{ - LIMITED_METHOD_CONTRACT; - - const BaseRequestMessage * pBaseRequestMessage = - (const BaseRequestMessage *) m_pbRequestMessage; - - // Not allowed to call this unless you checked the m_requestMessageType first! - _ASSERTE(pBaseRequestMessage->m_requestMessageType == kMsgAttach); - - // Enough memory to cast to AttachRequestMessage? - if (pBaseRequestMessage->m_cbMessage < sizeof(AttachRequestMessage)) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - AttachRequestMessage * pUnverifiedAttachRequestMessage = - (AttachRequestMessage *) pBaseRequestMessage; - - // Is client data properly contained inside message? Use 64-bit arithmetic to - // detect overflow - UINT64 ui64TotalMsgLength = (UINT64) pUnverifiedAttachRequestMessage->m_cbMessage; - UINT64 ui64ClientDataStartOffset = (UINT64) pUnverifiedAttachRequestMessage->m_dwClientDataStartOffset; - UINT64 ui64ClientDataLength = (UINT64) pUnverifiedAttachRequestMessage->m_cbClientDataLength; - - // Client data must occur AFTER struct - if (ui64ClientDataStartOffset < sizeof(AttachRequestMessage)) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - // Client data should be wholly contained inside the message - if (ui64ClientDataStartOffset + ui64ClientDataLength > ui64TotalMsgLength) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - // m_wszProfilerPath must be a NULL-terminated string. - if (wmemchr(pUnverifiedAttachRequestMessage->m_wszProfilerPath, - W('\0'), - _countof(pUnverifiedAttachRequestMessage->m_wszProfilerPath)) == NULL) - { - return CORPROF_E_UNRECOGNIZED_PIPE_MSG_FORMAT; - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// RequestMessageVerifier::GetBaseRequestMessage -// -// Description: -// After you've called code:RequestMessageVerifier::Verify, this function will hand -// you a pointer to the verified request message. (If you call this before verifying -// the message, it'll assert.) -// -// Return Value: -// Pointer to the verified message -// -// Assumptions: -// * Call code:RequestMessageVerifier::Verify first! -// - -const BaseRequestMessage * RequestMessageVerifier::GetBaseRequestMessage() -{ - LIMITED_METHOD_CONTRACT; - - // Not allowed to ask for the message unless it's been successfully verified! - _ASSERTE(m_fVerified); - - return (const BaseRequestMessage *) m_pbRequestMessage; -} - - -//--------------------------------------------------------------------------------------- -// #ConnectedPipeHolder -// -// Simple holder that ensures a connected pipe disconnects its client when the scope is -// over. User of the class is responsible for creating the pipe and connecting the pipe, -// before using this holder. The user of the class is responsible for closing the pipe -// after this holder goes away. -// - -// ---------------------------------------------------------------------------- -// AcquireConnectedPipe -// -// Description: -// Used for ConnectedPipeHolder when acquiring a pipe HANDLE. Does nothing but -// assert that the handle is valid. -// -// Arguments: -// * hConnectedPipe - HANDLE being acquired -// - -void AcquireConnectedPipe(HANDLE hConnectedPipe) -{ - LIMITED_METHOD_CONTRACT; - _ASSERTE(IsValidHandle(hConnectedPipe)); -} - -// ---------------------------------------------------------------------------- -// ReleaseConnectedPipe -// -// Description: -// Used for ConnectedPipeHolder when releasing a pipe HANDLE. Disconnects the pipe -// from its client, but leaves the pipe open and ready for the next client connection. -// -// Arguments: -// * hConnectedPipe - HANDLE to pipe being disconnected -// - -void ReleaseConnectedPipe(HANDLE hConnectedPipe) -{ - LIMITED_METHOD_CONTRACT; - - _ASSERTE(IsValidHandle(hConnectedPipe)); - - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Disconnecting pipe from current client.\n")); - - if (!DisconnectNamedPipe(hConnectedPipe)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: DisconnectNamedPipe failed with %d.\n", - GetLastError())); - } -} - -// See code:#ConnectedPipeHolder -typedef Wrapper<HANDLE, AcquireConnectedPipe, ReleaseConnectedPipe, - (UINT_PTR) INVALID_HANDLE_VALUE> ConnectedPipeHolder; - - -// ---------------------------------------------------------------------------- -// Implementation of ProfilingAPIAttachServer: the primary class that handles the server -// end of the pipe by receiving trigger requests, carrying them out, and then sending -// responses back to the trigger (client end of pipe). -// -// This is the meat. Savor its juices. - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ExecutePipeRequests -// -// Description: -// The AttachThread is responsible for performing attach and detach operations. This -// function comprises the main loop for the "attach" operations. Creates the pipe -// server, and repeatedly connects to clients (i.e., trigger processes calling -// AttachProfiler() API), services them, and disconnects them. Once client connections -// stop arriving for a while (default is 5 minutes), the loop ends, the pipe server is -// destroyed, and this function returns. (Note: the exception is when running in -// code:ProfilingAPIAttachDetach::kAlwaysOn mode. In that case, this function loops -// forever over all clients, without timing out and returning if it takes a long time -// for the next connection request to come in.) -// -// Return Value: -// Any success code implies one client successfully attached a profiler, else, error -// HRESULT indicating the last error encountered with a client. -// - -HRESULT ProfilingAPIAttachServer::ExecutePipeRequests() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - HRESULT hr; - AttachStatus attachStatusOverall = kNoAttachRequested; - - // First create the pipe server. If this fails, all is lost - hr = CreateAttachPipe(); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Failed trying to create attach pipe server. hr=0x%x.\n", - hr)); - ProfilingAPIUtility::LogProfError(IDS_E_PROF_ATTACHTHREAD_INIT, hr); - return hr; - } - - // Thank you, CreateAttachPipe()! - _ASSERTE(IsValidHandle(m_hPipeServer)); - - // Now loop until there are no more clients to service. Remember if any of the - // clients got a profiler to attach, so we can return the appropriate HRESULT. - // - // Note that we intentionally keep on looping even after a profiler is attached, just - // in case there are any extra client requests coming in (e.g., user launched a - // couple triggers simultanously, or a single trigger retried AttachProfiler API a - // couple times). Once client connections stop coming in for a while, - // ServiceOneClient will fail with a timeout, and we'll break out of the loop. - // - // Also note that, in kAlwaysOn mode, we loop forever until the thread naturally dies - // during app shutdown - - while (SUCCEEDED(hr) || - (ProfilingAPIAttachDetach::GetAttachThreadingMode() == - ProfilingAPIAttachDetach::kAlwaysOn)) - { - AttachStatus attachStatusForThisClient = kNoAttachRequested; - - hr = ServiceOneClient(&attachStatusForThisClient); - - // #AttachStatusOrder - // Here's where the order of the AttachStatus enum is important. Any given client - // must have an attach status "better" than the current overall attach status, - // for us to want the overall attach status to change (to match the client's - // status). See code:ProfilingAPIAttachServer::AttachStatus - if ((int) attachStatusForThisClient > (int) attachStatusOverall) - { - attachStatusOverall = attachStatusForThisClient; - } - } - - // We reach this point only when we're in kOnDemand mode, and a failure is causing - // us to destroy the pipe (usually the failure is simply a timeout waiting for the - // next client to come along). - _ASSERTE(FAILED(hr) && - (ProfilingAPIAttachDetach::GetAttachThreadingMode() == - ProfilingAPIAttachDetach::kOnDemand)); - - // This switch statement can forgive, but it will never forget. We went through all - // the trouble of making an AttachThread and a pipe, and now we're destroying them. - // If no one even asked to attach a profiler in the meantime, this switch notes that - // in the event log. Conversely, if at least some client successfully attached a - // profiler, return S_OK. - - switch(attachStatusOverall) - { - default: - _ASSERTE(!"Unknown AttachStatus value!"); - return E_UNEXPECTED; - - case kNoAttachRequested: - // All this time, and no one even asked for an attach? Wack. Log and return the - // last error we got - _ASSERTE(FAILED(hr)); - ProfilingAPIUtility::LogProfError(IDS_E_PROF_NO_ATTACH_REQ, hr); - return hr; - - case kAttachFailed: - // Someone tried to attach and failed. Event was already logged at that time - _ASSERTE(FAILED(hr)); - return hr; - - case kAttachSucceeded: - // At least one of the clients managed to get a profiler successfully attached - // (info event was logged at that time), so all is well - return S_OK; - } -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::CreateAttachPipe -// -// Description: -// Creates a new pipe server, that is not yet connected to a client -// -// Return Value: -// HRESULT indicating success or failure -// - -HRESULT ProfilingAPIAttachServer::CreateAttachPipe() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - HRESULT hr; - SECURITY_ATTRIBUTES *psa = NULL; - SECURITY_ATTRIBUTES sa; - - // Only assign security attributes for non-app container scenario - // We are assuming the default for app container scenario is good enough - if (!ProfilingAPIAttachDetach::IsAppContainerProcess(GetCurrentProcess())) - { - hr = ProfilingAPIAttachDetach::InitSecurityAttributes(&sa, sizeof(sa)); - if (FAILED(hr)) - { - return hr; - } - - psa = &sa; - } - - StackSString attachPipeName; - hr = ProfilingAPIAttachDetach::GetAttachPipeName(::GetCurrentProcess(), &attachPipeName); - if (FAILED(hr)) - { - return hr; - } - - m_hPipeServer = CreateNamedPipeW( - attachPipeName.GetUnicode(), - PIPE_ACCESS_DUPLEX | // server and client read/write to pipe - FILE_FLAG_OVERLAPPED, // server may read asynchronously & use a timeout - PIPE_TYPE_MESSAGE | // pipe data written as stream of messages - PIPE_READMODE_MESSAGE, // pipe data read as stream of messages - 1, // Only one instance of the pipe is allowed - sizeof(GetVersionResponseMessage), // Hint of typical response size (GetVersion is the biggest) - sizeof(AttachRequestMessage) + - 0x100, // Hint of typical request size (attach requests are the - // biggest, plus figure 0x100 for client data) - 1000, // nDefaultTimeOut: unused. Clients will always - // specify their own timeout when waiting - // for the pipe to appear - psa // lpSecurityAttributes - ); - if (m_hPipeServer == INVALID_HANDLE_VALUE) - { - return HRESULT_FROM_GetLastError(); - } - - _ASSERTE(IsValidHandle(m_hPipeServer)); - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF: Successfully created attach pipe server. Name: '%S'.\n", - attachPipeName.GetUnicode())); - - return S_OK; -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ServiceOneClient -// -// Description: -// Awaits a connection from a client, receives the client's requests, executes and -// responds to those requests, and then disconnects the client on error or once a -// profiler has been attached as a result. If any blocking operation takes too long, -// this will disconnect the client as well. -// -// Arguments: -// * pAttachStatusForClient - [out] enum indicating whether an attach request was -// received and processed successfully. NOTE: This out param is always set -// properly, even if this function returns an error. -// -// Return Value: -// * error HRESULT: something bad happened with the pipe itself (e.g., couldn't -// connect to a new client due to timeout or something worse). When in kOnDemand -// mode, an error return from this function indicates the entire AttachThread -// should go away. -// * S_OK: Pipe is fine and connected to at least one client. That connection may or -// may not have resulted in successful communication or a profiler attach. But in -// any case, the pipe is still intact, and the caller should connect with the next -// client. -// -// Notes: -// * A failure event will be logged for any kind of user-actionable failure that -// occurs in this function or callees. -// * A failure event is NOT logged for a NON-actionable failure such as failure in -// communicating a response message back to the trigger (client). See comment at -// top of code:ProfilingAPIAttachServer::WriteResponseToPipe - -HRESULT ProfilingAPIAttachServer::ServiceOneClient( - AttachStatus * pAttachStatusForClient) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - _ASSERTE(pAttachStatusForClient != NULL); - - HRESULT hr = E_UNEXPECTED; - *pAttachStatusForClient = kNoAttachRequested; - - // What is the max timeout for each blocking wait for the trigger? Examples of - // blocking waits: wait for a pipe client to show up, or for the client to send a - // request, or for the pipe to transfer our response to the client. - // - // If any blocking operation takes longer than this, the current function will - // timeout. - // * While in kOnDemand mode, a timeout waiting for a client to connect will - // cause the AttachThread to give up, go away, and the app reverts to - // non-attach performance characteristics. The Global Attach Event will need - // to be signaled again by a trigger process (via AttachProfiler API) before - // a new AttachThread gets created and tries again. - // * Once a client is connected, timeouts from this function simply cause that - // client to be disconnected, and this function will be called again to wait - // (with timeout!) for the next client to connect. - m_dwMillisecondsMaxPerWait = CLRConfig::GetConfigValue(CLRConfig::EXTERNAL_ProfAPIMaxWaitForTriggerMs); - - hr = ConnectToClient(); - if (FAILED(hr)) - { - if (hr != HRESULT_FROM_WIN32(ERROR_TIMEOUT)) - { - // Any error other than timeout is unexpected and should be logged. Timeouts, - // however, are expected, as eventually clients will stop trying to connect - // to the pipe, so no need to log that. - ProfilingAPIUtility::LogProfError(IDS_E_PROF_CONNECT_TO_TRIGGER, hr); - } - return hr; - } - - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF: Pipe server is now connected to a new client.\n")); - - // This forces a call to DisconnectNamedPipe before we return. That kicks the current - // client off of the pipe, and leaves the pipe available for the next client - // connection. - ConnectedPipeHolder connectedPipeHolder(m_hPipeServer); - - // Keep executing requests from this client until it asks for (and we attempt) an - // attach. Whether the attach succeeds or fails, that's the end of this client, and - // we'll fall out of the loop and return. - while (*pAttachStatusForClient == kNoAttachRequested) - { - hr = ServiceOneRequest(pAttachStatusForClient); - if (FAILED(hr)) - { - // Low-level error on the pipe itself indicating that we should disconnect - // from this client, and try connecting to a new one. Typical errors you - // might see here: - // * HRESULT_FROM_WIN32(ERROR_BROKEN_PIPE) - // * Someone killed the trigger process (or it timed out) before an - // attach could be requested. - // * HRESULT_FROM_WIN32(ERROR_TIMEOUT) - // * HRESULT_FROM_WIN32(ERROR_SEM_TIMEOUT) - // * Client's taking too long to send a request - // - // Since a failure here indicates a problem with this particular client, and - // not a global problem with the pipe, just convert to S_OK and return so we - // disconnect this client, and the caller knows to try connecting to another - // client. Note that ServiceOneRequest() has already reported any actionable - // problem into the event log. - return S_OK; - } - } - - // A trigger finally managed to request an attach (success of the attach may be - // found in pAttachStatusForClient). So we can return to disconnect this client and - // poll for the next client. - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ConnectToClient -// -// Description: -// Waits until a client connects to the pipe server, or until timeout. -// -// Return Value: -// HRESULT indicating success or failure. -// - -HRESULT ProfilingAPIAttachServer::ConnectToClient() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - - HRESULT hr; - BOOL fRet; - DWORD dwErr; - DWORD cbReceived; - ProfilingAPIAttachDetach::OverlappedResultHolder overlapped; - hr = overlapped.Initialize(); - if (FAILED(hr)) - { - return hr; - } - - // Start an overlapped connection for this pipe instance. - fRet = ConnectNamedPipe(m_hPipeServer, overlapped); - if (fRet) - { - // No need to wait, pipe connected already - return S_OK; - } - - dwErr = GetLastError(); - if (dwErr == ERROR_PIPE_CONNECTED) - { - // In true Windows style, a "failure" with ERROR_PIPE_CONNECTED is - // actually a success case: a client tried to connect before we (the - // server) called ConnectNamedPipe, so that we're now connected - // just fine - return S_OK; - } - - if (dwErr != ERROR_IO_PENDING) - { - // An error we cannot recover from - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: ConnectNamedPipe failed. hr=0x%x.\n", - HRESULT_FROM_WIN32(dwErr))); - return HRESULT_FROM_WIN32(dwErr); - } - - // Typical case: ERROR_IO_PENDING. ConnectNamedPipe is waiting (in overlapped mode) - // for a client to connect. Block until this happens (or we timeout) - - hr = overlapped.Wait( - - // How long we wait for the next client to show up depends on our threading mode - (ProfilingAPIAttachDetach::GetAttachThreadingMode() == - ProfilingAPIAttachDetach::kAlwaysOn) ? - - // In always-on mode, we're willing to wait forever until the next client - // shows up. - INFINITE : - - // In on-demand mode, we want the AttachThread to exit if there aren't - // any new clients in a reasonable amount of time. - m_dwMillisecondsMaxPerWait, - - m_hPipeServer, - &cbReceived); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Waiting for overlapped result for ConnectNamedPipe failed. hr=0x%x.\n", - hr)); - return hr; - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ServiceOneRequest -// -// Description: -// Receives, executes, and responds to a single request from a single client. -// -// Arguments: -// * pAttachStatus - [out] enum indicating whether an attach request was received and -// processed successfully. NOTE: This out param is always set properly, even if -// this function returns an error. -// -// Return Value: -// * S_OK: Request was received. It may or may not have been processed successfully. -// Any processing failure would be due to a high level problem, like an unknown -// request format, or a CLR problem in handling the request ("can't attach -// profiler cuz profiler already loaded"). In any case, the caller may leave the -// pipe connection to this client open, as the connection is valid. -// * error: Low-level error (e.g., OS pipe failure or timeout) trying to receive the -// request or send a response. Such an error is generally unexpected and will -// cause the caller to close the connection to the client (though the pipe will -// remain up for the next client to try connecting). -// -// Notes: -// * A failure event will be logged for any kind of user-actionable failure that -// occurs in this function or callees. -// * A failure event is NOT logged for a NON-actionable failure such as failure in -// communicating a response message back to the trigger (client). See comment at -// top of code:ProfilingAPIAttachServer::WriteResponseToPipe -// - -HRESULT ProfilingAPIAttachServer::ServiceOneRequest(AttachStatus * pAttachStatus) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - _ASSERTE(pAttachStatus != NULL); - - HRESULT hr; - DWORD cbRequestMessageRead; - *pAttachStatus = kNoAttachRequested; - - // Reading from the pipe is a 3-step process. - // - // * 1. Read into a 0-sized buffer. This causes us to block (with timeout) until the - // message is in the pipe and ready to be analyzed. Since the buffer is 0-sized, - // the message is not actually read out of the pipe yet. - // * 2. Now that we know the message is available, peek into the pipe to extract the - // size of the message - // * 3. Now that we know the size, allocate a sufficient buffer, and repeat step 1, - // but with the appropriately sized buffer. This time the data is emptied out of - // the pipe. - - // Step 1: Read request once w/ 0-sized buffer so we know when the message is ready; - // at that point we can ask how long the message is - hr = ReadRequestFromPipe( - NULL, // Request buffer - 0, // Size of request buffer - &cbRequestMessageRead); - if (FAILED(hr) && (hr != HRESULT_FROM_WIN32(ERROR_MORE_DATA))) - { - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - // Step 2: Message is ready. How big is it? - DWORD cbRequestMessage; - if (!PeekNamedPipe( - m_hPipeServer, - NULL, // Request buffer (0-size for now) - 0, // Size of request buffer - NULL, // lpBytesRead (NULL cuz message shan't be read) - NULL, // lpTotalBytesAvail (NULL cuz don't care) - &cbRequestMessage)) - { - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - // 0-sized requests are invalid. Something wrong with the pipe? - if (cbRequestMessage == 0) - { - hr = E_UNEXPECTED; - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - // Step 3: message is ready and we know the size. Make the buffer, and read it in. - - NewHolder<BYTE> pbRequestMessage(new (nothrow) BYTE[cbRequestMessage]); - if (pbRequestMessage == NULL) - { - hr = E_OUTOFMEMORY; - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - hr = ReadRequestFromPipe( - pbRequestMessage, - cbRequestMessage, - &cbRequestMessageRead); - if (FAILED(hr)) - { - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - if (cbRequestMessage != cbRequestMessageRead) - { - // Somehow we read a different number of bytes than we were told was in the pipe - // buffer. Pipe having problems? - hr = E_UNEXPECTED; - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PIPE_RCV, hr); - return hr; - } - - // Request successfully read! Now figure out what the request is, carry it out, and - // send a response. This function will report to the event log any user-actionable - // error. - return InterpretAndExecuteRequestMessage(pbRequestMessage, cbRequestMessage, pAttachStatus); -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ReadRequestFromPipe -// -// Description: -// Performs a ReadFile with timeout on the pipe server to read the client's request -// message. -// -// Arguments: -// * pvRequestBuffer - [out] Buffer into which the request will be placed -// * cbRequestBuffer - [in] Size, in bytes, of the request buffer -// * pcbActualRequest - [out] Actual number of bytes placed into the request buffer. -// -// Return Value: -// HRESULT indicating success or failure -// -// Assumptions: -// * m_hPipeServer must be connected to a client. -// -// Notes: -// * The [out] parameters may be written to even if this function fails. But their -// contents should be ignored by the caller in this case. -// - -HRESULT ProfilingAPIAttachServer::ReadRequestFromPipe( - LPVOID pvRequestBuffer, - DWORD cbRequestBuffer, - DWORD * pcbActualRequest) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - - // NULL buffer implies zero size! - _ASSERTE((pvRequestBuffer != NULL) || (cbRequestBuffer == 0)); - - _ASSERTE(pcbActualRequest != NULL); - - HRESULT hr; - DWORD dwErr; - ProfilingAPIAttachDetach::OverlappedResultHolder overlapped; - hr = overlapped.Initialize(); - if (FAILED(hr)) - { - return hr; - } - - if (ReadFile( - m_hPipeServer, - pvRequestBuffer, - cbRequestBuffer, - pcbActualRequest, - overlapped)) - { - // Quick read, no waiting - return S_OK; - } - - dwErr = GetLastError(); - if (dwErr != ERROR_IO_PENDING) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: ReadFile on the pipe failed. hr=0x%x.\n", - HRESULT_FROM_WIN32(dwErr))); - return HRESULT_FROM_WIN32(dwErr); - } - - // Typical case=ERROR_IO_PENDING: gotta wait until request comes in (or we timeout) - - hr = overlapped.Wait( - m_dwMillisecondsMaxPerWait, - m_hPipeServer, - pcbActualRequest); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Waiting for overlapped result for ReadFile on the pipe failed. hr=0x%x.\n", - hr)); - return hr; - } - - return S_OK; -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::InterpretAndExecuteRequestMessage -// -// Description: -// Takes an unverified stream of bytes read from the pipe, and then verifies the bytes -// as a self-consistent message and executes the request (either get version or -// attach). Once the request has been executed, a response is sent back across the -// pipe. -// -// Arguments: -// * pbRequestMessage - [in] Bytes read from pipe -// * cbRequestMessage - [in] Count of bytes read from pipe -// * pAttachStatus - [out] (see comment header for -// code:ProfilingAPIAttachServer::ServiceOneRequest) -// -// Return Value: -// HRESULT indicating success or failure with low-level reading / writing operations -// on the pipe that indicate whether the caller should abandon this client connection. -// Higher-level failures (e.g., bogus request messages, or failure performing the -// actual attach) do not cause an error to be returned from this function. Caller may -// use pAttachStatus to determine whether this request resulted in a successful -// profiler attach. -// -// Notes: -// * This (or callee) will log an event on actionable failures. (Failure to send a -// response back to the trigger is not considered actionable. See comment at top -// of code:ProfilingAPIAttachServer::WriteResponseToPipe.) -// - -HRESULT ProfilingAPIAttachServer::InterpretAndExecuteRequestMessage( - LPCBYTE pbRequestMessage, - DWORD cbRequestMessage, - AttachStatus * pAttachStatus) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - - // This causes events to be logged, which loads resource strings, - // which takes locks. - CAN_TAKE_LOCK; - - MODE_PREEMPTIVE; - } - CONTRACTL_END; - - _ASSERTE(pbRequestMessage != NULL); - _ASSERTE(pAttachStatus != NULL); - - HRESULT hr; - - *pAttachStatus = kNoAttachRequested; - - // Message bytes have not been verified, so none of the contents (such as sizes or - // offsets) may be trusted until they're all verified. - RequestMessageVerifier messageVerifier(pbRequestMessage, cbRequestMessage); - hr = messageVerifier.Verify(); - if (FAILED(hr)) - { - // Bogus request message. Log to event log - ProfilingAPIUtility::LogProfError(IDS_E_PROF_INVALID_MSG); - - // And send complaint back to trigger - BaseResponseMessage responseMsg(hr); - return WriteResponseToPipe(&responseMsg, sizeof(responseMsg)); - } - - // Yay! Message is valid - const BaseRequestMessage * pBaseRequestMessage = messageVerifier.GetBaseRequestMessage(); - - // Execute request based on its type - switch(pBaseRequestMessage->m_requestMessageType) - { - default: - // RequestMessageVerifier should have verified no unexpected request message - // types slipped through. - _ASSERTE(!"Unexpected m_requestMessageType"); - return E_UNEXPECTED; - - case kMsgGetVersion: - return ExecuteGetVersionRequestMessage(); - - case kMsgAttach: - return ExecuteAttachRequestMessage( - (const AttachRequestMessage *) pBaseRequestMessage, - pAttachStatus); - } -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ExecuteAttachRequestMessage -// -// Description: -// Once an attach request message has been verified as self-consistent (see -// code:RequestMessageVerifier), call this function to actually attach the profiler -// using data from the message -// -// Arguments: -// * pAttachRequestMessage - [in] An already-verified attach request message that was -// received from trigger. -// * pAttachStatus - [out] (see comment header for -// code:ProfilingAPIAttachServer::ServiceOneRequest) -// -// Return Value: -// HRESULT indicating success or failure in sending response over the pipe back to the -// trigger. Note that a failure to perform the attach does not necessarily cause a -// failure HRESULT to be returned by this function (only low-level pipe problems will -// cause this function to fail). A failure performing the attach is noted in -// pAttachStatus. -// -// Notes: -// * This (or a callee) will log an event on failure or success of performing the -// attach. However, once the attach is complete (failed or succeeded), no event -// will be logged if there is a communication error sending the response back to -// the trigger. (See comment at top of -// code:ProfilingAPIAttachServer::WriteResponseToPipe) -// - -HRESULT ProfilingAPIAttachServer::ExecuteAttachRequestMessage( - const AttachRequestMessage * pAttachRequestMessage, - AttachStatus * pAttachStatus) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - - // This causes events to be logged, which loads resource strings, - // which takes locks. - CAN_TAKE_LOCK; - - MODE_PREEMPTIVE; - } - CONTRACTL_END; - - _ASSERTE(pAttachRequestMessage != NULL); - _ASSERTE(pAttachStatus != NULL); - - // Start off pessimistic - *pAttachStatus = kAttachFailed; - - if (g_profControlBlock.curProfStatus.Get() != kProfStatusNone) - { - // Sorry, profiler's already here. - // - // Note: It might appear that there's a race here (i.e., - // g_profControlBlock.curProfStatus.Get() == kProfStatusNone so we try to load the - // profiler, but another profiler is already getting loaded somehow, and - // g_profControlBlock.curProfStatus.Get() just hasn't been updated yet. So we end - // up loading two profilers at once.) But there is actually no race here for a - // couple reasons: - // * 1. Startup load of profiler occurs before the pipe is even constructed. So - // we won't get an attach request while a startup load is in progress - // * 2. Pipe requests are serialized. OS handles this for us because: - // * a. Only one instance of the attach pipe is allowed at a time, because - // our call to CreateNamedPipeW specifies only 1 instance is allowed, and - // * b. Within that single pipe instance, messages are processed serially, - // from the single AttachThread that successfully created the pipe in the - // first place. - ProfilingAPIUtility::LogProfError(IDS_E_PROF_PROFILER_ALREADY_ACTIVE); - - _ASSERTE(*pAttachStatus == kAttachFailed); - - // Inform trigger that attach cannot happen now - AttachResponseMessage responseMsg(CORPROF_E_PROFILER_ALREADY_ACTIVE); - return WriteResponseToPipe(&responseMsg, sizeof(responseMsg)); - } - - // If the client sends us a V2 message, retrieve the time out value - // In theory both client and server should be both on v4.5+ but I'm assigning a default value - // just in case - DWORD dwConcurrentGCWaitTimeoutInMs = INFINITE; - if (AttachRequestMessageV2::CanCastTo(pAttachRequestMessage)) - dwConcurrentGCWaitTimeoutInMs = - static_cast<const AttachRequestMessageV2 *>(pAttachRequestMessage)->m_dwConcurrentGCWaitTimeoutInMs; - - // LoadProfilerForAttach & callees ensure an event is logged on error. - HRESULT hrAttach = ProfilingAPIUtility::LoadProfilerForAttach( - - // Profiler's CLSID - &(pAttachRequestMessage->m_clsidProfiler), - - // wszProfilerDLL - pAttachRequestMessage->m_wszProfilerPath, - - // Client data ptr - (pAttachRequestMessage->m_cbClientDataLength == 0) ? - // No client data: use NULL - NULL : - // Else, follow offset to find client data - (LPVOID) (((LPBYTE) pAttachRequestMessage) + - pAttachRequestMessage->m_dwClientDataStartOffset), - - // Client data size - pAttachRequestMessage->m_cbClientDataLength, - - // Time out for wait operation on current gc that is in progress - dwConcurrentGCWaitTimeoutInMs); - - // Inform caller if attach succeeded - if (SUCCEEDED(hrAttach)) - { - *pAttachStatus = kAttachSucceeded; - } - else - { - _ASSERTE(*pAttachStatus == kAttachFailed); - } - - // Inform trigger about how the attach went - AttachResponseMessage responseMsg(hrAttach); - return WriteResponseToPipe(&responseMsg, sizeof(responseMsg)); -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ExecuteGetVersionRequestMessage -// -// Description: -// Composes a response message to the "GetVersion" request message. Response contains -// the version of the profilee (server), and the minimum allowable version of a -// trigger (client) we're willing to talk to. -// -// Return Value: -// HRESULT Indicating success or failure. -// -// Notes: -// * Composing the response cannot fail, and we are not logging communcation failures -// in sending response messages (see comment at top of -// code:ProfilingAPIAttachServer::WriteResponseToPipe), so no event will be logged -// by this function or callees. -// - -HRESULT ProfilingAPIAttachServer::ExecuteGetVersionRequestMessage() -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - GetVersionResponseMessage responseMsg( - // S_OK means we successfully carried out the "GetVersion" request - S_OK, - - // This is the version of the target profilee app - ProfilingAPIAttachDetach::kCurrentProcessVersion, - - // This is the oldest trigger that we allow communicating with - ProfilingAPIAttachDetach::kMinimumAllowableTriggerVersion); - - return WriteResponseToPipe(&responseMsg, sizeof(responseMsg)); -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::WriteResponseToPipeNoBufferSizeCheck -// -// Description: -// Performs a WriteFile with timeout on the pipe server to write the specified -// response back to the client. This is an internal helper used by -// code:ProfilingAPIAttachServer::WriteResponseToPipe -// -// Arguments: -// * pvResponse - [in] Buffer containing the response to be sent to the client -// * cbResponse - [in] Size, in bytes, of the response to send. -// * pcbWritten - [out] Actual number of bytes sent to client -// -// Return Value: -// HRESULT indicating success or failure -// -// Assumptions: -// * m_hPipeServer must be connected to a client. -// -// Notes: -// * The [out] parameter may be written to even if this function fails. But its -// contents should be ignored by the caller in this case. -// - -HRESULT ProfilingAPIAttachServer::WriteResponseToPipeNoBufferSizeCheck( - LPVOID pvResponse, - DWORD cbResponse, - DWORD * pcbWritten) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - _ASSERTE(pvResponse != NULL); - _ASSERTE(pcbWritten != NULL); - - HRESULT hr; - DWORD dwErr; - ProfilingAPIAttachDetach::OverlappedResultHolder overlapped; - hr = overlapped.Initialize(); - if (FAILED(hr)) - { - return hr; - } - - if (WriteFile( - m_hPipeServer, - pvResponse, - cbResponse, - pcbWritten, - overlapped)) - { - // Quick write, no waiting - return S_OK; - } - - dwErr = GetLastError(); - if (dwErr != ERROR_IO_PENDING) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: WriteFile on the pipe failed. hr=0x%x.\n", - HRESULT_FROM_WIN32(dwErr))); - return HRESULT_FROM_WIN32(dwErr); - } - - // Typical case=ERROR_IO_PENDING: gotta wait until response is sent (or we timeout) - - hr = overlapped.Wait( - m_dwMillisecondsMaxPerWait, - m_hPipeServer, - pcbWritten); - if (FAILED(hr)) - { - LOG(( - LF_CORPROF, - LL_ERROR, - "**PROF: Waiting for overlapped result for WriteFile on the pipe failed. hr=0x%x.\n", - hr)); - return hr; - } - - return S_OK; -} - -#endif //FEATURE_PROFAPI_ATTACH_DETACH diff --git a/src/vm/profattachserver.h b/src/vm/profattachserver.h deleted file mode 100644 index 01968e029d..0000000000 --- a/src/vm/profattachserver.h +++ /dev/null @@ -1,109 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttachServer.h -// - -// -// Definitions of ProfilingAPIAttachServer and helpers, which are used by the -// AttachThread running in the target profilee (server end of the pipe) to receive and -// carry out requests that are sent by the trigger (client end of the pipe). -// - -// ====================================================================================== - -#ifndef __PROF_ATTACH_SERVER_H__ -#define __PROF_ATTACH_SERVER_H__ - - -//--------------------------------------------------------------------------------------- -// Helper to verify any messages received by the target profilee, before the target -// profilee is allowed to trust any of the message contents. - -class RequestMessageVerifier -{ -public: - RequestMessageVerifier(LPCBYTE pbRequestMessage, DWORD cbRequestMessage); - HRESULT Verify(); - const BaseRequestMessage * GetBaseRequestMessage(); - -protected: - LPCBYTE m_pbRequestMessage; - DWORD m_cbRequestMessage; - INDEBUG(BOOL m_fVerified); - - HRESULT VerifyGetVersionRequestMessage(); - HRESULT VerifyAttachRequestMessage(); -}; - -//--------------------------------------------------------------------------------------- -// Here's the beef. All the pipe server stuff running on the AttachThread is housed in -// this class. - -class ProfilingAPIAttachServer -{ -public: - ProfilingAPIAttachServer(); - ~ProfilingAPIAttachServer(); - - HRESULT ExecutePipeRequests(); - -protected: - //--------------------------------------------------------------------------------------- - // Notes whether an attach was requested, and whether the request was serviced - // successfully. Primarily used to aggregate status across multiple trigger processes - // that connect over the pipe, so we know what we've logged to the event log. - // - // Notes: - // * The order is important! Overall attach status may change only in ascending - // order of the values of this enum. See - // code:ProfilingAPIAttachDetach::ExecutePipeRequests#AttachStatusOrder - enum AttachStatus - { - // Default, and worst of all: No one requested a profiler attach - kNoAttachRequested = 0, - - // Slightly better: someone figured out how to ask for an attach, but it failed. - kAttachFailed = 1, - - // Bestest of all: someone requested an attach, and it worked - kAttachSucceeded = 2, - }; - - // Server end of the pipe created by the current process (which is the target - // profilee). - HandleHolder m_hPipeServer; - - // Most blocking operations on the server end of the pipe (i.e., this process), use - // this as the timeout. The exception is waiting for new connections when in - // code:ProfilingAPIAttachDetach::kAlwaysOn mode (which waits with INFINITE timeout). - DWORD m_dwMillisecondsMaxPerWait; - - HRESULT CreateAttachPipe(); - HRESULT ServiceOneClient(AttachStatus * pAttachStatusForClient); - HRESULT ConnectToClient(); - HRESULT ServiceOneRequest( - AttachStatus * pAttachStatus); - HRESULT ReadRequestFromPipe( - LPVOID pvRequestBuffer, - DWORD cbRequestBuffer, - DWORD * pcbActualRequest); - HRESULT InterpretAndExecuteRequestMessage( - LPCBYTE pbRequestMessage, - DWORD cbRequestMessage, - AttachStatus * pAttachStatus); - HRESULT WriteResponseToPipeNoBufferSizeCheck( - LPVOID pvResponse, - DWORD cbResponse, - DWORD * pcbWritten); - HRESULT WriteResponseToPipe( - LPVOID pvResponse, - DWORD cbResponse); - HRESULT ExecuteGetVersionRequestMessage(); - HRESULT ExecuteAttachRequestMessage( - const AttachRequestMessage * pAttachRequestMessage, - AttachStatus * pAttachStatus); -}; - -#endif // __PROF_ATTACH_SERVER_H__ diff --git a/src/vm/profattachserver.inl b/src/vm/profattachserver.inl deleted file mode 100644 index 1b77f59c52..0000000000 --- a/src/vm/profattachserver.inl +++ /dev/null @@ -1,129 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. -// -// ProfAttachServer.inl -// - -// -// Inlined implementations of portions of ProfilingAPIAttachServer and helpers, which are -// used by the AttachThread running in the target profilee (server end of the pipe) to -// receive and carry out requests that are sent by the trigger (client end of the pipe). -// - -// ====================================================================================== - - -// ---------------------------------------------------------------------------- -// RequestMessageVerifier::RequestMessageVerifier() -// -// Description: -// Constructor that takes stream of bytes read by the target profilee on its pipe. -// After construction, call Verify() to verify the stream of bytes makes a -// well-formed message. -// -// Arguments: -// * pbRequestMessage - Bytes read from pipe -// * cbRequestMessage - Number of bytes read from pipe. -// - -inline RequestMessageVerifier::RequestMessageVerifier( - LPCBYTE pbRequestMessage, - DWORD cbRequestMessage) : - m_pbRequestMessage(pbRequestMessage), - m_cbRequestMessage(cbRequestMessage) -{ - LIMITED_METHOD_CONTRACT; - - INDEBUG(m_fVerified = FALSE); -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::ProfilingAPIAttachServer() -// -// Description: -// Constructor for ProfilingAPIAttachServer, which owns the server end of the pipe -// running in the target profilee - -inline ProfilingAPIAttachServer::ProfilingAPIAttachServer() : - m_dwMillisecondsMaxPerWait(0) -{ - LIMITED_METHOD_CONTRACT; -} - -inline ProfilingAPIAttachServer::~ProfilingAPIAttachServer() -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - if (IsValidHandle(m_hPipeServer)) - { - // m_hPipeServer's destructor is about to destroy the pipe - LOG(( - LF_CORPROF, - LL_INFO10, - "**PROF: Finished communication; closing attach pipe server.\n")); - } -} - - -// ---------------------------------------------------------------------------- -// ProfilingAPIAttachServer::WriteResponseToPipe -// -// Description: -// Sends response bytes across pipe to trigger process. -// -// Arguments: -// * pvResponse - Pointer to bytes to send -// * cbResponse - How many bytes to send -// -// Return Value: -// HRESULT indicating success or failure. -// -// Notes: -// * Purposely does NOT log an event on failure, as an event at this stage would be -// confusing to the user. The requested operation (e.g., Attach) has already been -// performed; this is just the part that communicates the result back to the -// trigger. There's nothing the user could (or would want to) do if response -// communication failed. Either the attach worked or not, and that's already been -// logged to the event log. -// - -inline HRESULT ProfilingAPIAttachServer::WriteResponseToPipe( - LPVOID pvResponse, - DWORD cbResponse) -{ - CONTRACTL - { - THROWS; - GC_TRIGGERS; - MODE_PREEMPTIVE; - CAN_TAKE_LOCK; - } - CONTRACTL_END; - - _ASSERTE(IsValidHandle(m_hPipeServer)); - _ASSERTE(pvResponse != NULL); - - DWORD cbWritten; - - HRESULT hr = WriteResponseToPipeNoBufferSizeCheck( - pvResponse, - cbResponse, - &cbWritten); - - // Check the buffer size against what was written - if (SUCCEEDED(hr) && (cbResponse != cbWritten)) - { - // Partial response sent. Be sure hr reflects there was a problem - hr = E_UNEXPECTED; - } - - return hr; -} diff --git a/src/vm/profilinghelper.cpp b/src/vm/profilinghelper.cpp index 7a686b6c2f..e6d5fb4909 100644 --- a/src/vm/profilinghelper.cpp +++ b/src/vm/profilinghelper.cpp @@ -140,7 +140,6 @@ #ifdef FEATURE_PROFAPI_ATTACH_DETACH -#include "profattach.h" #include "profdetach.h" #endif // FEATURE_PROFAPI_ATTACH_DETACH diff --git a/src/vm/profilinghelper.h b/src/vm/profilinghelper.h index 6847a901d2..287c61628a 100644 --- a/src/vm/profilinghelper.h +++ b/src/vm/profilinghelper.h @@ -64,9 +64,44 @@ public: static HRESULT GetCurrentProcessUserSid(PSID * ppsid); #endif // !FEATURE_PAL - // helper functions for profiler evacuation counter holder - static void IncEvacuationCounter(Thread * pThread); - static void DecEvacuationCounter(Thread * pThread); +#ifdef FEATURE_PROFAPI_ATTACH_DETACH + // ---------------------------------------------------------------------------- + // ProfilingAPIUtility::IncEvacuationCounter + // + // Description: + // Simple helper to increase the evacuation counter inside an EE thread by one + // + // Arguments: + // * pThread - pointer to an EE Thread + // + template<typename ThreadType> + static FORCEINLINE void IncEvacuationCounter(ThreadType * pThread) + { + LIMITED_METHOD_CONTRACT; + + if (pThread) + pThread->IncProfilerEvacuationCounter(); + } + + // ---------------------------------------------------------------------------- + // ProfilingAPIUtility::DecEvacuationCounter + // + // Description: + // Simple helper to decrease the evacuation counter inside an EE thread by one + // + // Arguments: + // * pThread - pointer to an EE Thread + // + template<typename ThreadType> + static FORCEINLINE void DecEvacuationCounter(ThreadType * pThread) + { + LIMITED_METHOD_CONTRACT; + + if (pThread) + pThread->DecProfilerEvacuationCounter(); + } + +#endif // FEATURE_PROFAPI_ATTACH_DETACH // See code:ProfilingAPIUtility::InitializeProfiling#LoadUnloadCallbackSynchronization static CRITSEC_COOKIE GetStatusCrst(); diff --git a/src/vm/profilinghelper.inl b/src/vm/profilinghelper.inl index 5fda04cb44..2bf10be929 100644 --- a/src/vm/profilinghelper.inl +++ b/src/vm/profilinghelper.inl @@ -213,60 +213,4 @@ inline /* static */ CRITSEC_COOKIE ProfilingAPIUtility::GetStatusCrst() return s_csStatus; } -#ifdef FEATURE_PROFAPI_ATTACH_DETACH - -// ---------------------------------------------------------------------------- -// ProfilingAPIUtility::IncEvacuationCounter -// -// Description: -// Simple helper to increase the evacuation counter inside an EE thread by one -// -// Arguments: -// * pThread - pointer to an EE Thread -// -// static -FORCEINLINE void ProfilingAPIUtility::IncEvacuationCounter(Thread * pThread) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - FORBID_FAULT; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - if (pThread) - pThread->IncProfilerEvacuationCounter(); -} - -// ---------------------------------------------------------------------------- -// ProfilingAPIUtility::DecEvacuationCounter -// -// Description: -// Simple helper to decrease the evacuation counter inside an EE thread by one -// -// Arguments: -// * pThread - pointer to an EE Thread -// -// static -FORCEINLINE void ProfilingAPIUtility::DecEvacuationCounter(Thread * pThread) -{ - CONTRACTL - { - NOTHROW; - GC_NOTRIGGER; - FORBID_FAULT; - MODE_ANY; - CANNOT_TAKE_LOCK; - } - CONTRACTL_END; - - if (pThread) - pThread->DecProfilerEvacuationCounter(); -} - -#endif // FEATURE_PROFAPI_ATTACH_DETACH - #endif //__PROFILING_HELPER_INL__ diff --git a/src/vm/proftoeeinterfaceimpl.h b/src/vm/proftoeeinterfaceimpl.h index 481de23393..c6dc289037 100644 --- a/src/vm/proftoeeinterfaceimpl.h +++ b/src/vm/proftoeeinterfaceimpl.h @@ -29,6 +29,7 @@ #include "profilinghelper.h" +#include "profilinghelper.inl" class ProfilerFunctionEnum; diff --git a/src/vm/threads.cpp b/src/vm/threads.cpp index dcd95f8cdb..4dab2896fd 100644 --- a/src/vm/threads.cpp +++ b/src/vm/threads.cpp @@ -1368,9 +1368,9 @@ Thread::Thread() m_debuggerCantStop = 0; m_fInteropDebuggingHijacked = FALSE; m_profilerCallbackState = 0; -#ifdef PROFILING_SUPPORTED +#if defined(PROFILING_SUPPORTED) || defined(PROFILING_SUPPORTED_DATA) m_dwProfilerEvacuationCounter = 0; -#endif // PROFILING_SUPPORTED +#endif // defined(PROFILING_SUPPORTED) || defined(PROFILING_SUPPORTED_DATA) m_pProfilerFilterContext = NULL; diff --git a/src/vm/threads.h b/src/vm/threads.h index 3a521c076d..633cb36bfc 100644 --- a/src/vm/threads.h +++ b/src/vm/threads.h @@ -416,6 +416,16 @@ public: m_pPendingTypeLoad = pPendingTypeLoad; } #endif + void SetProfilerCallbackFullState(DWORD dwFullState) + { + LIMITED_METHOD_CONTRACT; + } + + DWORD SetProfilerCallbackStateFlags(DWORD dwFlags) + { + LIMITED_METHOD_CONTRACT; + return dwFlags; + } #ifdef FEATURE_COMINTEROP_APARTMENT_SUPPORT enum ApartmentState { AS_Unknown }; |