summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--clrdefinitions.cmake4
-rw-r--r--crossgen.cmake1
-rw-r--r--dac.cmake4
-rw-r--r--src/dlls/mscoree/mscoree.cpp4
-rw-r--r--src/dlls/mscoree/mscorwks_ntdef.src2
-rw-r--r--src/inc/corprof.idl22
-rw-r--r--src/inc/metahost.idl1
-rw-r--r--src/inc/profilepriv.h2
-rw-r--r--src/inc/profilepriv.inl2
-rw-r--r--src/pal/prebuilt/inc/corprof.h3833
-rw-r--r--src/vm/CMakeLists.txt7
-rw-r--r--src/vm/diagnosticprotocolhelper.cpp146
-rw-r--r--src/vm/diagnosticprotocolhelper.h4
-rw-r--r--src/vm/diagnosticserver.cpp6
-rw-r--r--src/vm/diagnosticserver.h1
-rw-r--r--src/vm/diagnosticsprotocol.h3
-rw-r--r--src/vm/finalizerthread.cpp150
-rw-r--r--src/vm/finalizerthread.h9
-rw-r--r--src/vm/profattach.cpp1215
-rw-r--r--src/vm/profattach.h399
-rw-r--r--src/vm/profattach.inl459
-rw-r--r--src/vm/profattachclient.cpp944
-rw-r--r--src/vm/profattachclient.h78
-rw-r--r--src/vm/profattachserver.cpp1296
-rw-r--r--src/vm/profattachserver.h109
-rw-r--r--src/vm/profattachserver.inl129
-rw-r--r--src/vm/profilinghelper.cpp1
-rw-r--r--src/vm/profilinghelper.h41
-rw-r--r--src/vm/profilinghelper.inl56
-rw-r--r--src/vm/proftoeeinterfaceimpl.h1
-rw-r--r--src/vm/threads.cpp4
-rw-r--r--src/vm/threads.h10
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)
diff --git a/dac.cmake b/dac.cmake
index 62628cbbe0..82da3d2df7 100644
--- a/dac.cmake
+++ b/dac.cmake
@@ -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 };