1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
5 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
8 /* File created by MIDL compiler version 8.01.0622 */
9 /* @@MIDL_FILE_HEADING( ) */
11 #pragma warning( disable: 4049 ) /* more than 64k source lines */
14 /* verify that the <rpcndr.h> version is high enough to compile this file*/
15 #ifndef __REQUIRED_RPCNDR_H_VERSION__
16 #define __REQUIRED_RPCNDR_H_VERSION__ 475
22 #ifndef __RPCNDR_H_VERSION__
23 #error this stub requires an updated version of <rpcndr.h>
24 #endif /* __RPCNDR_H_VERSION__ */
26 #ifndef COM_NO_WINDOWS_H
29 #endif /*COM_NO_WINDOWS_H*/
34 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
38 /* Forward Declarations */
40 #ifndef __ICorProfilerCallback_FWD_DEFINED__
41 #define __ICorProfilerCallback_FWD_DEFINED__
42 typedef interface ICorProfilerCallback ICorProfilerCallback;
44 #endif /* __ICorProfilerCallback_FWD_DEFINED__ */
47 #ifndef __ICorProfilerCallback2_FWD_DEFINED__
48 #define __ICorProfilerCallback2_FWD_DEFINED__
49 typedef interface ICorProfilerCallback2 ICorProfilerCallback2;
51 #endif /* __ICorProfilerCallback2_FWD_DEFINED__ */
54 #ifndef __ICorProfilerCallback3_FWD_DEFINED__
55 #define __ICorProfilerCallback3_FWD_DEFINED__
56 typedef interface ICorProfilerCallback3 ICorProfilerCallback3;
58 #endif /* __ICorProfilerCallback3_FWD_DEFINED__ */
61 #ifndef __ICorProfilerCallback4_FWD_DEFINED__
62 #define __ICorProfilerCallback4_FWD_DEFINED__
63 typedef interface ICorProfilerCallback4 ICorProfilerCallback4;
65 #endif /* __ICorProfilerCallback4_FWD_DEFINED__ */
68 #ifndef __ICorProfilerCallback5_FWD_DEFINED__
69 #define __ICorProfilerCallback5_FWD_DEFINED__
70 typedef interface ICorProfilerCallback5 ICorProfilerCallback5;
72 #endif /* __ICorProfilerCallback5_FWD_DEFINED__ */
75 #ifndef __ICorProfilerCallback6_FWD_DEFINED__
76 #define __ICorProfilerCallback6_FWD_DEFINED__
77 typedef interface ICorProfilerCallback6 ICorProfilerCallback6;
79 #endif /* __ICorProfilerCallback6_FWD_DEFINED__ */
82 #ifndef __ICorProfilerCallback7_FWD_DEFINED__
83 #define __ICorProfilerCallback7_FWD_DEFINED__
84 typedef interface ICorProfilerCallback7 ICorProfilerCallback7;
86 #endif /* __ICorProfilerCallback7_FWD_DEFINED__ */
89 #ifndef __ICorProfilerCallback8_FWD_DEFINED__
90 #define __ICorProfilerCallback8_FWD_DEFINED__
91 typedef interface ICorProfilerCallback8 ICorProfilerCallback8;
93 #endif /* __ICorProfilerCallback8_FWD_DEFINED__ */
96 #ifndef __ICorProfilerCallback9_FWD_DEFINED__
97 #define __ICorProfilerCallback9_FWD_DEFINED__
98 typedef interface ICorProfilerCallback9 ICorProfilerCallback9;
100 #endif /* __ICorProfilerCallback9_FWD_DEFINED__ */
103 #ifndef __ICorProfilerInfo_FWD_DEFINED__
104 #define __ICorProfilerInfo_FWD_DEFINED__
105 typedef interface ICorProfilerInfo ICorProfilerInfo;
107 #endif /* __ICorProfilerInfo_FWD_DEFINED__ */
110 #ifndef __ICorProfilerInfo2_FWD_DEFINED__
111 #define __ICorProfilerInfo2_FWD_DEFINED__
112 typedef interface ICorProfilerInfo2 ICorProfilerInfo2;
114 #endif /* __ICorProfilerInfo2_FWD_DEFINED__ */
117 #ifndef __ICorProfilerInfo3_FWD_DEFINED__
118 #define __ICorProfilerInfo3_FWD_DEFINED__
119 typedef interface ICorProfilerInfo3 ICorProfilerInfo3;
121 #endif /* __ICorProfilerInfo3_FWD_DEFINED__ */
124 #ifndef __ICorProfilerObjectEnum_FWD_DEFINED__
125 #define __ICorProfilerObjectEnum_FWD_DEFINED__
126 typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum;
128 #endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */
131 #ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__
132 #define __ICorProfilerFunctionEnum_FWD_DEFINED__
133 typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum;
135 #endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */
138 #ifndef __ICorProfilerModuleEnum_FWD_DEFINED__
139 #define __ICorProfilerModuleEnum_FWD_DEFINED__
140 typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum;
142 #endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */
145 #ifndef __IMethodMalloc_FWD_DEFINED__
146 #define __IMethodMalloc_FWD_DEFINED__
147 typedef interface IMethodMalloc IMethodMalloc;
149 #endif /* __IMethodMalloc_FWD_DEFINED__ */
152 #ifndef __ICorProfilerFunctionControl_FWD_DEFINED__
153 #define __ICorProfilerFunctionControl_FWD_DEFINED__
154 typedef interface ICorProfilerFunctionControl ICorProfilerFunctionControl;
156 #endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */
159 #ifndef __ICorProfilerInfo4_FWD_DEFINED__
160 #define __ICorProfilerInfo4_FWD_DEFINED__
161 typedef interface ICorProfilerInfo4 ICorProfilerInfo4;
163 #endif /* __ICorProfilerInfo4_FWD_DEFINED__ */
166 #ifndef __ICorProfilerInfo5_FWD_DEFINED__
167 #define __ICorProfilerInfo5_FWD_DEFINED__
168 typedef interface ICorProfilerInfo5 ICorProfilerInfo5;
170 #endif /* __ICorProfilerInfo5_FWD_DEFINED__ */
173 #ifndef __ICorProfilerInfo6_FWD_DEFINED__
174 #define __ICorProfilerInfo6_FWD_DEFINED__
175 typedef interface ICorProfilerInfo6 ICorProfilerInfo6;
177 #endif /* __ICorProfilerInfo6_FWD_DEFINED__ */
180 #ifndef __ICorProfilerInfo7_FWD_DEFINED__
181 #define __ICorProfilerInfo7_FWD_DEFINED__
182 typedef interface ICorProfilerInfo7 ICorProfilerInfo7;
184 #endif /* __ICorProfilerInfo7_FWD_DEFINED__ */
187 #ifndef __ICorProfilerInfo8_FWD_DEFINED__
188 #define __ICorProfilerInfo8_FWD_DEFINED__
189 typedef interface ICorProfilerInfo8 ICorProfilerInfo8;
191 #endif /* __ICorProfilerInfo8_FWD_DEFINED__ */
194 #ifndef __ICorProfilerInfo9_FWD_DEFINED__
195 #define __ICorProfilerInfo9_FWD_DEFINED__
196 typedef interface ICorProfilerInfo9 ICorProfilerInfo9;
198 #endif /* __ICorProfilerInfo9_FWD_DEFINED__ */
201 #ifndef __ICorProfilerMethodEnum_FWD_DEFINED__
202 #define __ICorProfilerMethodEnum_FWD_DEFINED__
203 typedef interface ICorProfilerMethodEnum ICorProfilerMethodEnum;
205 #endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */
208 #ifndef __ICorProfilerThreadEnum_FWD_DEFINED__
209 #define __ICorProfilerThreadEnum_FWD_DEFINED__
210 typedef interface ICorProfilerThreadEnum ICorProfilerThreadEnum;
212 #endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */
215 #ifndef __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
216 #define __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
217 typedef interface ICorProfilerAssemblyReferenceProvider ICorProfilerAssemblyReferenceProvider;
219 #endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */
222 /* header files for imported files */
230 /* interface __MIDL_itf_corprof_0000_0000 */
233 #define CorDB_CONTROL_Profiling "Cor_Enable_Profiling"
234 #define CorDB_CONTROL_ProfilingL L"Cor_Enable_Profiling"
236 typedef LONG32 mdToken;
238 typedef mdToken mdModule;
240 typedef mdToken mdTypeDef;
242 typedef mdToken mdMethodDef;
244 typedef mdToken mdFieldDef;
246 typedef ULONG CorElementType;
249 typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0001
251 DWORD dwOSPlatformId;
252 DWORD dwOSMajorVersion;
253 DWORD dwOSMinorVersion;
256 typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0002
258 USHORT usMajorVersion;
259 USHORT usMinorVersion;
260 USHORT usBuildNumber;
261 USHORT usRevisionNumber;
271 typedef const BYTE *LPCBYTE;
273 typedef BYTE *LPBYTE;
275 typedef BYTE COR_SIGNATURE;
277 typedef COR_SIGNATURE *PCOR_SIGNATURE;
279 typedef const COR_SIGNATURE *PCCOR_SIGNATURE;
283 typedef struct _COR_IL_MAP
291 #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_
292 #define _COR_DEBUG_IL_TO_NATIVE_MAP_
294 enum CorDebugIlToNativeMappingTypes
299 } CorDebugIlToNativeMappingTypes;
301 typedef struct COR_DEBUG_IL_TO_NATIVE_MAP
304 ULONG32 nativeStartOffset;
305 ULONG32 nativeEndOffset;
306 } COR_DEBUG_IL_TO_NATIVE_MAP;
308 #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_
309 #ifndef _COR_FIELD_OFFSET_
310 #define _COR_FIELD_OFFSET_
311 typedef struct _COR_FIELD_OFFSET
313 mdFieldDef ridOfField;
317 #endif // _COR_FIELD_OFFSET_
318 typedef UINT_PTR ProcessID;
320 typedef UINT_PTR AssemblyID;
322 typedef UINT_PTR AppDomainID;
324 typedef UINT_PTR ModuleID;
326 typedef UINT_PTR ClassID;
328 typedef UINT_PTR ThreadID;
330 typedef UINT_PTR ContextID;
332 typedef UINT_PTR FunctionID;
334 typedef UINT_PTR ObjectID;
336 typedef UINT_PTR GCHandleID;
338 typedef UINT_PTR COR_PRF_ELT_INFO;
340 typedef UINT_PTR ReJITID;
342 typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public] */ union __MIDL___MIDL_itf_corprof_0000_0000_0003
344 FunctionID functionID;
346 } FunctionIDOrClientID;
348 typedef UINT_PTR __stdcall __stdcall FunctionIDMapper(
350 BOOL *pbHookFunction);
352 typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2(
355 BOOL *pbHookFunction);
358 enum _COR_PRF_SNAPSHOT_INFO
360 COR_PRF_SNAPSHOT_DEFAULT = 0,
361 COR_PRF_SNAPSHOT_REGISTER_CONTEXT = 0x1,
362 COR_PRF_SNAPSHOT_X86_OPTIMIZED = 0x2
363 } COR_PRF_SNAPSHOT_INFO;
365 typedef UINT_PTR COR_PRF_FRAME_INFO;
367 typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE
369 UINT_PTR startAddress;
371 } COR_PRF_FUNCTION_ARGUMENT_RANGE;
373 typedef struct _COR_PRF_FUNCTION_ARGUMENT_INFO
376 ULONG totalArgumentSize;
377 COR_PRF_FUNCTION_ARGUMENT_RANGE ranges[ 1 ];
378 } COR_PRF_FUNCTION_ARGUMENT_INFO;
380 typedef struct _COR_PRF_CODE_INFO
382 UINT_PTR startAddress;
386 typedef /* [public][public] */
387 enum __MIDL___MIDL_itf_corprof_0000_0000_0004
389 COR_PRF_FIELD_NOT_A_STATIC = 0,
390 COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1,
391 COR_PRF_FIELD_THREAD_STATIC = 0x2,
392 COR_PRF_FIELD_CONTEXT_STATIC = 0x4,
393 COR_PRF_FIELD_RVA_STATIC = 0x8
394 } COR_PRF_STATIC_TYPE;
396 typedef struct _COR_PRF_FUNCTION
398 FunctionID functionId;
402 typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO
404 void *pbPublicKeyOrToken;
405 ULONG cbPublicKeyOrToken;
407 ASSEMBLYMETADATA *pMetaData;
410 DWORD dwAssemblyRefFlags;
411 } COR_PRF_ASSEMBLY_REFERENCE_INFO;
413 typedef struct _COR_PRF_METHOD
416 mdMethodDef methodId;
419 typedef void __stdcall __stdcall FunctionEnter(
422 typedef void __stdcall __stdcall FunctionLeave(
425 typedef void __stdcall __stdcall FunctionTailcall(
428 typedef void __stdcall __stdcall FunctionEnter2(
431 COR_PRF_FRAME_INFO func,
432 COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo);
434 typedef void __stdcall __stdcall FunctionLeave2(
437 COR_PRF_FRAME_INFO func,
438 COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange);
440 typedef void __stdcall __stdcall FunctionTailcall2(
443 COR_PRF_FRAME_INFO func);
445 typedef void __stdcall __stdcall FunctionEnter3(
446 FunctionIDOrClientID functionIDOrClientID);
448 typedef void __stdcall __stdcall FunctionLeave3(
449 FunctionIDOrClientID functionIDOrClientID);
451 typedef void __stdcall __stdcall FunctionTailcall3(
452 FunctionIDOrClientID functionIDOrClientID);
454 typedef void __stdcall __stdcall FunctionEnter3WithInfo(
455 FunctionIDOrClientID functionIDOrClientID,
456 COR_PRF_ELT_INFO eltInfo);
458 typedef void __stdcall __stdcall FunctionLeave3WithInfo(
459 FunctionIDOrClientID functionIDOrClientID,
460 COR_PRF_ELT_INFO eltInfo);
462 typedef void __stdcall __stdcall FunctionTailcall3WithInfo(
463 FunctionIDOrClientID functionIDOrClientID,
464 COR_PRF_ELT_INFO eltInfo);
466 typedef HRESULT __stdcall __stdcall StackSnapshotCallback(
469 COR_PRF_FRAME_INFO frameInfo,
474 typedef /* [public] */
475 enum __MIDL___MIDL_itf_corprof_0000_0000_0005
477 COR_PRF_MONITOR_NONE = 0,
478 COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x1,
479 COR_PRF_MONITOR_CLASS_LOADS = 0x2,
480 COR_PRF_MONITOR_MODULE_LOADS = 0x4,
481 COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x8,
482 COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10,
483 COR_PRF_MONITOR_JIT_COMPILATION = 0x20,
484 COR_PRF_MONITOR_EXCEPTIONS = 0x40,
485 COR_PRF_MONITOR_GC = 0x80,
486 COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x100,
487 COR_PRF_MONITOR_THREADS = 0x200,
488 COR_PRF_MONITOR_REMOTING = 0x400,
489 COR_PRF_MONITOR_CODE_TRANSITIONS = 0x800,
490 COR_PRF_MONITOR_ENTERLEAVE = 0x1000,
491 COR_PRF_MONITOR_CCW = 0x2000,
492 COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) ,
493 COR_PRF_MONITOR_REMOTING_ASYNC = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) ,
494 COR_PRF_MONITOR_SUSPENDS = 0x10000,
495 COR_PRF_MONITOR_CACHE_SEARCHES = 0x20000,
496 COR_PRF_ENABLE_REJIT = 0x40000,
497 COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000,
498 COR_PRF_ENABLE_JIT_MAPS = 0x100000,
499 COR_PRF_DISABLE_INLINING = 0x200000,
500 COR_PRF_DISABLE_OPTIMIZATIONS = 0x400000,
501 COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000,
502 COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x1000000,
503 COR_PRF_MONITOR_ALL = 0x107ffff,
504 COR_PRF_ENABLE_FUNCTION_ARGS = 0x2000000,
505 COR_PRF_ENABLE_FUNCTION_RETVAL = 0x4000000,
506 COR_PRF_ENABLE_FRAME_INFO = 0x8000000,
507 COR_PRF_ENABLE_STACK_SNAPSHOT = 0x10000000,
508 COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
509 COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000,
510 COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
511 COR_PRF_ALL = 0x8fffffff,
512 COR_PRF_REQUIRE_PROFILE_IMAGE = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS ) | COR_PRF_MONITOR_ENTERLEAVE ) ,
513 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 ) ,
514 COR_PRF_MONITOR_IMMUTABLE = ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING ) | COR_PRF_MONITOR_REMOTING_COOKIE ) | COR_PRF_MONITOR_REMOTING_ASYNC ) | COR_PRF_ENABLE_REJIT ) | COR_PRF_ENABLE_INPROC_DEBUGGING ) | COR_PRF_ENABLE_JIT_MAPS ) | COR_PRF_DISABLE_OPTIMIZATIONS ) | COR_PRF_DISABLE_INLINING ) | COR_PRF_ENABLE_OBJECT_ALLOCATED ) | COR_PRF_ENABLE_FUNCTION_ARGS ) | COR_PRF_ENABLE_FUNCTION_RETVAL ) | COR_PRF_ENABLE_FRAME_INFO ) | COR_PRF_USE_PROFILE_IMAGES ) | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST ) | COR_PRF_DISABLE_ALL_NGEN_IMAGES )
517 typedef /* [public] */
518 enum __MIDL___MIDL_itf_corprof_0000_0000_0006
520 COR_PRF_HIGH_MONITOR_NONE = 0,
521 COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1,
522 COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2,
523 COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4,
524 COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8,
525 COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0,
526 COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) ,
527 COR_PRF_HIGH_MONITOR_IMMUTABLE = ( COR_PRF_HIGH_DISABLE_TIERED_COMPILATION )
528 } COR_PRF_HIGH_MONITOR;
530 typedef /* [public] */
531 enum __MIDL___MIDL_itf_corprof_0000_0000_0007
533 PROFILER_PARENT_UNKNOWN = 0xfffffffd,
534 PROFILER_GLOBAL_CLASS = 0xfffffffe,
535 PROFILER_GLOBAL_MODULE = 0xffffffff
538 typedef /* [public][public] */
539 enum __MIDL___MIDL_itf_corprof_0000_0000_0008
541 COR_PRF_CACHED_FUNCTION_FOUND = 0,
542 COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 )
545 typedef /* [public][public][public] */
546 enum __MIDL___MIDL_itf_corprof_0000_0000_0009
548 COR_PRF_TRANSITION_CALL = 0,
549 COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 )
550 } COR_PRF_TRANSITION_REASON;
552 typedef /* [public][public] */
553 enum __MIDL___MIDL_itf_corprof_0000_0000_0010
555 COR_PRF_SUSPEND_OTHER = 0,
556 COR_PRF_SUSPEND_FOR_GC = 1,
557 COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 2,
558 COR_PRF_SUSPEND_FOR_CODE_PITCHING = 3,
559 COR_PRF_SUSPEND_FOR_SHUTDOWN = 4,
560 COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 6,
561 COR_PRF_SUSPEND_FOR_GC_PREP = 7,
562 COR_PRF_SUSPEND_FOR_REJIT = 8
563 } COR_PRF_SUSPEND_REASON;
565 typedef /* [public][public] */
566 enum __MIDL___MIDL_itf_corprof_0000_0000_0011
568 COR_PRF_DESKTOP_CLR = 0x1,
569 COR_PRF_CORE_CLR = 0x2
570 } COR_PRF_RUNTIME_TYPE;
590 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_c_ifspec;
591 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_s_ifspec;
593 #ifndef __ICorProfilerCallback_INTERFACE_DEFINED__
594 #define __ICorProfilerCallback_INTERFACE_DEFINED__
596 /* interface ICorProfilerCallback */
597 /* [local][unique][uuid][object] */
600 EXTERN_C const IID IID_ICorProfilerCallback;
602 #if defined(__cplusplus) && !defined(CINTERFACE)
604 MIDL_INTERFACE("176FBED1-A55C-4796-98CA-A9DA0EF883E7")
605 ICorProfilerCallback : public IUnknown
608 virtual HRESULT STDMETHODCALLTYPE Initialize(
609 /* [in] */ IUnknown *pICorProfilerInfoUnk) = 0;
611 virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
613 virtual HRESULT STDMETHODCALLTYPE AppDomainCreationStarted(
614 /* [in] */ AppDomainID appDomainId) = 0;
616 virtual HRESULT STDMETHODCALLTYPE AppDomainCreationFinished(
617 /* [in] */ AppDomainID appDomainId,
618 /* [in] */ HRESULT hrStatus) = 0;
620 virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownStarted(
621 /* [in] */ AppDomainID appDomainId) = 0;
623 virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownFinished(
624 /* [in] */ AppDomainID appDomainId,
625 /* [in] */ HRESULT hrStatus) = 0;
627 virtual HRESULT STDMETHODCALLTYPE AssemblyLoadStarted(
628 /* [in] */ AssemblyID assemblyId) = 0;
630 virtual HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(
631 /* [in] */ AssemblyID assemblyId,
632 /* [in] */ HRESULT hrStatus) = 0;
634 virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadStarted(
635 /* [in] */ AssemblyID assemblyId) = 0;
637 virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished(
638 /* [in] */ AssemblyID assemblyId,
639 /* [in] */ HRESULT hrStatus) = 0;
641 virtual HRESULT STDMETHODCALLTYPE ModuleLoadStarted(
642 /* [in] */ ModuleID moduleId) = 0;
644 virtual HRESULT STDMETHODCALLTYPE ModuleLoadFinished(
645 /* [in] */ ModuleID moduleId,
646 /* [in] */ HRESULT hrStatus) = 0;
648 virtual HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(
649 /* [in] */ ModuleID moduleId) = 0;
651 virtual HRESULT STDMETHODCALLTYPE ModuleUnloadFinished(
652 /* [in] */ ModuleID moduleId,
653 /* [in] */ HRESULT hrStatus) = 0;
655 virtual HRESULT STDMETHODCALLTYPE ModuleAttachedToAssembly(
656 /* [in] */ ModuleID moduleId,
657 /* [in] */ AssemblyID AssemblyId) = 0;
659 virtual HRESULT STDMETHODCALLTYPE ClassLoadStarted(
660 /* [in] */ ClassID classId) = 0;
662 virtual HRESULT STDMETHODCALLTYPE ClassLoadFinished(
663 /* [in] */ ClassID classId,
664 /* [in] */ HRESULT hrStatus) = 0;
666 virtual HRESULT STDMETHODCALLTYPE ClassUnloadStarted(
667 /* [in] */ ClassID classId) = 0;
669 virtual HRESULT STDMETHODCALLTYPE ClassUnloadFinished(
670 /* [in] */ ClassID classId,
671 /* [in] */ HRESULT hrStatus) = 0;
673 virtual HRESULT STDMETHODCALLTYPE FunctionUnloadStarted(
674 /* [in] */ FunctionID functionId) = 0;
676 virtual HRESULT STDMETHODCALLTYPE JITCompilationStarted(
677 /* [in] */ FunctionID functionId,
678 /* [in] */ BOOL fIsSafeToBlock) = 0;
680 virtual HRESULT STDMETHODCALLTYPE JITCompilationFinished(
681 /* [in] */ FunctionID functionId,
682 /* [in] */ HRESULT hrStatus,
683 /* [in] */ BOOL fIsSafeToBlock) = 0;
685 virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted(
686 /* [in] */ FunctionID functionId,
687 /* [out] */ BOOL *pbUseCachedFunction) = 0;
689 virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished(
690 /* [in] */ FunctionID functionId,
691 /* [in] */ COR_PRF_JIT_CACHE result) = 0;
693 virtual HRESULT STDMETHODCALLTYPE JITFunctionPitched(
694 /* [in] */ FunctionID functionId) = 0;
696 virtual HRESULT STDMETHODCALLTYPE JITInlining(
697 /* [in] */ FunctionID callerId,
698 /* [in] */ FunctionID calleeId,
699 /* [out] */ BOOL *pfShouldInline) = 0;
701 virtual HRESULT STDMETHODCALLTYPE ThreadCreated(
702 /* [in] */ ThreadID threadId) = 0;
704 virtual HRESULT STDMETHODCALLTYPE ThreadDestroyed(
705 /* [in] */ ThreadID threadId) = 0;
707 virtual HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread(
708 /* [in] */ ThreadID managedThreadId,
709 /* [in] */ DWORD osThreadId) = 0;
711 virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted( void) = 0;
713 virtual HRESULT STDMETHODCALLTYPE RemotingClientSendingMessage(
714 /* [in] */ GUID *pCookie,
715 /* [in] */ BOOL fIsAsync) = 0;
717 virtual HRESULT STDMETHODCALLTYPE RemotingClientReceivingReply(
718 /* [in] */ GUID *pCookie,
719 /* [in] */ BOOL fIsAsync) = 0;
721 virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished( void) = 0;
723 virtual HRESULT STDMETHODCALLTYPE RemotingServerReceivingMessage(
724 /* [in] */ GUID *pCookie,
725 /* [in] */ BOOL fIsAsync) = 0;
727 virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted( void) = 0;
729 virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned( void) = 0;
731 virtual HRESULT STDMETHODCALLTYPE RemotingServerSendingReply(
732 /* [in] */ GUID *pCookie,
733 /* [in] */ BOOL fIsAsync) = 0;
735 virtual HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition(
736 /* [in] */ FunctionID functionId,
737 /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
739 virtual HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition(
740 /* [in] */ FunctionID functionId,
741 /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
743 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendStarted(
744 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason) = 0;
746 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished( void) = 0;
748 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted( void) = 0;
750 virtual HRESULT STDMETHODCALLTYPE RuntimeResumeStarted( void) = 0;
752 virtual HRESULT STDMETHODCALLTYPE RuntimeResumeFinished( void) = 0;
754 virtual HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended(
755 /* [in] */ ThreadID threadId) = 0;
757 virtual HRESULT STDMETHODCALLTYPE RuntimeThreadResumed(
758 /* [in] */ ThreadID threadId) = 0;
760 virtual HRESULT STDMETHODCALLTYPE MovedReferences(
761 /* [in] */ ULONG cMovedObjectIDRanges,
762 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
763 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
764 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
766 virtual HRESULT STDMETHODCALLTYPE ObjectAllocated(
767 /* [in] */ ObjectID objectId,
768 /* [in] */ ClassID classId) = 0;
770 virtual HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass(
771 /* [in] */ ULONG cClassCount,
772 /* [size_is][in] */ ClassID classIds[ ],
773 /* [size_is][in] */ ULONG cObjects[ ]) = 0;
775 virtual HRESULT STDMETHODCALLTYPE ObjectReferences(
776 /* [in] */ ObjectID objectId,
777 /* [in] */ ClassID classId,
778 /* [in] */ ULONG cObjectRefs,
779 /* [size_is][in] */ ObjectID objectRefIds[ ]) = 0;
781 virtual HRESULT STDMETHODCALLTYPE RootReferences(
782 /* [in] */ ULONG cRootRefs,
783 /* [size_is][in] */ ObjectID rootRefIds[ ]) = 0;
785 virtual HRESULT STDMETHODCALLTYPE ExceptionThrown(
786 /* [in] */ ObjectID thrownObjectId) = 0;
788 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionEnter(
789 /* [in] */ FunctionID functionId) = 0;
791 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave( void) = 0;
793 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterEnter(
794 /* [in] */ FunctionID functionId) = 0;
796 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave( void) = 0;
798 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchCatcherFound(
799 /* [in] */ FunctionID functionId) = 0;
801 virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter(
802 /* [in] */ UINT_PTR __unused) = 0;
804 virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave(
805 /* [in] */ UINT_PTR __unused) = 0;
807 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionEnter(
808 /* [in] */ FunctionID functionId) = 0;
810 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave( void) = 0;
812 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyEnter(
813 /* [in] */ FunctionID functionId) = 0;
815 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave( void) = 0;
817 virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(
818 /* [in] */ FunctionID functionId,
819 /* [in] */ ObjectID objectId) = 0;
821 virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave( void) = 0;
823 virtual HRESULT STDMETHODCALLTYPE COMClassicVTableCreated(
824 /* [in] */ ClassID wrappedClassId,
825 /* [in] */ REFGUID implementedIID,
826 /* [in] */ void *pVTable,
827 /* [in] */ ULONG cSlots) = 0;
829 virtual HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed(
830 /* [in] */ ClassID wrappedClassId,
831 /* [in] */ REFGUID implementedIID,
832 /* [in] */ void *pVTable) = 0;
834 virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound( void) = 0;
836 virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute( void) = 0;
841 #else /* C style interface */
843 typedef struct ICorProfilerCallbackVtbl
847 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
848 ICorProfilerCallback * This,
849 /* [in] */ REFIID riid,
850 /* [annotation][iid_is][out] */
851 _COM_Outptr_ void **ppvObject);
853 ULONG ( STDMETHODCALLTYPE *AddRef )(
854 ICorProfilerCallback * This);
856 ULONG ( STDMETHODCALLTYPE *Release )(
857 ICorProfilerCallback * This);
859 HRESULT ( STDMETHODCALLTYPE *Initialize )(
860 ICorProfilerCallback * This,
861 /* [in] */ IUnknown *pICorProfilerInfoUnk);
863 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
864 ICorProfilerCallback * This);
866 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
867 ICorProfilerCallback * This,
868 /* [in] */ AppDomainID appDomainId);
870 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
871 ICorProfilerCallback * This,
872 /* [in] */ AppDomainID appDomainId,
873 /* [in] */ HRESULT hrStatus);
875 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
876 ICorProfilerCallback * This,
877 /* [in] */ AppDomainID appDomainId);
879 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
880 ICorProfilerCallback * This,
881 /* [in] */ AppDomainID appDomainId,
882 /* [in] */ HRESULT hrStatus);
884 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
885 ICorProfilerCallback * This,
886 /* [in] */ AssemblyID assemblyId);
888 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
889 ICorProfilerCallback * This,
890 /* [in] */ AssemblyID assemblyId,
891 /* [in] */ HRESULT hrStatus);
893 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
894 ICorProfilerCallback * This,
895 /* [in] */ AssemblyID assemblyId);
897 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
898 ICorProfilerCallback * This,
899 /* [in] */ AssemblyID assemblyId,
900 /* [in] */ HRESULT hrStatus);
902 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
903 ICorProfilerCallback * This,
904 /* [in] */ ModuleID moduleId);
906 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
907 ICorProfilerCallback * This,
908 /* [in] */ ModuleID moduleId,
909 /* [in] */ HRESULT hrStatus);
911 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
912 ICorProfilerCallback * This,
913 /* [in] */ ModuleID moduleId);
915 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
916 ICorProfilerCallback * This,
917 /* [in] */ ModuleID moduleId,
918 /* [in] */ HRESULT hrStatus);
920 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
921 ICorProfilerCallback * This,
922 /* [in] */ ModuleID moduleId,
923 /* [in] */ AssemblyID AssemblyId);
925 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
926 ICorProfilerCallback * This,
927 /* [in] */ ClassID classId);
929 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
930 ICorProfilerCallback * This,
931 /* [in] */ ClassID classId,
932 /* [in] */ HRESULT hrStatus);
934 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
935 ICorProfilerCallback * This,
936 /* [in] */ ClassID classId);
938 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
939 ICorProfilerCallback * This,
940 /* [in] */ ClassID classId,
941 /* [in] */ HRESULT hrStatus);
943 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
944 ICorProfilerCallback * This,
945 /* [in] */ FunctionID functionId);
947 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
948 ICorProfilerCallback * This,
949 /* [in] */ FunctionID functionId,
950 /* [in] */ BOOL fIsSafeToBlock);
952 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
953 ICorProfilerCallback * This,
954 /* [in] */ FunctionID functionId,
955 /* [in] */ HRESULT hrStatus,
956 /* [in] */ BOOL fIsSafeToBlock);
958 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
959 ICorProfilerCallback * This,
960 /* [in] */ FunctionID functionId,
961 /* [out] */ BOOL *pbUseCachedFunction);
963 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
964 ICorProfilerCallback * This,
965 /* [in] */ FunctionID functionId,
966 /* [in] */ COR_PRF_JIT_CACHE result);
968 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
969 ICorProfilerCallback * This,
970 /* [in] */ FunctionID functionId);
972 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
973 ICorProfilerCallback * This,
974 /* [in] */ FunctionID callerId,
975 /* [in] */ FunctionID calleeId,
976 /* [out] */ BOOL *pfShouldInline);
978 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
979 ICorProfilerCallback * This,
980 /* [in] */ ThreadID threadId);
982 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
983 ICorProfilerCallback * This,
984 /* [in] */ ThreadID threadId);
986 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
987 ICorProfilerCallback * This,
988 /* [in] */ ThreadID managedThreadId,
989 /* [in] */ DWORD osThreadId);
991 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
992 ICorProfilerCallback * This);
994 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
995 ICorProfilerCallback * This,
996 /* [in] */ GUID *pCookie,
997 /* [in] */ BOOL fIsAsync);
999 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
1000 ICorProfilerCallback * This,
1001 /* [in] */ GUID *pCookie,
1002 /* [in] */ BOOL fIsAsync);
1004 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
1005 ICorProfilerCallback * This);
1007 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
1008 ICorProfilerCallback * This,
1009 /* [in] */ GUID *pCookie,
1010 /* [in] */ BOOL fIsAsync);
1012 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
1013 ICorProfilerCallback * This);
1015 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
1016 ICorProfilerCallback * This);
1018 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
1019 ICorProfilerCallback * This,
1020 /* [in] */ GUID *pCookie,
1021 /* [in] */ BOOL fIsAsync);
1023 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
1024 ICorProfilerCallback * This,
1025 /* [in] */ FunctionID functionId,
1026 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1028 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
1029 ICorProfilerCallback * This,
1030 /* [in] */ FunctionID functionId,
1031 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1033 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
1034 ICorProfilerCallback * This,
1035 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1037 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
1038 ICorProfilerCallback * This);
1040 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
1041 ICorProfilerCallback * This);
1043 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
1044 ICorProfilerCallback * This);
1046 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
1047 ICorProfilerCallback * This);
1049 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
1050 ICorProfilerCallback * This,
1051 /* [in] */ ThreadID threadId);
1053 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
1054 ICorProfilerCallback * This,
1055 /* [in] */ ThreadID threadId);
1057 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
1058 ICorProfilerCallback * This,
1059 /* [in] */ ULONG cMovedObjectIDRanges,
1060 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
1061 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
1062 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1064 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
1065 ICorProfilerCallback * This,
1066 /* [in] */ ObjectID objectId,
1067 /* [in] */ ClassID classId);
1069 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
1070 ICorProfilerCallback * This,
1071 /* [in] */ ULONG cClassCount,
1072 /* [size_is][in] */ ClassID classIds[ ],
1073 /* [size_is][in] */ ULONG cObjects[ ]);
1075 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
1076 ICorProfilerCallback * This,
1077 /* [in] */ ObjectID objectId,
1078 /* [in] */ ClassID classId,
1079 /* [in] */ ULONG cObjectRefs,
1080 /* [size_is][in] */ ObjectID objectRefIds[ ]);
1082 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
1083 ICorProfilerCallback * This,
1084 /* [in] */ ULONG cRootRefs,
1085 /* [size_is][in] */ ObjectID rootRefIds[ ]);
1087 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
1088 ICorProfilerCallback * This,
1089 /* [in] */ ObjectID thrownObjectId);
1091 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
1092 ICorProfilerCallback * This,
1093 /* [in] */ FunctionID functionId);
1095 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
1096 ICorProfilerCallback * This);
1098 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
1099 ICorProfilerCallback * This,
1100 /* [in] */ FunctionID functionId);
1102 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
1103 ICorProfilerCallback * This);
1105 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
1106 ICorProfilerCallback * This,
1107 /* [in] */ FunctionID functionId);
1109 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
1110 ICorProfilerCallback * This,
1111 /* [in] */ UINT_PTR __unused);
1113 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
1114 ICorProfilerCallback * This,
1115 /* [in] */ UINT_PTR __unused);
1117 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
1118 ICorProfilerCallback * This,
1119 /* [in] */ FunctionID functionId);
1121 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
1122 ICorProfilerCallback * This);
1124 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
1125 ICorProfilerCallback * This,
1126 /* [in] */ FunctionID functionId);
1128 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
1129 ICorProfilerCallback * This);
1131 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
1132 ICorProfilerCallback * This,
1133 /* [in] */ FunctionID functionId,
1134 /* [in] */ ObjectID objectId);
1136 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
1137 ICorProfilerCallback * This);
1139 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
1140 ICorProfilerCallback * This,
1141 /* [in] */ ClassID wrappedClassId,
1142 /* [in] */ REFGUID implementedIID,
1143 /* [in] */ void *pVTable,
1144 /* [in] */ ULONG cSlots);
1146 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
1147 ICorProfilerCallback * This,
1148 /* [in] */ ClassID wrappedClassId,
1149 /* [in] */ REFGUID implementedIID,
1150 /* [in] */ void *pVTable);
1152 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
1153 ICorProfilerCallback * This);
1155 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
1156 ICorProfilerCallback * This);
1159 } ICorProfilerCallbackVtbl;
1161 interface ICorProfilerCallback
1163 CONST_VTBL struct ICorProfilerCallbackVtbl *lpVtbl;
1171 #define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \
1172 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1174 #define ICorProfilerCallback_AddRef(This) \
1175 ( (This)->lpVtbl -> AddRef(This) )
1177 #define ICorProfilerCallback_Release(This) \
1178 ( (This)->lpVtbl -> Release(This) )
1181 #define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \
1182 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
1184 #define ICorProfilerCallback_Shutdown(This) \
1185 ( (This)->lpVtbl -> Shutdown(This) )
1187 #define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \
1188 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
1190 #define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \
1191 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
1193 #define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \
1194 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
1196 #define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
1197 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
1199 #define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \
1200 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
1202 #define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \
1203 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
1205 #define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \
1206 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
1208 #define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
1209 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
1211 #define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \
1212 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
1214 #define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \
1215 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
1217 #define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \
1218 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
1220 #define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \
1221 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
1223 #define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
1224 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
1226 #define ICorProfilerCallback_ClassLoadStarted(This,classId) \
1227 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
1229 #define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \
1230 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
1232 #define ICorProfilerCallback_ClassUnloadStarted(This,classId) \
1233 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
1235 #define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \
1236 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
1238 #define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \
1239 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
1241 #define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
1242 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
1244 #define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
1245 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
1247 #define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
1248 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
1250 #define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \
1251 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
1253 #define ICorProfilerCallback_JITFunctionPitched(This,functionId) \
1254 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
1256 #define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \
1257 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
1259 #define ICorProfilerCallback_ThreadCreated(This,threadId) \
1260 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
1262 #define ICorProfilerCallback_ThreadDestroyed(This,threadId) \
1263 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
1265 #define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
1266 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
1268 #define ICorProfilerCallback_RemotingClientInvocationStarted(This) \
1269 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
1271 #define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
1272 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
1274 #define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
1275 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
1277 #define ICorProfilerCallback_RemotingClientInvocationFinished(This) \
1278 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
1280 #define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
1281 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
1283 #define ICorProfilerCallback_RemotingServerInvocationStarted(This) \
1284 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
1286 #define ICorProfilerCallback_RemotingServerInvocationReturned(This) \
1287 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
1289 #define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \
1290 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
1292 #define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \
1293 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
1295 #define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \
1296 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
1298 #define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \
1299 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
1301 #define ICorProfilerCallback_RuntimeSuspendFinished(This) \
1302 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
1304 #define ICorProfilerCallback_RuntimeSuspendAborted(This) \
1305 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
1307 #define ICorProfilerCallback_RuntimeResumeStarted(This) \
1308 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
1310 #define ICorProfilerCallback_RuntimeResumeFinished(This) \
1311 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
1313 #define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \
1314 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
1316 #define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \
1317 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
1319 #define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
1320 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
1322 #define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \
1323 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
1325 #define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
1326 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
1328 #define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
1329 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
1331 #define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \
1332 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
1334 #define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \
1335 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
1337 #define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \
1338 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
1340 #define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \
1341 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
1343 #define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \
1344 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
1346 #define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \
1347 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
1349 #define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \
1350 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
1352 #define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \
1353 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
1355 #define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \
1356 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
1358 #define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \
1359 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
1361 #define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \
1362 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
1364 #define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \
1365 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
1367 #define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \
1368 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
1370 #define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \
1371 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
1373 #define ICorProfilerCallback_ExceptionCatcherLeave(This) \
1374 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
1376 #define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
1377 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
1379 #define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
1380 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
1382 #define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \
1383 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
1385 #define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \
1386 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
1388 #endif /* COBJMACROS */
1391 #endif /* C style interface */
1396 #endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */
1399 /* interface __MIDL_itf_corprof_0000_0001 */
1402 typedef /* [public][public] */
1403 enum __MIDL___MIDL_itf_corprof_0000_0001_0001
1405 COR_PRF_GC_ROOT_STACK = 1,
1406 COR_PRF_GC_ROOT_FINALIZER = 2,
1407 COR_PRF_GC_ROOT_HANDLE = 3,
1408 COR_PRF_GC_ROOT_OTHER = 0
1409 } COR_PRF_GC_ROOT_KIND;
1411 typedef /* [public][public] */
1412 enum __MIDL___MIDL_itf_corprof_0000_0001_0002
1414 COR_PRF_GC_ROOT_PINNING = 0x1,
1415 COR_PRF_GC_ROOT_WEAKREF = 0x2,
1416 COR_PRF_GC_ROOT_INTERIOR = 0x4,
1417 COR_PRF_GC_ROOT_REFCOUNTED = 0x8
1418 } COR_PRF_GC_ROOT_FLAGS;
1420 typedef /* [public] */
1421 enum __MIDL___MIDL_itf_corprof_0000_0001_0003
1423 COR_PRF_FINALIZER_CRITICAL = 0x1
1424 } COR_PRF_FINALIZER_FLAGS;
1426 typedef /* [public][public][public][public] */
1427 enum __MIDL___MIDL_itf_corprof_0000_0001_0004
1429 COR_PRF_GC_GEN_0 = 0,
1430 COR_PRF_GC_GEN_1 = 1,
1431 COR_PRF_GC_GEN_2 = 2,
1432 COR_PRF_GC_LARGE_OBJECT_HEAP = 3
1433 } COR_PRF_GC_GENERATION;
1435 typedef struct COR_PRF_GC_GENERATION_RANGE
1437 COR_PRF_GC_GENERATION generation;
1438 ObjectID rangeStart;
1439 UINT_PTR rangeLength;
1440 UINT_PTR rangeLengthReserved;
1441 } COR_PRF_GC_GENERATION_RANGE;
1443 typedef /* [public][public][public] */
1444 enum __MIDL___MIDL_itf_corprof_0000_0001_0005
1446 COR_PRF_CLAUSE_NONE = 0,
1447 COR_PRF_CLAUSE_FILTER = 1,
1448 COR_PRF_CLAUSE_CATCH = 2,
1449 COR_PRF_CLAUSE_FINALLY = 3
1450 } COR_PRF_CLAUSE_TYPE;
1452 typedef struct COR_PRF_EX_CLAUSE_INFO
1454 COR_PRF_CLAUSE_TYPE clauseType;
1455 UINT_PTR programCounter;
1456 UINT_PTR framePointer;
1457 UINT_PTR shadowStackPointer;
1458 } COR_PRF_EX_CLAUSE_INFO;
1460 typedef /* [public][public] */
1461 enum __MIDL___MIDL_itf_corprof_0000_0001_0006
1463 COR_PRF_GC_INDUCED = 1,
1464 COR_PRF_GC_OTHER = 0
1465 } COR_PRF_GC_REASON;
1467 typedef /* [public] */
1468 enum __MIDL___MIDL_itf_corprof_0000_0001_0007
1470 COR_PRF_MODULE_DISK = 0x1,
1471 COR_PRF_MODULE_NGEN = 0x2,
1472 COR_PRF_MODULE_DYNAMIC = 0x4,
1473 COR_PRF_MODULE_COLLECTIBLE = 0x8,
1474 COR_PRF_MODULE_RESOURCE = 0x10,
1475 COR_PRF_MODULE_FLAT_LAYOUT = 0x20,
1476 COR_PRF_MODULE_WINDOWS_RUNTIME = 0x40
1477 } COR_PRF_MODULE_FLAGS;
1481 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_c_ifspec;
1482 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_s_ifspec;
1484 #ifndef __ICorProfilerCallback2_INTERFACE_DEFINED__
1485 #define __ICorProfilerCallback2_INTERFACE_DEFINED__
1487 /* interface ICorProfilerCallback2 */
1488 /* [local][unique][uuid][object] */
1491 EXTERN_C const IID IID_ICorProfilerCallback2;
1493 #if defined(__cplusplus) && !defined(CINTERFACE)
1495 MIDL_INTERFACE("8A8CC829-CCF2-49fe-BBAE-0F022228071A")
1496 ICorProfilerCallback2 : public ICorProfilerCallback
1499 virtual HRESULT STDMETHODCALLTYPE ThreadNameChanged(
1500 /* [in] */ ThreadID threadId,
1501 /* [in] */ ULONG cchName,
1502 /* [annotation][in] */
1503 _In_reads_opt_(cchName) WCHAR name[ ]) = 0;
1505 virtual HRESULT STDMETHODCALLTYPE GarbageCollectionStarted(
1506 /* [in] */ int cGenerations,
1507 /* [size_is][in] */ BOOL generationCollected[ ],
1508 /* [in] */ COR_PRF_GC_REASON reason) = 0;
1510 virtual HRESULT STDMETHODCALLTYPE SurvivingReferences(
1511 /* [in] */ ULONG cSurvivingObjectIDRanges,
1512 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
1513 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
1515 virtual HRESULT STDMETHODCALLTYPE GarbageCollectionFinished( void) = 0;
1517 virtual HRESULT STDMETHODCALLTYPE FinalizeableObjectQueued(
1518 /* [in] */ DWORD finalizerFlags,
1519 /* [in] */ ObjectID objectID) = 0;
1521 virtual HRESULT STDMETHODCALLTYPE RootReferences2(
1522 /* [in] */ ULONG cRootRefs,
1523 /* [size_is][in] */ ObjectID rootRefIds[ ],
1524 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
1525 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
1526 /* [size_is][in] */ UINT_PTR rootIds[ ]) = 0;
1528 virtual HRESULT STDMETHODCALLTYPE HandleCreated(
1529 /* [in] */ GCHandleID handleId,
1530 /* [in] */ ObjectID initialObjectId) = 0;
1532 virtual HRESULT STDMETHODCALLTYPE HandleDestroyed(
1533 /* [in] */ GCHandleID handleId) = 0;
1538 #else /* C style interface */
1540 typedef struct ICorProfilerCallback2Vtbl
1544 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1545 ICorProfilerCallback2 * This,
1546 /* [in] */ REFIID riid,
1547 /* [annotation][iid_is][out] */
1548 _COM_Outptr_ void **ppvObject);
1550 ULONG ( STDMETHODCALLTYPE *AddRef )(
1551 ICorProfilerCallback2 * This);
1553 ULONG ( STDMETHODCALLTYPE *Release )(
1554 ICorProfilerCallback2 * This);
1556 HRESULT ( STDMETHODCALLTYPE *Initialize )(
1557 ICorProfilerCallback2 * This,
1558 /* [in] */ IUnknown *pICorProfilerInfoUnk);
1560 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
1561 ICorProfilerCallback2 * This);
1563 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
1564 ICorProfilerCallback2 * This,
1565 /* [in] */ AppDomainID appDomainId);
1567 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
1568 ICorProfilerCallback2 * This,
1569 /* [in] */ AppDomainID appDomainId,
1570 /* [in] */ HRESULT hrStatus);
1572 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
1573 ICorProfilerCallback2 * This,
1574 /* [in] */ AppDomainID appDomainId);
1576 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
1577 ICorProfilerCallback2 * This,
1578 /* [in] */ AppDomainID appDomainId,
1579 /* [in] */ HRESULT hrStatus);
1581 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
1582 ICorProfilerCallback2 * This,
1583 /* [in] */ AssemblyID assemblyId);
1585 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
1586 ICorProfilerCallback2 * This,
1587 /* [in] */ AssemblyID assemblyId,
1588 /* [in] */ HRESULT hrStatus);
1590 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
1591 ICorProfilerCallback2 * This,
1592 /* [in] */ AssemblyID assemblyId);
1594 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
1595 ICorProfilerCallback2 * This,
1596 /* [in] */ AssemblyID assemblyId,
1597 /* [in] */ HRESULT hrStatus);
1599 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
1600 ICorProfilerCallback2 * This,
1601 /* [in] */ ModuleID moduleId);
1603 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
1604 ICorProfilerCallback2 * This,
1605 /* [in] */ ModuleID moduleId,
1606 /* [in] */ HRESULT hrStatus);
1608 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
1609 ICorProfilerCallback2 * This,
1610 /* [in] */ ModuleID moduleId);
1612 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
1613 ICorProfilerCallback2 * This,
1614 /* [in] */ ModuleID moduleId,
1615 /* [in] */ HRESULT hrStatus);
1617 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
1618 ICorProfilerCallback2 * This,
1619 /* [in] */ ModuleID moduleId,
1620 /* [in] */ AssemblyID AssemblyId);
1622 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
1623 ICorProfilerCallback2 * This,
1624 /* [in] */ ClassID classId);
1626 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
1627 ICorProfilerCallback2 * This,
1628 /* [in] */ ClassID classId,
1629 /* [in] */ HRESULT hrStatus);
1631 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
1632 ICorProfilerCallback2 * This,
1633 /* [in] */ ClassID classId);
1635 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
1636 ICorProfilerCallback2 * This,
1637 /* [in] */ ClassID classId,
1638 /* [in] */ HRESULT hrStatus);
1640 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
1641 ICorProfilerCallback2 * This,
1642 /* [in] */ FunctionID functionId);
1644 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
1645 ICorProfilerCallback2 * This,
1646 /* [in] */ FunctionID functionId,
1647 /* [in] */ BOOL fIsSafeToBlock);
1649 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
1650 ICorProfilerCallback2 * This,
1651 /* [in] */ FunctionID functionId,
1652 /* [in] */ HRESULT hrStatus,
1653 /* [in] */ BOOL fIsSafeToBlock);
1655 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
1656 ICorProfilerCallback2 * This,
1657 /* [in] */ FunctionID functionId,
1658 /* [out] */ BOOL *pbUseCachedFunction);
1660 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
1661 ICorProfilerCallback2 * This,
1662 /* [in] */ FunctionID functionId,
1663 /* [in] */ COR_PRF_JIT_CACHE result);
1665 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
1666 ICorProfilerCallback2 * This,
1667 /* [in] */ FunctionID functionId);
1669 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
1670 ICorProfilerCallback2 * This,
1671 /* [in] */ FunctionID callerId,
1672 /* [in] */ FunctionID calleeId,
1673 /* [out] */ BOOL *pfShouldInline);
1675 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
1676 ICorProfilerCallback2 * This,
1677 /* [in] */ ThreadID threadId);
1679 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
1680 ICorProfilerCallback2 * This,
1681 /* [in] */ ThreadID threadId);
1683 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
1684 ICorProfilerCallback2 * This,
1685 /* [in] */ ThreadID managedThreadId,
1686 /* [in] */ DWORD osThreadId);
1688 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
1689 ICorProfilerCallback2 * This);
1691 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
1692 ICorProfilerCallback2 * This,
1693 /* [in] */ GUID *pCookie,
1694 /* [in] */ BOOL fIsAsync);
1696 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
1697 ICorProfilerCallback2 * This,
1698 /* [in] */ GUID *pCookie,
1699 /* [in] */ BOOL fIsAsync);
1701 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
1702 ICorProfilerCallback2 * This);
1704 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
1705 ICorProfilerCallback2 * This,
1706 /* [in] */ GUID *pCookie,
1707 /* [in] */ BOOL fIsAsync);
1709 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
1710 ICorProfilerCallback2 * This);
1712 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
1713 ICorProfilerCallback2 * This);
1715 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
1716 ICorProfilerCallback2 * This,
1717 /* [in] */ GUID *pCookie,
1718 /* [in] */ BOOL fIsAsync);
1720 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
1721 ICorProfilerCallback2 * This,
1722 /* [in] */ FunctionID functionId,
1723 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1725 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
1726 ICorProfilerCallback2 * This,
1727 /* [in] */ FunctionID functionId,
1728 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1730 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
1731 ICorProfilerCallback2 * This,
1732 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1734 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
1735 ICorProfilerCallback2 * This);
1737 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
1738 ICorProfilerCallback2 * This);
1740 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
1741 ICorProfilerCallback2 * This);
1743 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
1744 ICorProfilerCallback2 * This);
1746 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
1747 ICorProfilerCallback2 * This,
1748 /* [in] */ ThreadID threadId);
1750 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
1751 ICorProfilerCallback2 * This,
1752 /* [in] */ ThreadID threadId);
1754 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
1755 ICorProfilerCallback2 * This,
1756 /* [in] */ ULONG cMovedObjectIDRanges,
1757 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
1758 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
1759 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1761 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
1762 ICorProfilerCallback2 * This,
1763 /* [in] */ ObjectID objectId,
1764 /* [in] */ ClassID classId);
1766 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
1767 ICorProfilerCallback2 * This,
1768 /* [in] */ ULONG cClassCount,
1769 /* [size_is][in] */ ClassID classIds[ ],
1770 /* [size_is][in] */ ULONG cObjects[ ]);
1772 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
1773 ICorProfilerCallback2 * This,
1774 /* [in] */ ObjectID objectId,
1775 /* [in] */ ClassID classId,
1776 /* [in] */ ULONG cObjectRefs,
1777 /* [size_is][in] */ ObjectID objectRefIds[ ]);
1779 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
1780 ICorProfilerCallback2 * This,
1781 /* [in] */ ULONG cRootRefs,
1782 /* [size_is][in] */ ObjectID rootRefIds[ ]);
1784 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
1785 ICorProfilerCallback2 * This,
1786 /* [in] */ ObjectID thrownObjectId);
1788 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
1789 ICorProfilerCallback2 * This,
1790 /* [in] */ FunctionID functionId);
1792 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
1793 ICorProfilerCallback2 * This);
1795 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
1796 ICorProfilerCallback2 * This,
1797 /* [in] */ FunctionID functionId);
1799 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
1800 ICorProfilerCallback2 * This);
1802 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
1803 ICorProfilerCallback2 * This,
1804 /* [in] */ FunctionID functionId);
1806 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
1807 ICorProfilerCallback2 * This,
1808 /* [in] */ UINT_PTR __unused);
1810 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
1811 ICorProfilerCallback2 * This,
1812 /* [in] */ UINT_PTR __unused);
1814 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
1815 ICorProfilerCallback2 * This,
1816 /* [in] */ FunctionID functionId);
1818 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
1819 ICorProfilerCallback2 * This);
1821 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
1822 ICorProfilerCallback2 * This,
1823 /* [in] */ FunctionID functionId);
1825 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
1826 ICorProfilerCallback2 * This);
1828 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
1829 ICorProfilerCallback2 * This,
1830 /* [in] */ FunctionID functionId,
1831 /* [in] */ ObjectID objectId);
1833 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
1834 ICorProfilerCallback2 * This);
1836 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
1837 ICorProfilerCallback2 * This,
1838 /* [in] */ ClassID wrappedClassId,
1839 /* [in] */ REFGUID implementedIID,
1840 /* [in] */ void *pVTable,
1841 /* [in] */ ULONG cSlots);
1843 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
1844 ICorProfilerCallback2 * This,
1845 /* [in] */ ClassID wrappedClassId,
1846 /* [in] */ REFGUID implementedIID,
1847 /* [in] */ void *pVTable);
1849 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
1850 ICorProfilerCallback2 * This);
1852 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
1853 ICorProfilerCallback2 * This);
1855 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
1856 ICorProfilerCallback2 * This,
1857 /* [in] */ ThreadID threadId,
1858 /* [in] */ ULONG cchName,
1859 /* [annotation][in] */
1860 _In_reads_opt_(cchName) WCHAR name[ ]);
1862 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
1863 ICorProfilerCallback2 * This,
1864 /* [in] */ int cGenerations,
1865 /* [size_is][in] */ BOOL generationCollected[ ],
1866 /* [in] */ COR_PRF_GC_REASON reason);
1868 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
1869 ICorProfilerCallback2 * This,
1870 /* [in] */ ULONG cSurvivingObjectIDRanges,
1871 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
1872 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1874 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
1875 ICorProfilerCallback2 * This);
1877 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
1878 ICorProfilerCallback2 * This,
1879 /* [in] */ DWORD finalizerFlags,
1880 /* [in] */ ObjectID objectID);
1882 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
1883 ICorProfilerCallback2 * This,
1884 /* [in] */ ULONG cRootRefs,
1885 /* [size_is][in] */ ObjectID rootRefIds[ ],
1886 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
1887 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
1888 /* [size_is][in] */ UINT_PTR rootIds[ ]);
1890 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
1891 ICorProfilerCallback2 * This,
1892 /* [in] */ GCHandleID handleId,
1893 /* [in] */ ObjectID initialObjectId);
1895 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
1896 ICorProfilerCallback2 * This,
1897 /* [in] */ GCHandleID handleId);
1900 } ICorProfilerCallback2Vtbl;
1902 interface ICorProfilerCallback2
1904 CONST_VTBL struct ICorProfilerCallback2Vtbl *lpVtbl;
1912 #define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \
1913 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1915 #define ICorProfilerCallback2_AddRef(This) \
1916 ( (This)->lpVtbl -> AddRef(This) )
1918 #define ICorProfilerCallback2_Release(This) \
1919 ( (This)->lpVtbl -> Release(This) )
1922 #define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \
1923 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
1925 #define ICorProfilerCallback2_Shutdown(This) \
1926 ( (This)->lpVtbl -> Shutdown(This) )
1928 #define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \
1929 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
1931 #define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \
1932 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
1934 #define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \
1935 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
1937 #define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
1938 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
1940 #define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \
1941 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
1943 #define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \
1944 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
1946 #define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \
1947 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
1949 #define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
1950 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
1952 #define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \
1953 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
1955 #define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \
1956 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
1958 #define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \
1959 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
1961 #define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \
1962 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
1964 #define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
1965 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
1967 #define ICorProfilerCallback2_ClassLoadStarted(This,classId) \
1968 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
1970 #define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \
1971 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
1973 #define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \
1974 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
1976 #define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \
1977 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
1979 #define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \
1980 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
1982 #define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
1983 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
1985 #define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
1986 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
1988 #define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
1989 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
1991 #define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \
1992 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
1994 #define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \
1995 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
1997 #define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \
1998 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
2000 #define ICorProfilerCallback2_ThreadCreated(This,threadId) \
2001 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
2003 #define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \
2004 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
2006 #define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2007 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
2009 #define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \
2010 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
2012 #define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
2013 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
2015 #define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
2016 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
2018 #define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \
2019 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
2021 #define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
2022 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
2024 #define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \
2025 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
2027 #define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \
2028 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
2030 #define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2031 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
2033 #define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \
2034 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
2036 #define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \
2037 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
2039 #define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \
2040 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
2042 #define ICorProfilerCallback2_RuntimeSuspendFinished(This) \
2043 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
2045 #define ICorProfilerCallback2_RuntimeSuspendAborted(This) \
2046 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
2048 #define ICorProfilerCallback2_RuntimeResumeStarted(This) \
2049 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
2051 #define ICorProfilerCallback2_RuntimeResumeFinished(This) \
2052 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
2054 #define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \
2055 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
2057 #define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \
2058 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
2060 #define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
2061 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
2063 #define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \
2064 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
2066 #define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
2067 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
2069 #define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
2070 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
2072 #define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \
2073 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
2075 #define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \
2076 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
2078 #define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \
2079 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
2081 #define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \
2082 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
2084 #define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \
2085 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
2087 #define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \
2088 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
2090 #define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \
2091 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
2093 #define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \
2094 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
2096 #define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \
2097 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
2099 #define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \
2100 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
2102 #define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \
2103 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
2105 #define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \
2106 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
2108 #define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \
2109 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
2111 #define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \
2112 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
2114 #define ICorProfilerCallback2_ExceptionCatcherLeave(This) \
2115 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
2117 #define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
2118 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
2120 #define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
2121 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
2123 #define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \
2124 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
2126 #define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \
2127 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
2130 #define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \
2131 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
2133 #define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
2134 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
2136 #define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
2137 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
2139 #define ICorProfilerCallback2_GarbageCollectionFinished(This) \
2140 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
2142 #define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
2143 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
2145 #define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
2146 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
2148 #define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \
2149 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
2151 #define ICorProfilerCallback2_HandleDestroyed(This,handleId) \
2152 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
2154 #endif /* COBJMACROS */
2157 #endif /* C style interface */
2162 #endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */
2165 #ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__
2166 #define __ICorProfilerCallback3_INTERFACE_DEFINED__
2168 /* interface ICorProfilerCallback3 */
2169 /* [local][unique][uuid][object] */
2172 EXTERN_C const IID IID_ICorProfilerCallback3;
2174 #if defined(__cplusplus) && !defined(CINTERFACE)
2176 MIDL_INTERFACE("4FD2ED52-7731-4b8d-9469-03D2CC3086C5")
2177 ICorProfilerCallback3 : public ICorProfilerCallback2
2180 virtual HRESULT STDMETHODCALLTYPE InitializeForAttach(
2181 /* [in] */ IUnknown *pCorProfilerInfoUnk,
2182 /* [in] */ void *pvClientData,
2183 /* [in] */ UINT cbClientData) = 0;
2185 virtual HRESULT STDMETHODCALLTYPE ProfilerAttachComplete( void) = 0;
2187 virtual HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded( void) = 0;
2192 #else /* C style interface */
2194 typedef struct ICorProfilerCallback3Vtbl
2198 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2199 ICorProfilerCallback3 * This,
2200 /* [in] */ REFIID riid,
2201 /* [annotation][iid_is][out] */
2202 _COM_Outptr_ void **ppvObject);
2204 ULONG ( STDMETHODCALLTYPE *AddRef )(
2205 ICorProfilerCallback3 * This);
2207 ULONG ( STDMETHODCALLTYPE *Release )(
2208 ICorProfilerCallback3 * This);
2210 HRESULT ( STDMETHODCALLTYPE *Initialize )(
2211 ICorProfilerCallback3 * This,
2212 /* [in] */ IUnknown *pICorProfilerInfoUnk);
2214 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
2215 ICorProfilerCallback3 * This);
2217 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
2218 ICorProfilerCallback3 * This,
2219 /* [in] */ AppDomainID appDomainId);
2221 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
2222 ICorProfilerCallback3 * This,
2223 /* [in] */ AppDomainID appDomainId,
2224 /* [in] */ HRESULT hrStatus);
2226 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
2227 ICorProfilerCallback3 * This,
2228 /* [in] */ AppDomainID appDomainId);
2230 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
2231 ICorProfilerCallback3 * This,
2232 /* [in] */ AppDomainID appDomainId,
2233 /* [in] */ HRESULT hrStatus);
2235 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
2236 ICorProfilerCallback3 * This,
2237 /* [in] */ AssemblyID assemblyId);
2239 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
2240 ICorProfilerCallback3 * This,
2241 /* [in] */ AssemblyID assemblyId,
2242 /* [in] */ HRESULT hrStatus);
2244 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
2245 ICorProfilerCallback3 * This,
2246 /* [in] */ AssemblyID assemblyId);
2248 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
2249 ICorProfilerCallback3 * This,
2250 /* [in] */ AssemblyID assemblyId,
2251 /* [in] */ HRESULT hrStatus);
2253 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
2254 ICorProfilerCallback3 * This,
2255 /* [in] */ ModuleID moduleId);
2257 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
2258 ICorProfilerCallback3 * This,
2259 /* [in] */ ModuleID moduleId,
2260 /* [in] */ HRESULT hrStatus);
2262 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
2263 ICorProfilerCallback3 * This,
2264 /* [in] */ ModuleID moduleId);
2266 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
2267 ICorProfilerCallback3 * This,
2268 /* [in] */ ModuleID moduleId,
2269 /* [in] */ HRESULT hrStatus);
2271 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
2272 ICorProfilerCallback3 * This,
2273 /* [in] */ ModuleID moduleId,
2274 /* [in] */ AssemblyID AssemblyId);
2276 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
2277 ICorProfilerCallback3 * This,
2278 /* [in] */ ClassID classId);
2280 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
2281 ICorProfilerCallback3 * This,
2282 /* [in] */ ClassID classId,
2283 /* [in] */ HRESULT hrStatus);
2285 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
2286 ICorProfilerCallback3 * This,
2287 /* [in] */ ClassID classId);
2289 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
2290 ICorProfilerCallback3 * This,
2291 /* [in] */ ClassID classId,
2292 /* [in] */ HRESULT hrStatus);
2294 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
2295 ICorProfilerCallback3 * This,
2296 /* [in] */ FunctionID functionId);
2298 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
2299 ICorProfilerCallback3 * This,
2300 /* [in] */ FunctionID functionId,
2301 /* [in] */ BOOL fIsSafeToBlock);
2303 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
2304 ICorProfilerCallback3 * This,
2305 /* [in] */ FunctionID functionId,
2306 /* [in] */ HRESULT hrStatus,
2307 /* [in] */ BOOL fIsSafeToBlock);
2309 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
2310 ICorProfilerCallback3 * This,
2311 /* [in] */ FunctionID functionId,
2312 /* [out] */ BOOL *pbUseCachedFunction);
2314 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
2315 ICorProfilerCallback3 * This,
2316 /* [in] */ FunctionID functionId,
2317 /* [in] */ COR_PRF_JIT_CACHE result);
2319 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
2320 ICorProfilerCallback3 * This,
2321 /* [in] */ FunctionID functionId);
2323 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
2324 ICorProfilerCallback3 * This,
2325 /* [in] */ FunctionID callerId,
2326 /* [in] */ FunctionID calleeId,
2327 /* [out] */ BOOL *pfShouldInline);
2329 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
2330 ICorProfilerCallback3 * This,
2331 /* [in] */ ThreadID threadId);
2333 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
2334 ICorProfilerCallback3 * This,
2335 /* [in] */ ThreadID threadId);
2337 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
2338 ICorProfilerCallback3 * This,
2339 /* [in] */ ThreadID managedThreadId,
2340 /* [in] */ DWORD osThreadId);
2342 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
2343 ICorProfilerCallback3 * This);
2345 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
2346 ICorProfilerCallback3 * This,
2347 /* [in] */ GUID *pCookie,
2348 /* [in] */ BOOL fIsAsync);
2350 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
2351 ICorProfilerCallback3 * This,
2352 /* [in] */ GUID *pCookie,
2353 /* [in] */ BOOL fIsAsync);
2355 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
2356 ICorProfilerCallback3 * This);
2358 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
2359 ICorProfilerCallback3 * This,
2360 /* [in] */ GUID *pCookie,
2361 /* [in] */ BOOL fIsAsync);
2363 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
2364 ICorProfilerCallback3 * This);
2366 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
2367 ICorProfilerCallback3 * This);
2369 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
2370 ICorProfilerCallback3 * This,
2371 /* [in] */ GUID *pCookie,
2372 /* [in] */ BOOL fIsAsync);
2374 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
2375 ICorProfilerCallback3 * This,
2376 /* [in] */ FunctionID functionId,
2377 /* [in] */ COR_PRF_TRANSITION_REASON reason);
2379 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
2380 ICorProfilerCallback3 * This,
2381 /* [in] */ FunctionID functionId,
2382 /* [in] */ COR_PRF_TRANSITION_REASON reason);
2384 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
2385 ICorProfilerCallback3 * This,
2386 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
2388 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
2389 ICorProfilerCallback3 * This);
2391 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
2392 ICorProfilerCallback3 * This);
2394 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
2395 ICorProfilerCallback3 * This);
2397 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
2398 ICorProfilerCallback3 * This);
2400 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
2401 ICorProfilerCallback3 * This,
2402 /* [in] */ ThreadID threadId);
2404 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
2405 ICorProfilerCallback3 * This,
2406 /* [in] */ ThreadID threadId);
2408 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
2409 ICorProfilerCallback3 * This,
2410 /* [in] */ ULONG cMovedObjectIDRanges,
2411 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
2412 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
2413 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
2415 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
2416 ICorProfilerCallback3 * This,
2417 /* [in] */ ObjectID objectId,
2418 /* [in] */ ClassID classId);
2420 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
2421 ICorProfilerCallback3 * This,
2422 /* [in] */ ULONG cClassCount,
2423 /* [size_is][in] */ ClassID classIds[ ],
2424 /* [size_is][in] */ ULONG cObjects[ ]);
2426 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
2427 ICorProfilerCallback3 * This,
2428 /* [in] */ ObjectID objectId,
2429 /* [in] */ ClassID classId,
2430 /* [in] */ ULONG cObjectRefs,
2431 /* [size_is][in] */ ObjectID objectRefIds[ ]);
2433 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
2434 ICorProfilerCallback3 * This,
2435 /* [in] */ ULONG cRootRefs,
2436 /* [size_is][in] */ ObjectID rootRefIds[ ]);
2438 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
2439 ICorProfilerCallback3 * This,
2440 /* [in] */ ObjectID thrownObjectId);
2442 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
2443 ICorProfilerCallback3 * This,
2444 /* [in] */ FunctionID functionId);
2446 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
2447 ICorProfilerCallback3 * This);
2449 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
2450 ICorProfilerCallback3 * This,
2451 /* [in] */ FunctionID functionId);
2453 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
2454 ICorProfilerCallback3 * This);
2456 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
2457 ICorProfilerCallback3 * This,
2458 /* [in] */ FunctionID functionId);
2460 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
2461 ICorProfilerCallback3 * This,
2462 /* [in] */ UINT_PTR __unused);
2464 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
2465 ICorProfilerCallback3 * This,
2466 /* [in] */ UINT_PTR __unused);
2468 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
2469 ICorProfilerCallback3 * This,
2470 /* [in] */ FunctionID functionId);
2472 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
2473 ICorProfilerCallback3 * This);
2475 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
2476 ICorProfilerCallback3 * This,
2477 /* [in] */ FunctionID functionId);
2479 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
2480 ICorProfilerCallback3 * This);
2482 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
2483 ICorProfilerCallback3 * This,
2484 /* [in] */ FunctionID functionId,
2485 /* [in] */ ObjectID objectId);
2487 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
2488 ICorProfilerCallback3 * This);
2490 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
2491 ICorProfilerCallback3 * This,
2492 /* [in] */ ClassID wrappedClassId,
2493 /* [in] */ REFGUID implementedIID,
2494 /* [in] */ void *pVTable,
2495 /* [in] */ ULONG cSlots);
2497 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
2498 ICorProfilerCallback3 * This,
2499 /* [in] */ ClassID wrappedClassId,
2500 /* [in] */ REFGUID implementedIID,
2501 /* [in] */ void *pVTable);
2503 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
2504 ICorProfilerCallback3 * This);
2506 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
2507 ICorProfilerCallback3 * This);
2509 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
2510 ICorProfilerCallback3 * This,
2511 /* [in] */ ThreadID threadId,
2512 /* [in] */ ULONG cchName,
2513 /* [annotation][in] */
2514 _In_reads_opt_(cchName) WCHAR name[ ]);
2516 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
2517 ICorProfilerCallback3 * This,
2518 /* [in] */ int cGenerations,
2519 /* [size_is][in] */ BOOL generationCollected[ ],
2520 /* [in] */ COR_PRF_GC_REASON reason);
2522 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
2523 ICorProfilerCallback3 * This,
2524 /* [in] */ ULONG cSurvivingObjectIDRanges,
2525 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
2526 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
2528 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
2529 ICorProfilerCallback3 * This);
2531 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
2532 ICorProfilerCallback3 * This,
2533 /* [in] */ DWORD finalizerFlags,
2534 /* [in] */ ObjectID objectID);
2536 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
2537 ICorProfilerCallback3 * This,
2538 /* [in] */ ULONG cRootRefs,
2539 /* [size_is][in] */ ObjectID rootRefIds[ ],
2540 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
2541 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
2542 /* [size_is][in] */ UINT_PTR rootIds[ ]);
2544 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
2545 ICorProfilerCallback3 * This,
2546 /* [in] */ GCHandleID handleId,
2547 /* [in] */ ObjectID initialObjectId);
2549 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
2550 ICorProfilerCallback3 * This,
2551 /* [in] */ GCHandleID handleId);
2553 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
2554 ICorProfilerCallback3 * This,
2555 /* [in] */ IUnknown *pCorProfilerInfoUnk,
2556 /* [in] */ void *pvClientData,
2557 /* [in] */ UINT cbClientData);
2559 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
2560 ICorProfilerCallback3 * This);
2562 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
2563 ICorProfilerCallback3 * This);
2566 } ICorProfilerCallback3Vtbl;
2568 interface ICorProfilerCallback3
2570 CONST_VTBL struct ICorProfilerCallback3Vtbl *lpVtbl;
2578 #define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \
2579 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2581 #define ICorProfilerCallback3_AddRef(This) \
2582 ( (This)->lpVtbl -> AddRef(This) )
2584 #define ICorProfilerCallback3_Release(This) \
2585 ( (This)->lpVtbl -> Release(This) )
2588 #define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \
2589 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
2591 #define ICorProfilerCallback3_Shutdown(This) \
2592 ( (This)->lpVtbl -> Shutdown(This) )
2594 #define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \
2595 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
2597 #define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \
2598 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
2600 #define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \
2601 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
2603 #define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
2604 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
2606 #define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \
2607 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
2609 #define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \
2610 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
2612 #define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \
2613 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
2615 #define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
2616 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
2618 #define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \
2619 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
2621 #define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \
2622 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
2624 #define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \
2625 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
2627 #define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \
2628 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
2630 #define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
2631 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
2633 #define ICorProfilerCallback3_ClassLoadStarted(This,classId) \
2634 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
2636 #define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \
2637 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
2639 #define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \
2640 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
2642 #define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \
2643 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
2645 #define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \
2646 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
2648 #define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
2649 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
2651 #define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
2652 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
2654 #define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
2655 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
2657 #define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \
2658 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
2660 #define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \
2661 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
2663 #define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \
2664 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
2666 #define ICorProfilerCallback3_ThreadCreated(This,threadId) \
2667 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
2669 #define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \
2670 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
2672 #define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2673 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
2675 #define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \
2676 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
2678 #define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
2679 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
2681 #define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
2682 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
2684 #define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \
2685 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
2687 #define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
2688 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
2690 #define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \
2691 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
2693 #define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \
2694 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
2696 #define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2697 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
2699 #define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \
2700 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
2702 #define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \
2703 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
2705 #define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \
2706 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
2708 #define ICorProfilerCallback3_RuntimeSuspendFinished(This) \
2709 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
2711 #define ICorProfilerCallback3_RuntimeSuspendAborted(This) \
2712 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
2714 #define ICorProfilerCallback3_RuntimeResumeStarted(This) \
2715 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
2717 #define ICorProfilerCallback3_RuntimeResumeFinished(This) \
2718 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
2720 #define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \
2721 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
2723 #define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \
2724 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
2726 #define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
2727 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
2729 #define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \
2730 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
2732 #define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
2733 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
2735 #define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
2736 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
2738 #define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \
2739 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
2741 #define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \
2742 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
2744 #define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \
2745 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
2747 #define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \
2748 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
2750 #define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \
2751 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
2753 #define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \
2754 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
2756 #define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \
2757 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
2759 #define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \
2760 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
2762 #define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \
2763 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
2765 #define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \
2766 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
2768 #define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \
2769 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
2771 #define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \
2772 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
2774 #define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \
2775 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
2777 #define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \
2778 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
2780 #define ICorProfilerCallback3_ExceptionCatcherLeave(This) \
2781 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
2783 #define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
2784 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
2786 #define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
2787 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
2789 #define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \
2790 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
2792 #define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \
2793 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
2796 #define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \
2797 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
2799 #define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
2800 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
2802 #define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
2803 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
2805 #define ICorProfilerCallback3_GarbageCollectionFinished(This) \
2806 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
2808 #define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
2809 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
2811 #define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
2812 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
2814 #define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \
2815 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
2817 #define ICorProfilerCallback3_HandleDestroyed(This,handleId) \
2818 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
2821 #define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
2822 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
2824 #define ICorProfilerCallback3_ProfilerAttachComplete(This) \
2825 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
2827 #define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \
2828 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
2830 #endif /* COBJMACROS */
2833 #endif /* C style interface */
2838 #endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */
2841 #ifndef __ICorProfilerCallback4_INTERFACE_DEFINED__
2842 #define __ICorProfilerCallback4_INTERFACE_DEFINED__
2844 /* interface ICorProfilerCallback4 */
2845 /* [local][unique][uuid][object] */
2848 EXTERN_C const IID IID_ICorProfilerCallback4;
2850 #if defined(__cplusplus) && !defined(CINTERFACE)
2852 MIDL_INTERFACE("7B63B2E3-107D-4d48-B2F6-F61E229470D2")
2853 ICorProfilerCallback4 : public ICorProfilerCallback3
2856 virtual HRESULT STDMETHODCALLTYPE ReJITCompilationStarted(
2857 /* [in] */ FunctionID functionId,
2858 /* [in] */ ReJITID rejitId,
2859 /* [in] */ BOOL fIsSafeToBlock) = 0;
2861 virtual HRESULT STDMETHODCALLTYPE GetReJITParameters(
2862 /* [in] */ ModuleID moduleId,
2863 /* [in] */ mdMethodDef methodId,
2864 /* [in] */ ICorProfilerFunctionControl *pFunctionControl) = 0;
2866 virtual HRESULT STDMETHODCALLTYPE ReJITCompilationFinished(
2867 /* [in] */ FunctionID functionId,
2868 /* [in] */ ReJITID rejitId,
2869 /* [in] */ HRESULT hrStatus,
2870 /* [in] */ BOOL fIsSafeToBlock) = 0;
2872 virtual HRESULT STDMETHODCALLTYPE ReJITError(
2873 /* [in] */ ModuleID moduleId,
2874 /* [in] */ mdMethodDef methodId,
2875 /* [in] */ FunctionID functionId,
2876 /* [in] */ HRESULT hrStatus) = 0;
2878 virtual HRESULT STDMETHODCALLTYPE MovedReferences2(
2879 /* [in] */ ULONG cMovedObjectIDRanges,
2880 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
2881 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
2882 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]) = 0;
2884 virtual HRESULT STDMETHODCALLTYPE SurvivingReferences2(
2885 /* [in] */ ULONG cSurvivingObjectIDRanges,
2886 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
2887 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]) = 0;
2892 #else /* C style interface */
2894 typedef struct ICorProfilerCallback4Vtbl
2898 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2899 ICorProfilerCallback4 * This,
2900 /* [in] */ REFIID riid,
2901 /* [annotation][iid_is][out] */
2902 _COM_Outptr_ void **ppvObject);
2904 ULONG ( STDMETHODCALLTYPE *AddRef )(
2905 ICorProfilerCallback4 * This);
2907 ULONG ( STDMETHODCALLTYPE *Release )(
2908 ICorProfilerCallback4 * This);
2910 HRESULT ( STDMETHODCALLTYPE *Initialize )(
2911 ICorProfilerCallback4 * This,
2912 /* [in] */ IUnknown *pICorProfilerInfoUnk);
2914 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
2915 ICorProfilerCallback4 * This);
2917 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
2918 ICorProfilerCallback4 * This,
2919 /* [in] */ AppDomainID appDomainId);
2921 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
2922 ICorProfilerCallback4 * This,
2923 /* [in] */ AppDomainID appDomainId,
2924 /* [in] */ HRESULT hrStatus);
2926 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
2927 ICorProfilerCallback4 * This,
2928 /* [in] */ AppDomainID appDomainId);
2930 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
2931 ICorProfilerCallback4 * This,
2932 /* [in] */ AppDomainID appDomainId,
2933 /* [in] */ HRESULT hrStatus);
2935 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
2936 ICorProfilerCallback4 * This,
2937 /* [in] */ AssemblyID assemblyId);
2939 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
2940 ICorProfilerCallback4 * This,
2941 /* [in] */ AssemblyID assemblyId,
2942 /* [in] */ HRESULT hrStatus);
2944 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
2945 ICorProfilerCallback4 * This,
2946 /* [in] */ AssemblyID assemblyId);
2948 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
2949 ICorProfilerCallback4 * This,
2950 /* [in] */ AssemblyID assemblyId,
2951 /* [in] */ HRESULT hrStatus);
2953 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
2954 ICorProfilerCallback4 * This,
2955 /* [in] */ ModuleID moduleId);
2957 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
2958 ICorProfilerCallback4 * This,
2959 /* [in] */ ModuleID moduleId,
2960 /* [in] */ HRESULT hrStatus);
2962 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
2963 ICorProfilerCallback4 * This,
2964 /* [in] */ ModuleID moduleId);
2966 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
2967 ICorProfilerCallback4 * This,
2968 /* [in] */ ModuleID moduleId,
2969 /* [in] */ HRESULT hrStatus);
2971 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
2972 ICorProfilerCallback4 * This,
2973 /* [in] */ ModuleID moduleId,
2974 /* [in] */ AssemblyID AssemblyId);
2976 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
2977 ICorProfilerCallback4 * This,
2978 /* [in] */ ClassID classId);
2980 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
2981 ICorProfilerCallback4 * This,
2982 /* [in] */ ClassID classId,
2983 /* [in] */ HRESULT hrStatus);
2985 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
2986 ICorProfilerCallback4 * This,
2987 /* [in] */ ClassID classId);
2989 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
2990 ICorProfilerCallback4 * This,
2991 /* [in] */ ClassID classId,
2992 /* [in] */ HRESULT hrStatus);
2994 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
2995 ICorProfilerCallback4 * This,
2996 /* [in] */ FunctionID functionId);
2998 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
2999 ICorProfilerCallback4 * This,
3000 /* [in] */ FunctionID functionId,
3001 /* [in] */ BOOL fIsSafeToBlock);
3003 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
3004 ICorProfilerCallback4 * This,
3005 /* [in] */ FunctionID functionId,
3006 /* [in] */ HRESULT hrStatus,
3007 /* [in] */ BOOL fIsSafeToBlock);
3009 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
3010 ICorProfilerCallback4 * This,
3011 /* [in] */ FunctionID functionId,
3012 /* [out] */ BOOL *pbUseCachedFunction);
3014 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
3015 ICorProfilerCallback4 * This,
3016 /* [in] */ FunctionID functionId,
3017 /* [in] */ COR_PRF_JIT_CACHE result);
3019 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
3020 ICorProfilerCallback4 * This,
3021 /* [in] */ FunctionID functionId);
3023 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
3024 ICorProfilerCallback4 * This,
3025 /* [in] */ FunctionID callerId,
3026 /* [in] */ FunctionID calleeId,
3027 /* [out] */ BOOL *pfShouldInline);
3029 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
3030 ICorProfilerCallback4 * This,
3031 /* [in] */ ThreadID threadId);
3033 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
3034 ICorProfilerCallback4 * This,
3035 /* [in] */ ThreadID threadId);
3037 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
3038 ICorProfilerCallback4 * This,
3039 /* [in] */ ThreadID managedThreadId,
3040 /* [in] */ DWORD osThreadId);
3042 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
3043 ICorProfilerCallback4 * This);
3045 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
3046 ICorProfilerCallback4 * This,
3047 /* [in] */ GUID *pCookie,
3048 /* [in] */ BOOL fIsAsync);
3050 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
3051 ICorProfilerCallback4 * This,
3052 /* [in] */ GUID *pCookie,
3053 /* [in] */ BOOL fIsAsync);
3055 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
3056 ICorProfilerCallback4 * This);
3058 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
3059 ICorProfilerCallback4 * This,
3060 /* [in] */ GUID *pCookie,
3061 /* [in] */ BOOL fIsAsync);
3063 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
3064 ICorProfilerCallback4 * This);
3066 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
3067 ICorProfilerCallback4 * This);
3069 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
3070 ICorProfilerCallback4 * This,
3071 /* [in] */ GUID *pCookie,
3072 /* [in] */ BOOL fIsAsync);
3074 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
3075 ICorProfilerCallback4 * This,
3076 /* [in] */ FunctionID functionId,
3077 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3079 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
3080 ICorProfilerCallback4 * This,
3081 /* [in] */ FunctionID functionId,
3082 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3084 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
3085 ICorProfilerCallback4 * This,
3086 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3088 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
3089 ICorProfilerCallback4 * This);
3091 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
3092 ICorProfilerCallback4 * This);
3094 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
3095 ICorProfilerCallback4 * This);
3097 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
3098 ICorProfilerCallback4 * This);
3100 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
3101 ICorProfilerCallback4 * This,
3102 /* [in] */ ThreadID threadId);
3104 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
3105 ICorProfilerCallback4 * This,
3106 /* [in] */ ThreadID threadId);
3108 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
3109 ICorProfilerCallback4 * This,
3110 /* [in] */ ULONG cMovedObjectIDRanges,
3111 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3112 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3113 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3115 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
3116 ICorProfilerCallback4 * This,
3117 /* [in] */ ObjectID objectId,
3118 /* [in] */ ClassID classId);
3120 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
3121 ICorProfilerCallback4 * This,
3122 /* [in] */ ULONG cClassCount,
3123 /* [size_is][in] */ ClassID classIds[ ],
3124 /* [size_is][in] */ ULONG cObjects[ ]);
3126 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
3127 ICorProfilerCallback4 * This,
3128 /* [in] */ ObjectID objectId,
3129 /* [in] */ ClassID classId,
3130 /* [in] */ ULONG cObjectRefs,
3131 /* [size_is][in] */ ObjectID objectRefIds[ ]);
3133 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
3134 ICorProfilerCallback4 * This,
3135 /* [in] */ ULONG cRootRefs,
3136 /* [size_is][in] */ ObjectID rootRefIds[ ]);
3138 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
3139 ICorProfilerCallback4 * This,
3140 /* [in] */ ObjectID thrownObjectId);
3142 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
3143 ICorProfilerCallback4 * This,
3144 /* [in] */ FunctionID functionId);
3146 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
3147 ICorProfilerCallback4 * This);
3149 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
3150 ICorProfilerCallback4 * This,
3151 /* [in] */ FunctionID functionId);
3153 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
3154 ICorProfilerCallback4 * This);
3156 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
3157 ICorProfilerCallback4 * This,
3158 /* [in] */ FunctionID functionId);
3160 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
3161 ICorProfilerCallback4 * This,
3162 /* [in] */ UINT_PTR __unused);
3164 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
3165 ICorProfilerCallback4 * This,
3166 /* [in] */ UINT_PTR __unused);
3168 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
3169 ICorProfilerCallback4 * This,
3170 /* [in] */ FunctionID functionId);
3172 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
3173 ICorProfilerCallback4 * This);
3175 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
3176 ICorProfilerCallback4 * This,
3177 /* [in] */ FunctionID functionId);
3179 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
3180 ICorProfilerCallback4 * This);
3182 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
3183 ICorProfilerCallback4 * This,
3184 /* [in] */ FunctionID functionId,
3185 /* [in] */ ObjectID objectId);
3187 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
3188 ICorProfilerCallback4 * This);
3190 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
3191 ICorProfilerCallback4 * This,
3192 /* [in] */ ClassID wrappedClassId,
3193 /* [in] */ REFGUID implementedIID,
3194 /* [in] */ void *pVTable,
3195 /* [in] */ ULONG cSlots);
3197 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
3198 ICorProfilerCallback4 * This,
3199 /* [in] */ ClassID wrappedClassId,
3200 /* [in] */ REFGUID implementedIID,
3201 /* [in] */ void *pVTable);
3203 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
3204 ICorProfilerCallback4 * This);
3206 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
3207 ICorProfilerCallback4 * This);
3209 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
3210 ICorProfilerCallback4 * This,
3211 /* [in] */ ThreadID threadId,
3212 /* [in] */ ULONG cchName,
3213 /* [annotation][in] */
3214 _In_reads_opt_(cchName) WCHAR name[ ]);
3216 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
3217 ICorProfilerCallback4 * This,
3218 /* [in] */ int cGenerations,
3219 /* [size_is][in] */ BOOL generationCollected[ ],
3220 /* [in] */ COR_PRF_GC_REASON reason);
3222 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
3223 ICorProfilerCallback4 * This,
3224 /* [in] */ ULONG cSurvivingObjectIDRanges,
3225 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3226 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3228 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
3229 ICorProfilerCallback4 * This);
3231 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
3232 ICorProfilerCallback4 * This,
3233 /* [in] */ DWORD finalizerFlags,
3234 /* [in] */ ObjectID objectID);
3236 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
3237 ICorProfilerCallback4 * This,
3238 /* [in] */ ULONG cRootRefs,
3239 /* [size_is][in] */ ObjectID rootRefIds[ ],
3240 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
3241 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
3242 /* [size_is][in] */ UINT_PTR rootIds[ ]);
3244 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
3245 ICorProfilerCallback4 * This,
3246 /* [in] */ GCHandleID handleId,
3247 /* [in] */ ObjectID initialObjectId);
3249 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
3250 ICorProfilerCallback4 * This,
3251 /* [in] */ GCHandleID handleId);
3253 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
3254 ICorProfilerCallback4 * This,
3255 /* [in] */ IUnknown *pCorProfilerInfoUnk,
3256 /* [in] */ void *pvClientData,
3257 /* [in] */ UINT cbClientData);
3259 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
3260 ICorProfilerCallback4 * This);
3262 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
3263 ICorProfilerCallback4 * This);
3265 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
3266 ICorProfilerCallback4 * This,
3267 /* [in] */ FunctionID functionId,
3268 /* [in] */ ReJITID rejitId,
3269 /* [in] */ BOOL fIsSafeToBlock);
3271 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
3272 ICorProfilerCallback4 * This,
3273 /* [in] */ ModuleID moduleId,
3274 /* [in] */ mdMethodDef methodId,
3275 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
3277 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
3278 ICorProfilerCallback4 * This,
3279 /* [in] */ FunctionID functionId,
3280 /* [in] */ ReJITID rejitId,
3281 /* [in] */ HRESULT hrStatus,
3282 /* [in] */ BOOL fIsSafeToBlock);
3284 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
3285 ICorProfilerCallback4 * This,
3286 /* [in] */ ModuleID moduleId,
3287 /* [in] */ mdMethodDef methodId,
3288 /* [in] */ FunctionID functionId,
3289 /* [in] */ HRESULT hrStatus);
3291 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
3292 ICorProfilerCallback4 * This,
3293 /* [in] */ ULONG cMovedObjectIDRanges,
3294 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3295 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3296 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
3298 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
3299 ICorProfilerCallback4 * This,
3300 /* [in] */ ULONG cSurvivingObjectIDRanges,
3301 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3302 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
3305 } ICorProfilerCallback4Vtbl;
3307 interface ICorProfilerCallback4
3309 CONST_VTBL struct ICorProfilerCallback4Vtbl *lpVtbl;
3317 #define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \
3318 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3320 #define ICorProfilerCallback4_AddRef(This) \
3321 ( (This)->lpVtbl -> AddRef(This) )
3323 #define ICorProfilerCallback4_Release(This) \
3324 ( (This)->lpVtbl -> Release(This) )
3327 #define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \
3328 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
3330 #define ICorProfilerCallback4_Shutdown(This) \
3331 ( (This)->lpVtbl -> Shutdown(This) )
3333 #define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \
3334 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
3336 #define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \
3337 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
3339 #define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \
3340 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
3342 #define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
3343 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
3345 #define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \
3346 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
3348 #define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \
3349 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
3351 #define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \
3352 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
3354 #define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
3355 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
3357 #define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \
3358 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
3360 #define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \
3361 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
3363 #define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \
3364 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
3366 #define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \
3367 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
3369 #define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
3370 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
3372 #define ICorProfilerCallback4_ClassLoadStarted(This,classId) \
3373 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
3375 #define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \
3376 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
3378 #define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \
3379 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
3381 #define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \
3382 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
3384 #define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \
3385 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
3387 #define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
3388 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
3390 #define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
3391 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
3393 #define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
3394 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
3396 #define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \
3397 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
3399 #define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \
3400 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
3402 #define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \
3403 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
3405 #define ICorProfilerCallback4_ThreadCreated(This,threadId) \
3406 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
3408 #define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \
3409 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
3411 #define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
3412 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
3414 #define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \
3415 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
3417 #define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
3418 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
3420 #define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
3421 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
3423 #define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \
3424 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
3426 #define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
3427 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
3429 #define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \
3430 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
3432 #define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \
3433 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
3435 #define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \
3436 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
3438 #define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \
3439 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
3441 #define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \
3442 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
3444 #define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \
3445 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
3447 #define ICorProfilerCallback4_RuntimeSuspendFinished(This) \
3448 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
3450 #define ICorProfilerCallback4_RuntimeSuspendAborted(This) \
3451 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
3453 #define ICorProfilerCallback4_RuntimeResumeStarted(This) \
3454 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
3456 #define ICorProfilerCallback4_RuntimeResumeFinished(This) \
3457 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
3459 #define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \
3460 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
3462 #define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \
3463 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
3465 #define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
3466 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
3468 #define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \
3469 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
3471 #define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
3472 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
3474 #define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
3475 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
3477 #define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \
3478 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
3480 #define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \
3481 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
3483 #define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \
3484 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
3486 #define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \
3487 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
3489 #define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \
3490 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
3492 #define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \
3493 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
3495 #define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \
3496 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
3498 #define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \
3499 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
3501 #define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \
3502 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
3504 #define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \
3505 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
3507 #define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \
3508 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
3510 #define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \
3511 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
3513 #define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \
3514 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
3516 #define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \
3517 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
3519 #define ICorProfilerCallback4_ExceptionCatcherLeave(This) \
3520 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
3522 #define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
3523 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
3525 #define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
3526 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
3528 #define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \
3529 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
3531 #define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \
3532 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
3535 #define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \
3536 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
3538 #define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
3539 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
3541 #define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
3542 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
3544 #define ICorProfilerCallback4_GarbageCollectionFinished(This) \
3545 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
3547 #define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
3548 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
3550 #define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
3551 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
3553 #define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \
3554 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
3556 #define ICorProfilerCallback4_HandleDestroyed(This,handleId) \
3557 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
3560 #define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
3561 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
3563 #define ICorProfilerCallback4_ProfilerAttachComplete(This) \
3564 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
3566 #define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \
3567 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
3570 #define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
3571 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
3573 #define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
3574 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
3576 #define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
3577 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
3579 #define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
3580 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
3582 #define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
3583 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
3585 #define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
3586 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
3588 #endif /* COBJMACROS */
3591 #endif /* C style interface */
3596 #endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */
3599 #ifndef __ICorProfilerCallback5_INTERFACE_DEFINED__
3600 #define __ICorProfilerCallback5_INTERFACE_DEFINED__
3602 /* interface ICorProfilerCallback5 */
3603 /* [local][unique][uuid][object] */
3606 EXTERN_C const IID IID_ICorProfilerCallback5;
3608 #if defined(__cplusplus) && !defined(CINTERFACE)
3610 MIDL_INTERFACE("8DFBA405-8C9F-45F8-BFFA-83B14CEF78B5")
3611 ICorProfilerCallback5 : public ICorProfilerCallback4
3614 virtual HRESULT STDMETHODCALLTYPE ConditionalWeakTableElementReferences(
3615 /* [in] */ ULONG cRootRefs,
3616 /* [size_is][in] */ ObjectID keyRefIds[ ],
3617 /* [size_is][in] */ ObjectID valueRefIds[ ],
3618 /* [size_is][in] */ GCHandleID rootIds[ ]) = 0;
3623 #else /* C style interface */
3625 typedef struct ICorProfilerCallback5Vtbl
3629 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3630 ICorProfilerCallback5 * This,
3631 /* [in] */ REFIID riid,
3632 /* [annotation][iid_is][out] */
3633 _COM_Outptr_ void **ppvObject);
3635 ULONG ( STDMETHODCALLTYPE *AddRef )(
3636 ICorProfilerCallback5 * This);
3638 ULONG ( STDMETHODCALLTYPE *Release )(
3639 ICorProfilerCallback5 * This);
3641 HRESULT ( STDMETHODCALLTYPE *Initialize )(
3642 ICorProfilerCallback5 * This,
3643 /* [in] */ IUnknown *pICorProfilerInfoUnk);
3645 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
3646 ICorProfilerCallback5 * This);
3648 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
3649 ICorProfilerCallback5 * This,
3650 /* [in] */ AppDomainID appDomainId);
3652 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
3653 ICorProfilerCallback5 * This,
3654 /* [in] */ AppDomainID appDomainId,
3655 /* [in] */ HRESULT hrStatus);
3657 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
3658 ICorProfilerCallback5 * This,
3659 /* [in] */ AppDomainID appDomainId);
3661 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
3662 ICorProfilerCallback5 * This,
3663 /* [in] */ AppDomainID appDomainId,
3664 /* [in] */ HRESULT hrStatus);
3666 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
3667 ICorProfilerCallback5 * This,
3668 /* [in] */ AssemblyID assemblyId);
3670 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
3671 ICorProfilerCallback5 * This,
3672 /* [in] */ AssemblyID assemblyId,
3673 /* [in] */ HRESULT hrStatus);
3675 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
3676 ICorProfilerCallback5 * This,
3677 /* [in] */ AssemblyID assemblyId);
3679 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
3680 ICorProfilerCallback5 * This,
3681 /* [in] */ AssemblyID assemblyId,
3682 /* [in] */ HRESULT hrStatus);
3684 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
3685 ICorProfilerCallback5 * This,
3686 /* [in] */ ModuleID moduleId);
3688 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
3689 ICorProfilerCallback5 * This,
3690 /* [in] */ ModuleID moduleId,
3691 /* [in] */ HRESULT hrStatus);
3693 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
3694 ICorProfilerCallback5 * This,
3695 /* [in] */ ModuleID moduleId);
3697 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
3698 ICorProfilerCallback5 * This,
3699 /* [in] */ ModuleID moduleId,
3700 /* [in] */ HRESULT hrStatus);
3702 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
3703 ICorProfilerCallback5 * This,
3704 /* [in] */ ModuleID moduleId,
3705 /* [in] */ AssemblyID AssemblyId);
3707 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
3708 ICorProfilerCallback5 * This,
3709 /* [in] */ ClassID classId);
3711 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
3712 ICorProfilerCallback5 * This,
3713 /* [in] */ ClassID classId,
3714 /* [in] */ HRESULT hrStatus);
3716 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
3717 ICorProfilerCallback5 * This,
3718 /* [in] */ ClassID classId);
3720 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
3721 ICorProfilerCallback5 * This,
3722 /* [in] */ ClassID classId,
3723 /* [in] */ HRESULT hrStatus);
3725 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
3726 ICorProfilerCallback5 * This,
3727 /* [in] */ FunctionID functionId);
3729 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
3730 ICorProfilerCallback5 * This,
3731 /* [in] */ FunctionID functionId,
3732 /* [in] */ BOOL fIsSafeToBlock);
3734 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
3735 ICorProfilerCallback5 * This,
3736 /* [in] */ FunctionID functionId,
3737 /* [in] */ HRESULT hrStatus,
3738 /* [in] */ BOOL fIsSafeToBlock);
3740 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
3741 ICorProfilerCallback5 * This,
3742 /* [in] */ FunctionID functionId,
3743 /* [out] */ BOOL *pbUseCachedFunction);
3745 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
3746 ICorProfilerCallback5 * This,
3747 /* [in] */ FunctionID functionId,
3748 /* [in] */ COR_PRF_JIT_CACHE result);
3750 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
3751 ICorProfilerCallback5 * This,
3752 /* [in] */ FunctionID functionId);
3754 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
3755 ICorProfilerCallback5 * This,
3756 /* [in] */ FunctionID callerId,
3757 /* [in] */ FunctionID calleeId,
3758 /* [out] */ BOOL *pfShouldInline);
3760 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
3761 ICorProfilerCallback5 * This,
3762 /* [in] */ ThreadID threadId);
3764 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
3765 ICorProfilerCallback5 * This,
3766 /* [in] */ ThreadID threadId);
3768 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
3769 ICorProfilerCallback5 * This,
3770 /* [in] */ ThreadID managedThreadId,
3771 /* [in] */ DWORD osThreadId);
3773 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
3774 ICorProfilerCallback5 * This);
3776 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
3777 ICorProfilerCallback5 * This,
3778 /* [in] */ GUID *pCookie,
3779 /* [in] */ BOOL fIsAsync);
3781 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
3782 ICorProfilerCallback5 * This,
3783 /* [in] */ GUID *pCookie,
3784 /* [in] */ BOOL fIsAsync);
3786 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
3787 ICorProfilerCallback5 * This);
3789 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
3790 ICorProfilerCallback5 * This,
3791 /* [in] */ GUID *pCookie,
3792 /* [in] */ BOOL fIsAsync);
3794 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
3795 ICorProfilerCallback5 * This);
3797 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
3798 ICorProfilerCallback5 * This);
3800 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
3801 ICorProfilerCallback5 * This,
3802 /* [in] */ GUID *pCookie,
3803 /* [in] */ BOOL fIsAsync);
3805 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
3806 ICorProfilerCallback5 * This,
3807 /* [in] */ FunctionID functionId,
3808 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3810 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
3811 ICorProfilerCallback5 * This,
3812 /* [in] */ FunctionID functionId,
3813 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3815 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
3816 ICorProfilerCallback5 * This,
3817 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3819 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
3820 ICorProfilerCallback5 * This);
3822 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
3823 ICorProfilerCallback5 * This);
3825 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
3826 ICorProfilerCallback5 * This);
3828 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
3829 ICorProfilerCallback5 * This);
3831 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
3832 ICorProfilerCallback5 * This,
3833 /* [in] */ ThreadID threadId);
3835 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
3836 ICorProfilerCallback5 * This,
3837 /* [in] */ ThreadID threadId);
3839 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
3840 ICorProfilerCallback5 * This,
3841 /* [in] */ ULONG cMovedObjectIDRanges,
3842 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3843 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3844 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3846 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
3847 ICorProfilerCallback5 * This,
3848 /* [in] */ ObjectID objectId,
3849 /* [in] */ ClassID classId);
3851 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
3852 ICorProfilerCallback5 * This,
3853 /* [in] */ ULONG cClassCount,
3854 /* [size_is][in] */ ClassID classIds[ ],
3855 /* [size_is][in] */ ULONG cObjects[ ]);
3857 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
3858 ICorProfilerCallback5 * This,
3859 /* [in] */ ObjectID objectId,
3860 /* [in] */ ClassID classId,
3861 /* [in] */ ULONG cObjectRefs,
3862 /* [size_is][in] */ ObjectID objectRefIds[ ]);
3864 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
3865 ICorProfilerCallback5 * This,
3866 /* [in] */ ULONG cRootRefs,
3867 /* [size_is][in] */ ObjectID rootRefIds[ ]);
3869 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
3870 ICorProfilerCallback5 * This,
3871 /* [in] */ ObjectID thrownObjectId);
3873 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
3874 ICorProfilerCallback5 * This,
3875 /* [in] */ FunctionID functionId);
3877 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
3878 ICorProfilerCallback5 * This);
3880 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
3881 ICorProfilerCallback5 * This,
3882 /* [in] */ FunctionID functionId);
3884 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
3885 ICorProfilerCallback5 * This);
3887 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
3888 ICorProfilerCallback5 * This,
3889 /* [in] */ FunctionID functionId);
3891 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
3892 ICorProfilerCallback5 * This,
3893 /* [in] */ UINT_PTR __unused);
3895 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
3896 ICorProfilerCallback5 * This,
3897 /* [in] */ UINT_PTR __unused);
3899 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
3900 ICorProfilerCallback5 * This,
3901 /* [in] */ FunctionID functionId);
3903 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
3904 ICorProfilerCallback5 * This);
3906 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
3907 ICorProfilerCallback5 * This,
3908 /* [in] */ FunctionID functionId);
3910 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
3911 ICorProfilerCallback5 * This);
3913 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
3914 ICorProfilerCallback5 * This,
3915 /* [in] */ FunctionID functionId,
3916 /* [in] */ ObjectID objectId);
3918 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
3919 ICorProfilerCallback5 * This);
3921 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
3922 ICorProfilerCallback5 * This,
3923 /* [in] */ ClassID wrappedClassId,
3924 /* [in] */ REFGUID implementedIID,
3925 /* [in] */ void *pVTable,
3926 /* [in] */ ULONG cSlots);
3928 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
3929 ICorProfilerCallback5 * This,
3930 /* [in] */ ClassID wrappedClassId,
3931 /* [in] */ REFGUID implementedIID,
3932 /* [in] */ void *pVTable);
3934 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
3935 ICorProfilerCallback5 * This);
3937 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
3938 ICorProfilerCallback5 * This);
3940 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
3941 ICorProfilerCallback5 * This,
3942 /* [in] */ ThreadID threadId,
3943 /* [in] */ ULONG cchName,
3944 /* [annotation][in] */
3945 _In_reads_opt_(cchName) WCHAR name[ ]);
3947 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
3948 ICorProfilerCallback5 * This,
3949 /* [in] */ int cGenerations,
3950 /* [size_is][in] */ BOOL generationCollected[ ],
3951 /* [in] */ COR_PRF_GC_REASON reason);
3953 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
3954 ICorProfilerCallback5 * This,
3955 /* [in] */ ULONG cSurvivingObjectIDRanges,
3956 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3957 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3959 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
3960 ICorProfilerCallback5 * This);
3962 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
3963 ICorProfilerCallback5 * This,
3964 /* [in] */ DWORD finalizerFlags,
3965 /* [in] */ ObjectID objectID);
3967 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
3968 ICorProfilerCallback5 * This,
3969 /* [in] */ ULONG cRootRefs,
3970 /* [size_is][in] */ ObjectID rootRefIds[ ],
3971 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
3972 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
3973 /* [size_is][in] */ UINT_PTR rootIds[ ]);
3975 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
3976 ICorProfilerCallback5 * This,
3977 /* [in] */ GCHandleID handleId,
3978 /* [in] */ ObjectID initialObjectId);
3980 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
3981 ICorProfilerCallback5 * This,
3982 /* [in] */ GCHandleID handleId);
3984 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
3985 ICorProfilerCallback5 * This,
3986 /* [in] */ IUnknown *pCorProfilerInfoUnk,
3987 /* [in] */ void *pvClientData,
3988 /* [in] */ UINT cbClientData);
3990 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
3991 ICorProfilerCallback5 * This);
3993 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
3994 ICorProfilerCallback5 * This);
3996 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
3997 ICorProfilerCallback5 * This,
3998 /* [in] */ FunctionID functionId,
3999 /* [in] */ ReJITID rejitId,
4000 /* [in] */ BOOL fIsSafeToBlock);
4002 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
4003 ICorProfilerCallback5 * This,
4004 /* [in] */ ModuleID moduleId,
4005 /* [in] */ mdMethodDef methodId,
4006 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4008 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
4009 ICorProfilerCallback5 * This,
4010 /* [in] */ FunctionID functionId,
4011 /* [in] */ ReJITID rejitId,
4012 /* [in] */ HRESULT hrStatus,
4013 /* [in] */ BOOL fIsSafeToBlock);
4015 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
4016 ICorProfilerCallback5 * This,
4017 /* [in] */ ModuleID moduleId,
4018 /* [in] */ mdMethodDef methodId,
4019 /* [in] */ FunctionID functionId,
4020 /* [in] */ HRESULT hrStatus);
4022 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
4023 ICorProfilerCallback5 * This,
4024 /* [in] */ ULONG cMovedObjectIDRanges,
4025 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4026 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4027 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4029 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
4030 ICorProfilerCallback5 * This,
4031 /* [in] */ ULONG cSurvivingObjectIDRanges,
4032 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4033 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4035 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
4036 ICorProfilerCallback5 * This,
4037 /* [in] */ ULONG cRootRefs,
4038 /* [size_is][in] */ ObjectID keyRefIds[ ],
4039 /* [size_is][in] */ ObjectID valueRefIds[ ],
4040 /* [size_is][in] */ GCHandleID rootIds[ ]);
4043 } ICorProfilerCallback5Vtbl;
4045 interface ICorProfilerCallback5
4047 CONST_VTBL struct ICorProfilerCallback5Vtbl *lpVtbl;
4055 #define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \
4056 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4058 #define ICorProfilerCallback5_AddRef(This) \
4059 ( (This)->lpVtbl -> AddRef(This) )
4061 #define ICorProfilerCallback5_Release(This) \
4062 ( (This)->lpVtbl -> Release(This) )
4065 #define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \
4066 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
4068 #define ICorProfilerCallback5_Shutdown(This) \
4069 ( (This)->lpVtbl -> Shutdown(This) )
4071 #define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \
4072 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
4074 #define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \
4075 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
4077 #define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \
4078 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
4080 #define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
4081 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
4083 #define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \
4084 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
4086 #define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \
4087 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
4089 #define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \
4090 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
4092 #define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
4093 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
4095 #define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \
4096 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
4098 #define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \
4099 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
4101 #define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \
4102 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
4104 #define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \
4105 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
4107 #define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
4108 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
4110 #define ICorProfilerCallback5_ClassLoadStarted(This,classId) \
4111 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
4113 #define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \
4114 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
4116 #define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \
4117 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
4119 #define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \
4120 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
4122 #define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \
4123 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
4125 #define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
4126 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
4128 #define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
4129 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
4131 #define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
4132 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
4134 #define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \
4135 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
4137 #define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \
4138 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
4140 #define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \
4141 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
4143 #define ICorProfilerCallback5_ThreadCreated(This,threadId) \
4144 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
4146 #define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \
4147 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
4149 #define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4150 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
4152 #define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \
4153 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
4155 #define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
4156 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
4158 #define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
4159 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
4161 #define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \
4162 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
4164 #define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
4165 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
4167 #define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \
4168 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
4170 #define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \
4171 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
4173 #define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4174 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
4176 #define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \
4177 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
4179 #define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \
4180 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
4182 #define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \
4183 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
4185 #define ICorProfilerCallback5_RuntimeSuspendFinished(This) \
4186 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
4188 #define ICorProfilerCallback5_RuntimeSuspendAborted(This) \
4189 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
4191 #define ICorProfilerCallback5_RuntimeResumeStarted(This) \
4192 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
4194 #define ICorProfilerCallback5_RuntimeResumeFinished(This) \
4195 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
4197 #define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \
4198 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
4200 #define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \
4201 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
4203 #define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4204 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4206 #define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \
4207 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
4209 #define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
4210 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
4212 #define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
4213 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
4215 #define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \
4216 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
4218 #define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \
4219 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
4221 #define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \
4222 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
4224 #define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \
4225 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
4227 #define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \
4228 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
4230 #define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \
4231 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
4233 #define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \
4234 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
4236 #define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \
4237 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
4239 #define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \
4240 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
4242 #define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \
4243 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
4245 #define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \
4246 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
4248 #define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \
4249 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
4251 #define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \
4252 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
4254 #define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \
4255 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
4257 #define ICorProfilerCallback5_ExceptionCatcherLeave(This) \
4258 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
4260 #define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
4261 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
4263 #define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
4264 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
4266 #define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \
4267 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
4269 #define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \
4270 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
4273 #define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \
4274 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
4276 #define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
4277 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
4279 #define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
4280 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
4282 #define ICorProfilerCallback5_GarbageCollectionFinished(This) \
4283 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
4285 #define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
4286 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
4288 #define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
4289 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
4291 #define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \
4292 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
4294 #define ICorProfilerCallback5_HandleDestroyed(This,handleId) \
4295 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
4298 #define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
4299 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
4301 #define ICorProfilerCallback5_ProfilerAttachComplete(This) \
4302 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
4304 #define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \
4305 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
4308 #define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
4309 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
4311 #define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
4312 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
4314 #define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
4315 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
4317 #define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
4318 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
4320 #define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4321 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4323 #define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
4324 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
4327 #define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
4328 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
4330 #endif /* COBJMACROS */
4333 #endif /* C style interface */
4338 #endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */
4341 #ifndef __ICorProfilerCallback6_INTERFACE_DEFINED__
4342 #define __ICorProfilerCallback6_INTERFACE_DEFINED__
4344 /* interface ICorProfilerCallback6 */
4345 /* [local][unique][uuid][object] */
4348 EXTERN_C const IID IID_ICorProfilerCallback6;
4350 #if defined(__cplusplus) && !defined(CINTERFACE)
4352 MIDL_INTERFACE("FC13DF4B-4448-4F4F-950C-BA8D19D00C36")
4353 ICorProfilerCallback6 : public ICorProfilerCallback5
4356 virtual HRESULT STDMETHODCALLTYPE GetAssemblyReferences(
4357 /* [string][in] */ const WCHAR *wszAssemblyPath,
4358 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider) = 0;
4363 #else /* C style interface */
4365 typedef struct ICorProfilerCallback6Vtbl
4369 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4370 ICorProfilerCallback6 * This,
4371 /* [in] */ REFIID riid,
4372 /* [annotation][iid_is][out] */
4373 _COM_Outptr_ void **ppvObject);
4375 ULONG ( STDMETHODCALLTYPE *AddRef )(
4376 ICorProfilerCallback6 * This);
4378 ULONG ( STDMETHODCALLTYPE *Release )(
4379 ICorProfilerCallback6 * This);
4381 HRESULT ( STDMETHODCALLTYPE *Initialize )(
4382 ICorProfilerCallback6 * This,
4383 /* [in] */ IUnknown *pICorProfilerInfoUnk);
4385 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
4386 ICorProfilerCallback6 * This);
4388 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
4389 ICorProfilerCallback6 * This,
4390 /* [in] */ AppDomainID appDomainId);
4392 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
4393 ICorProfilerCallback6 * This,
4394 /* [in] */ AppDomainID appDomainId,
4395 /* [in] */ HRESULT hrStatus);
4397 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
4398 ICorProfilerCallback6 * This,
4399 /* [in] */ AppDomainID appDomainId);
4401 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
4402 ICorProfilerCallback6 * This,
4403 /* [in] */ AppDomainID appDomainId,
4404 /* [in] */ HRESULT hrStatus);
4406 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
4407 ICorProfilerCallback6 * This,
4408 /* [in] */ AssemblyID assemblyId);
4410 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
4411 ICorProfilerCallback6 * This,
4412 /* [in] */ AssemblyID assemblyId,
4413 /* [in] */ HRESULT hrStatus);
4415 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
4416 ICorProfilerCallback6 * This,
4417 /* [in] */ AssemblyID assemblyId);
4419 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
4420 ICorProfilerCallback6 * This,
4421 /* [in] */ AssemblyID assemblyId,
4422 /* [in] */ HRESULT hrStatus);
4424 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
4425 ICorProfilerCallback6 * This,
4426 /* [in] */ ModuleID moduleId);
4428 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
4429 ICorProfilerCallback6 * This,
4430 /* [in] */ ModuleID moduleId,
4431 /* [in] */ HRESULT hrStatus);
4433 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
4434 ICorProfilerCallback6 * This,
4435 /* [in] */ ModuleID moduleId);
4437 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
4438 ICorProfilerCallback6 * This,
4439 /* [in] */ ModuleID moduleId,
4440 /* [in] */ HRESULT hrStatus);
4442 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
4443 ICorProfilerCallback6 * This,
4444 /* [in] */ ModuleID moduleId,
4445 /* [in] */ AssemblyID AssemblyId);
4447 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
4448 ICorProfilerCallback6 * This,
4449 /* [in] */ ClassID classId);
4451 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
4452 ICorProfilerCallback6 * This,
4453 /* [in] */ ClassID classId,
4454 /* [in] */ HRESULT hrStatus);
4456 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
4457 ICorProfilerCallback6 * This,
4458 /* [in] */ ClassID classId);
4460 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
4461 ICorProfilerCallback6 * This,
4462 /* [in] */ ClassID classId,
4463 /* [in] */ HRESULT hrStatus);
4465 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
4466 ICorProfilerCallback6 * This,
4467 /* [in] */ FunctionID functionId);
4469 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
4470 ICorProfilerCallback6 * This,
4471 /* [in] */ FunctionID functionId,
4472 /* [in] */ BOOL fIsSafeToBlock);
4474 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
4475 ICorProfilerCallback6 * This,
4476 /* [in] */ FunctionID functionId,
4477 /* [in] */ HRESULT hrStatus,
4478 /* [in] */ BOOL fIsSafeToBlock);
4480 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
4481 ICorProfilerCallback6 * This,
4482 /* [in] */ FunctionID functionId,
4483 /* [out] */ BOOL *pbUseCachedFunction);
4485 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
4486 ICorProfilerCallback6 * This,
4487 /* [in] */ FunctionID functionId,
4488 /* [in] */ COR_PRF_JIT_CACHE result);
4490 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
4491 ICorProfilerCallback6 * This,
4492 /* [in] */ FunctionID functionId);
4494 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
4495 ICorProfilerCallback6 * This,
4496 /* [in] */ FunctionID callerId,
4497 /* [in] */ FunctionID calleeId,
4498 /* [out] */ BOOL *pfShouldInline);
4500 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
4501 ICorProfilerCallback6 * This,
4502 /* [in] */ ThreadID threadId);
4504 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
4505 ICorProfilerCallback6 * This,
4506 /* [in] */ ThreadID threadId);
4508 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
4509 ICorProfilerCallback6 * This,
4510 /* [in] */ ThreadID managedThreadId,
4511 /* [in] */ DWORD osThreadId);
4513 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
4514 ICorProfilerCallback6 * This);
4516 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
4517 ICorProfilerCallback6 * This,
4518 /* [in] */ GUID *pCookie,
4519 /* [in] */ BOOL fIsAsync);
4521 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
4522 ICorProfilerCallback6 * This,
4523 /* [in] */ GUID *pCookie,
4524 /* [in] */ BOOL fIsAsync);
4526 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
4527 ICorProfilerCallback6 * This);
4529 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
4530 ICorProfilerCallback6 * This,
4531 /* [in] */ GUID *pCookie,
4532 /* [in] */ BOOL fIsAsync);
4534 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
4535 ICorProfilerCallback6 * This);
4537 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
4538 ICorProfilerCallback6 * This);
4540 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
4541 ICorProfilerCallback6 * This,
4542 /* [in] */ GUID *pCookie,
4543 /* [in] */ BOOL fIsAsync);
4545 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
4546 ICorProfilerCallback6 * This,
4547 /* [in] */ FunctionID functionId,
4548 /* [in] */ COR_PRF_TRANSITION_REASON reason);
4550 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
4551 ICorProfilerCallback6 * This,
4552 /* [in] */ FunctionID functionId,
4553 /* [in] */ COR_PRF_TRANSITION_REASON reason);
4555 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
4556 ICorProfilerCallback6 * This,
4557 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
4559 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
4560 ICorProfilerCallback6 * This);
4562 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
4563 ICorProfilerCallback6 * This);
4565 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
4566 ICorProfilerCallback6 * This);
4568 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
4569 ICorProfilerCallback6 * This);
4571 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
4572 ICorProfilerCallback6 * This,
4573 /* [in] */ ThreadID threadId);
4575 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
4576 ICorProfilerCallback6 * This,
4577 /* [in] */ ThreadID threadId);
4579 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
4580 ICorProfilerCallback6 * This,
4581 /* [in] */ ULONG cMovedObjectIDRanges,
4582 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4583 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4584 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
4586 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
4587 ICorProfilerCallback6 * This,
4588 /* [in] */ ObjectID objectId,
4589 /* [in] */ ClassID classId);
4591 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
4592 ICorProfilerCallback6 * This,
4593 /* [in] */ ULONG cClassCount,
4594 /* [size_is][in] */ ClassID classIds[ ],
4595 /* [size_is][in] */ ULONG cObjects[ ]);
4597 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
4598 ICorProfilerCallback6 * This,
4599 /* [in] */ ObjectID objectId,
4600 /* [in] */ ClassID classId,
4601 /* [in] */ ULONG cObjectRefs,
4602 /* [size_is][in] */ ObjectID objectRefIds[ ]);
4604 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
4605 ICorProfilerCallback6 * This,
4606 /* [in] */ ULONG cRootRefs,
4607 /* [size_is][in] */ ObjectID rootRefIds[ ]);
4609 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
4610 ICorProfilerCallback6 * This,
4611 /* [in] */ ObjectID thrownObjectId);
4613 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
4614 ICorProfilerCallback6 * This,
4615 /* [in] */ FunctionID functionId);
4617 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
4618 ICorProfilerCallback6 * This);
4620 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
4621 ICorProfilerCallback6 * This,
4622 /* [in] */ FunctionID functionId);
4624 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
4625 ICorProfilerCallback6 * This);
4627 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
4628 ICorProfilerCallback6 * This,
4629 /* [in] */ FunctionID functionId);
4631 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
4632 ICorProfilerCallback6 * This,
4633 /* [in] */ UINT_PTR __unused);
4635 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
4636 ICorProfilerCallback6 * This,
4637 /* [in] */ UINT_PTR __unused);
4639 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
4640 ICorProfilerCallback6 * This,
4641 /* [in] */ FunctionID functionId);
4643 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
4644 ICorProfilerCallback6 * This);
4646 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
4647 ICorProfilerCallback6 * This,
4648 /* [in] */ FunctionID functionId);
4650 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
4651 ICorProfilerCallback6 * This);
4653 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
4654 ICorProfilerCallback6 * This,
4655 /* [in] */ FunctionID functionId,
4656 /* [in] */ ObjectID objectId);
4658 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
4659 ICorProfilerCallback6 * This);
4661 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
4662 ICorProfilerCallback6 * This,
4663 /* [in] */ ClassID wrappedClassId,
4664 /* [in] */ REFGUID implementedIID,
4665 /* [in] */ void *pVTable,
4666 /* [in] */ ULONG cSlots);
4668 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
4669 ICorProfilerCallback6 * This,
4670 /* [in] */ ClassID wrappedClassId,
4671 /* [in] */ REFGUID implementedIID,
4672 /* [in] */ void *pVTable);
4674 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
4675 ICorProfilerCallback6 * This);
4677 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
4678 ICorProfilerCallback6 * This);
4680 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
4681 ICorProfilerCallback6 * This,
4682 /* [in] */ ThreadID threadId,
4683 /* [in] */ ULONG cchName,
4684 /* [annotation][in] */
4685 _In_reads_opt_(cchName) WCHAR name[ ]);
4687 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
4688 ICorProfilerCallback6 * This,
4689 /* [in] */ int cGenerations,
4690 /* [size_is][in] */ BOOL generationCollected[ ],
4691 /* [in] */ COR_PRF_GC_REASON reason);
4693 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
4694 ICorProfilerCallback6 * This,
4695 /* [in] */ ULONG cSurvivingObjectIDRanges,
4696 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4697 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
4699 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
4700 ICorProfilerCallback6 * This);
4702 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
4703 ICorProfilerCallback6 * This,
4704 /* [in] */ DWORD finalizerFlags,
4705 /* [in] */ ObjectID objectID);
4707 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
4708 ICorProfilerCallback6 * This,
4709 /* [in] */ ULONG cRootRefs,
4710 /* [size_is][in] */ ObjectID rootRefIds[ ],
4711 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
4712 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
4713 /* [size_is][in] */ UINT_PTR rootIds[ ]);
4715 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
4716 ICorProfilerCallback6 * This,
4717 /* [in] */ GCHandleID handleId,
4718 /* [in] */ ObjectID initialObjectId);
4720 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
4721 ICorProfilerCallback6 * This,
4722 /* [in] */ GCHandleID handleId);
4724 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
4725 ICorProfilerCallback6 * This,
4726 /* [in] */ IUnknown *pCorProfilerInfoUnk,
4727 /* [in] */ void *pvClientData,
4728 /* [in] */ UINT cbClientData);
4730 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
4731 ICorProfilerCallback6 * This);
4733 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
4734 ICorProfilerCallback6 * This);
4736 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
4737 ICorProfilerCallback6 * This,
4738 /* [in] */ FunctionID functionId,
4739 /* [in] */ ReJITID rejitId,
4740 /* [in] */ BOOL fIsSafeToBlock);
4742 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
4743 ICorProfilerCallback6 * This,
4744 /* [in] */ ModuleID moduleId,
4745 /* [in] */ mdMethodDef methodId,
4746 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4748 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
4749 ICorProfilerCallback6 * This,
4750 /* [in] */ FunctionID functionId,
4751 /* [in] */ ReJITID rejitId,
4752 /* [in] */ HRESULT hrStatus,
4753 /* [in] */ BOOL fIsSafeToBlock);
4755 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
4756 ICorProfilerCallback6 * This,
4757 /* [in] */ ModuleID moduleId,
4758 /* [in] */ mdMethodDef methodId,
4759 /* [in] */ FunctionID functionId,
4760 /* [in] */ HRESULT hrStatus);
4762 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
4763 ICorProfilerCallback6 * This,
4764 /* [in] */ ULONG cMovedObjectIDRanges,
4765 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4766 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4767 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4769 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
4770 ICorProfilerCallback6 * This,
4771 /* [in] */ ULONG cSurvivingObjectIDRanges,
4772 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4773 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4775 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
4776 ICorProfilerCallback6 * This,
4777 /* [in] */ ULONG cRootRefs,
4778 /* [size_is][in] */ ObjectID keyRefIds[ ],
4779 /* [size_is][in] */ ObjectID valueRefIds[ ],
4780 /* [size_is][in] */ GCHandleID rootIds[ ]);
4782 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
4783 ICorProfilerCallback6 * This,
4784 /* [string][in] */ const WCHAR *wszAssemblyPath,
4785 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
4788 } ICorProfilerCallback6Vtbl;
4790 interface ICorProfilerCallback6
4792 CONST_VTBL struct ICorProfilerCallback6Vtbl *lpVtbl;
4800 #define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \
4801 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4803 #define ICorProfilerCallback6_AddRef(This) \
4804 ( (This)->lpVtbl -> AddRef(This) )
4806 #define ICorProfilerCallback6_Release(This) \
4807 ( (This)->lpVtbl -> Release(This) )
4810 #define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \
4811 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
4813 #define ICorProfilerCallback6_Shutdown(This) \
4814 ( (This)->lpVtbl -> Shutdown(This) )
4816 #define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \
4817 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
4819 #define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \
4820 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
4822 #define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \
4823 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
4825 #define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
4826 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
4828 #define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \
4829 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
4831 #define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \
4832 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
4834 #define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \
4835 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
4837 #define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
4838 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
4840 #define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \
4841 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
4843 #define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \
4844 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
4846 #define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \
4847 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
4849 #define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \
4850 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
4852 #define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
4853 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
4855 #define ICorProfilerCallback6_ClassLoadStarted(This,classId) \
4856 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
4858 #define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \
4859 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
4861 #define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \
4862 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
4864 #define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \
4865 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
4867 #define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \
4868 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
4870 #define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
4871 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
4873 #define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
4874 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
4876 #define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
4877 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
4879 #define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \
4880 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
4882 #define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \
4883 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
4885 #define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \
4886 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
4888 #define ICorProfilerCallback6_ThreadCreated(This,threadId) \
4889 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
4891 #define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \
4892 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
4894 #define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4895 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
4897 #define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \
4898 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
4900 #define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
4901 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
4903 #define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
4904 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
4906 #define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \
4907 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
4909 #define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
4910 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
4912 #define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \
4913 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
4915 #define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \
4916 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
4918 #define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4919 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
4921 #define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \
4922 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
4924 #define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \
4925 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
4927 #define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \
4928 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
4930 #define ICorProfilerCallback6_RuntimeSuspendFinished(This) \
4931 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
4933 #define ICorProfilerCallback6_RuntimeSuspendAborted(This) \
4934 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
4936 #define ICorProfilerCallback6_RuntimeResumeStarted(This) \
4937 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
4939 #define ICorProfilerCallback6_RuntimeResumeFinished(This) \
4940 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
4942 #define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \
4943 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
4945 #define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \
4946 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
4948 #define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4949 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4951 #define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \
4952 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
4954 #define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
4955 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
4957 #define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
4958 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
4960 #define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \
4961 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
4963 #define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \
4964 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
4966 #define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \
4967 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
4969 #define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \
4970 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
4972 #define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \
4973 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
4975 #define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \
4976 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
4978 #define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \
4979 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
4981 #define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \
4982 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
4984 #define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \
4985 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
4987 #define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \
4988 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
4990 #define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \
4991 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
4993 #define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \
4994 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
4996 #define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \
4997 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
4999 #define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \
5000 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
5002 #define ICorProfilerCallback6_ExceptionCatcherLeave(This) \
5003 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
5005 #define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
5006 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
5008 #define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
5009 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
5011 #define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \
5012 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
5014 #define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \
5015 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
5018 #define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \
5019 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
5021 #define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
5022 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
5024 #define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5025 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5027 #define ICorProfilerCallback6_GarbageCollectionFinished(This) \
5028 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
5030 #define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
5031 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
5033 #define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
5034 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
5036 #define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \
5037 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
5039 #define ICorProfilerCallback6_HandleDestroyed(This,handleId) \
5040 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
5043 #define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
5044 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
5046 #define ICorProfilerCallback6_ProfilerAttachComplete(This) \
5047 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
5049 #define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \
5050 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
5053 #define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
5054 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
5056 #define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
5057 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
5059 #define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5060 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
5062 #define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
5063 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
5065 #define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5066 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5068 #define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5069 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5072 #define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
5073 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
5076 #define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
5077 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
5079 #endif /* COBJMACROS */
5082 #endif /* C style interface */
5087 #endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */
5090 #ifndef __ICorProfilerCallback7_INTERFACE_DEFINED__
5091 #define __ICorProfilerCallback7_INTERFACE_DEFINED__
5093 /* interface ICorProfilerCallback7 */
5094 /* [local][unique][uuid][object] */
5097 EXTERN_C const IID IID_ICorProfilerCallback7;
5099 #if defined(__cplusplus) && !defined(CINTERFACE)
5101 MIDL_INTERFACE("F76A2DBA-1D52-4539-866C-2AA518F9EFC3")
5102 ICorProfilerCallback7 : public ICorProfilerCallback6
5105 virtual HRESULT STDMETHODCALLTYPE ModuleInMemorySymbolsUpdated(
5106 ModuleID moduleId) = 0;
5111 #else /* C style interface */
5113 typedef struct ICorProfilerCallback7Vtbl
5117 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5118 ICorProfilerCallback7 * This,
5119 /* [in] */ REFIID riid,
5120 /* [annotation][iid_is][out] */
5121 _COM_Outptr_ void **ppvObject);
5123 ULONG ( STDMETHODCALLTYPE *AddRef )(
5124 ICorProfilerCallback7 * This);
5126 ULONG ( STDMETHODCALLTYPE *Release )(
5127 ICorProfilerCallback7 * This);
5129 HRESULT ( STDMETHODCALLTYPE *Initialize )(
5130 ICorProfilerCallback7 * This,
5131 /* [in] */ IUnknown *pICorProfilerInfoUnk);
5133 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
5134 ICorProfilerCallback7 * This);
5136 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
5137 ICorProfilerCallback7 * This,
5138 /* [in] */ AppDomainID appDomainId);
5140 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
5141 ICorProfilerCallback7 * This,
5142 /* [in] */ AppDomainID appDomainId,
5143 /* [in] */ HRESULT hrStatus);
5145 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
5146 ICorProfilerCallback7 * This,
5147 /* [in] */ AppDomainID appDomainId);
5149 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
5150 ICorProfilerCallback7 * This,
5151 /* [in] */ AppDomainID appDomainId,
5152 /* [in] */ HRESULT hrStatus);
5154 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
5155 ICorProfilerCallback7 * This,
5156 /* [in] */ AssemblyID assemblyId);
5158 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
5159 ICorProfilerCallback7 * This,
5160 /* [in] */ AssemblyID assemblyId,
5161 /* [in] */ HRESULT hrStatus);
5163 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
5164 ICorProfilerCallback7 * This,
5165 /* [in] */ AssemblyID assemblyId);
5167 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
5168 ICorProfilerCallback7 * This,
5169 /* [in] */ AssemblyID assemblyId,
5170 /* [in] */ HRESULT hrStatus);
5172 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
5173 ICorProfilerCallback7 * This,
5174 /* [in] */ ModuleID moduleId);
5176 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
5177 ICorProfilerCallback7 * This,
5178 /* [in] */ ModuleID moduleId,
5179 /* [in] */ HRESULT hrStatus);
5181 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
5182 ICorProfilerCallback7 * This,
5183 /* [in] */ ModuleID moduleId);
5185 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
5186 ICorProfilerCallback7 * This,
5187 /* [in] */ ModuleID moduleId,
5188 /* [in] */ HRESULT hrStatus);
5190 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
5191 ICorProfilerCallback7 * This,
5192 /* [in] */ ModuleID moduleId,
5193 /* [in] */ AssemblyID AssemblyId);
5195 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
5196 ICorProfilerCallback7 * This,
5197 /* [in] */ ClassID classId);
5199 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
5200 ICorProfilerCallback7 * This,
5201 /* [in] */ ClassID classId,
5202 /* [in] */ HRESULT hrStatus);
5204 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
5205 ICorProfilerCallback7 * This,
5206 /* [in] */ ClassID classId);
5208 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
5209 ICorProfilerCallback7 * This,
5210 /* [in] */ ClassID classId,
5211 /* [in] */ HRESULT hrStatus);
5213 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
5214 ICorProfilerCallback7 * This,
5215 /* [in] */ FunctionID functionId);
5217 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
5218 ICorProfilerCallback7 * This,
5219 /* [in] */ FunctionID functionId,
5220 /* [in] */ BOOL fIsSafeToBlock);
5222 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
5223 ICorProfilerCallback7 * This,
5224 /* [in] */ FunctionID functionId,
5225 /* [in] */ HRESULT hrStatus,
5226 /* [in] */ BOOL fIsSafeToBlock);
5228 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
5229 ICorProfilerCallback7 * This,
5230 /* [in] */ FunctionID functionId,
5231 /* [out] */ BOOL *pbUseCachedFunction);
5233 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
5234 ICorProfilerCallback7 * This,
5235 /* [in] */ FunctionID functionId,
5236 /* [in] */ COR_PRF_JIT_CACHE result);
5238 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
5239 ICorProfilerCallback7 * This,
5240 /* [in] */ FunctionID functionId);
5242 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
5243 ICorProfilerCallback7 * This,
5244 /* [in] */ FunctionID callerId,
5245 /* [in] */ FunctionID calleeId,
5246 /* [out] */ BOOL *pfShouldInline);
5248 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
5249 ICorProfilerCallback7 * This,
5250 /* [in] */ ThreadID threadId);
5252 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
5253 ICorProfilerCallback7 * This,
5254 /* [in] */ ThreadID threadId);
5256 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
5257 ICorProfilerCallback7 * This,
5258 /* [in] */ ThreadID managedThreadId,
5259 /* [in] */ DWORD osThreadId);
5261 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
5262 ICorProfilerCallback7 * This);
5264 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
5265 ICorProfilerCallback7 * This,
5266 /* [in] */ GUID *pCookie,
5267 /* [in] */ BOOL fIsAsync);
5269 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
5270 ICorProfilerCallback7 * This,
5271 /* [in] */ GUID *pCookie,
5272 /* [in] */ BOOL fIsAsync);
5274 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
5275 ICorProfilerCallback7 * This);
5277 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
5278 ICorProfilerCallback7 * This,
5279 /* [in] */ GUID *pCookie,
5280 /* [in] */ BOOL fIsAsync);
5282 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
5283 ICorProfilerCallback7 * This);
5285 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
5286 ICorProfilerCallback7 * This);
5288 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
5289 ICorProfilerCallback7 * This,
5290 /* [in] */ GUID *pCookie,
5291 /* [in] */ BOOL fIsAsync);
5293 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
5294 ICorProfilerCallback7 * This,
5295 /* [in] */ FunctionID functionId,
5296 /* [in] */ COR_PRF_TRANSITION_REASON reason);
5298 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
5299 ICorProfilerCallback7 * This,
5300 /* [in] */ FunctionID functionId,
5301 /* [in] */ COR_PRF_TRANSITION_REASON reason);
5303 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
5304 ICorProfilerCallback7 * This,
5305 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
5307 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
5308 ICorProfilerCallback7 * This);
5310 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
5311 ICorProfilerCallback7 * This);
5313 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
5314 ICorProfilerCallback7 * This);
5316 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
5317 ICorProfilerCallback7 * This);
5319 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
5320 ICorProfilerCallback7 * This,
5321 /* [in] */ ThreadID threadId);
5323 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
5324 ICorProfilerCallback7 * This,
5325 /* [in] */ ThreadID threadId);
5327 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
5328 ICorProfilerCallback7 * This,
5329 /* [in] */ ULONG cMovedObjectIDRanges,
5330 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
5331 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
5332 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
5334 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
5335 ICorProfilerCallback7 * This,
5336 /* [in] */ ObjectID objectId,
5337 /* [in] */ ClassID classId);
5339 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
5340 ICorProfilerCallback7 * This,
5341 /* [in] */ ULONG cClassCount,
5342 /* [size_is][in] */ ClassID classIds[ ],
5343 /* [size_is][in] */ ULONG cObjects[ ]);
5345 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
5346 ICorProfilerCallback7 * This,
5347 /* [in] */ ObjectID objectId,
5348 /* [in] */ ClassID classId,
5349 /* [in] */ ULONG cObjectRefs,
5350 /* [size_is][in] */ ObjectID objectRefIds[ ]);
5352 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
5353 ICorProfilerCallback7 * This,
5354 /* [in] */ ULONG cRootRefs,
5355 /* [size_is][in] */ ObjectID rootRefIds[ ]);
5357 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
5358 ICorProfilerCallback7 * This,
5359 /* [in] */ ObjectID thrownObjectId);
5361 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
5362 ICorProfilerCallback7 * This,
5363 /* [in] */ FunctionID functionId);
5365 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
5366 ICorProfilerCallback7 * This);
5368 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
5369 ICorProfilerCallback7 * This,
5370 /* [in] */ FunctionID functionId);
5372 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
5373 ICorProfilerCallback7 * This);
5375 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
5376 ICorProfilerCallback7 * This,
5377 /* [in] */ FunctionID functionId);
5379 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
5380 ICorProfilerCallback7 * This,
5381 /* [in] */ UINT_PTR __unused);
5383 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
5384 ICorProfilerCallback7 * This,
5385 /* [in] */ UINT_PTR __unused);
5387 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
5388 ICorProfilerCallback7 * This,
5389 /* [in] */ FunctionID functionId);
5391 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
5392 ICorProfilerCallback7 * This);
5394 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
5395 ICorProfilerCallback7 * This,
5396 /* [in] */ FunctionID functionId);
5398 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
5399 ICorProfilerCallback7 * This);
5401 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
5402 ICorProfilerCallback7 * This,
5403 /* [in] */ FunctionID functionId,
5404 /* [in] */ ObjectID objectId);
5406 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
5407 ICorProfilerCallback7 * This);
5409 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
5410 ICorProfilerCallback7 * This,
5411 /* [in] */ ClassID wrappedClassId,
5412 /* [in] */ REFGUID implementedIID,
5413 /* [in] */ void *pVTable,
5414 /* [in] */ ULONG cSlots);
5416 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
5417 ICorProfilerCallback7 * This,
5418 /* [in] */ ClassID wrappedClassId,
5419 /* [in] */ REFGUID implementedIID,
5420 /* [in] */ void *pVTable);
5422 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
5423 ICorProfilerCallback7 * This);
5425 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
5426 ICorProfilerCallback7 * This);
5428 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
5429 ICorProfilerCallback7 * This,
5430 /* [in] */ ThreadID threadId,
5431 /* [in] */ ULONG cchName,
5432 /* [annotation][in] */
5433 _In_reads_opt_(cchName) WCHAR name[ ]);
5435 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
5436 ICorProfilerCallback7 * This,
5437 /* [in] */ int cGenerations,
5438 /* [size_is][in] */ BOOL generationCollected[ ],
5439 /* [in] */ COR_PRF_GC_REASON reason);
5441 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
5442 ICorProfilerCallback7 * This,
5443 /* [in] */ ULONG cSurvivingObjectIDRanges,
5444 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
5445 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
5447 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
5448 ICorProfilerCallback7 * This);
5450 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
5451 ICorProfilerCallback7 * This,
5452 /* [in] */ DWORD finalizerFlags,
5453 /* [in] */ ObjectID objectID);
5455 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
5456 ICorProfilerCallback7 * This,
5457 /* [in] */ ULONG cRootRefs,
5458 /* [size_is][in] */ ObjectID rootRefIds[ ],
5459 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
5460 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
5461 /* [size_is][in] */ UINT_PTR rootIds[ ]);
5463 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
5464 ICorProfilerCallback7 * This,
5465 /* [in] */ GCHandleID handleId,
5466 /* [in] */ ObjectID initialObjectId);
5468 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
5469 ICorProfilerCallback7 * This,
5470 /* [in] */ GCHandleID handleId);
5472 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
5473 ICorProfilerCallback7 * This,
5474 /* [in] */ IUnknown *pCorProfilerInfoUnk,
5475 /* [in] */ void *pvClientData,
5476 /* [in] */ UINT cbClientData);
5478 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
5479 ICorProfilerCallback7 * This);
5481 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
5482 ICorProfilerCallback7 * This);
5484 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
5485 ICorProfilerCallback7 * This,
5486 /* [in] */ FunctionID functionId,
5487 /* [in] */ ReJITID rejitId,
5488 /* [in] */ BOOL fIsSafeToBlock);
5490 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
5491 ICorProfilerCallback7 * This,
5492 /* [in] */ ModuleID moduleId,
5493 /* [in] */ mdMethodDef methodId,
5494 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
5496 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
5497 ICorProfilerCallback7 * This,
5498 /* [in] */ FunctionID functionId,
5499 /* [in] */ ReJITID rejitId,
5500 /* [in] */ HRESULT hrStatus,
5501 /* [in] */ BOOL fIsSafeToBlock);
5503 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
5504 ICorProfilerCallback7 * This,
5505 /* [in] */ ModuleID moduleId,
5506 /* [in] */ mdMethodDef methodId,
5507 /* [in] */ FunctionID functionId,
5508 /* [in] */ HRESULT hrStatus);
5510 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
5511 ICorProfilerCallback7 * This,
5512 /* [in] */ ULONG cMovedObjectIDRanges,
5513 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
5514 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
5515 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
5517 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
5518 ICorProfilerCallback7 * This,
5519 /* [in] */ ULONG cSurvivingObjectIDRanges,
5520 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
5521 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
5523 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
5524 ICorProfilerCallback7 * This,
5525 /* [in] */ ULONG cRootRefs,
5526 /* [size_is][in] */ ObjectID keyRefIds[ ],
5527 /* [size_is][in] */ ObjectID valueRefIds[ ],
5528 /* [size_is][in] */ GCHandleID rootIds[ ]);
5530 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
5531 ICorProfilerCallback7 * This,
5532 /* [string][in] */ const WCHAR *wszAssemblyPath,
5533 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
5535 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
5536 ICorProfilerCallback7 * This,
5540 } ICorProfilerCallback7Vtbl;
5542 interface ICorProfilerCallback7
5544 CONST_VTBL struct ICorProfilerCallback7Vtbl *lpVtbl;
5552 #define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \
5553 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5555 #define ICorProfilerCallback7_AddRef(This) \
5556 ( (This)->lpVtbl -> AddRef(This) )
5558 #define ICorProfilerCallback7_Release(This) \
5559 ( (This)->lpVtbl -> Release(This) )
5562 #define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \
5563 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
5565 #define ICorProfilerCallback7_Shutdown(This) \
5566 ( (This)->lpVtbl -> Shutdown(This) )
5568 #define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \
5569 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
5571 #define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \
5572 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
5574 #define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \
5575 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
5577 #define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
5578 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
5580 #define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \
5581 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
5583 #define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \
5584 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
5586 #define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \
5587 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
5589 #define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
5590 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
5592 #define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \
5593 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
5595 #define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \
5596 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
5598 #define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \
5599 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
5601 #define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \
5602 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
5604 #define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
5605 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
5607 #define ICorProfilerCallback7_ClassLoadStarted(This,classId) \
5608 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
5610 #define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \
5611 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
5613 #define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \
5614 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
5616 #define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \
5617 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
5619 #define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \
5620 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
5622 #define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
5623 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
5625 #define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
5626 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
5628 #define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
5629 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
5631 #define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \
5632 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
5634 #define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \
5635 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
5637 #define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \
5638 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
5640 #define ICorProfilerCallback7_ThreadCreated(This,threadId) \
5641 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
5643 #define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \
5644 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
5646 #define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
5647 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
5649 #define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \
5650 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
5652 #define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
5653 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
5655 #define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
5656 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
5658 #define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \
5659 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
5661 #define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
5662 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
5664 #define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \
5665 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
5667 #define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \
5668 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
5670 #define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \
5671 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
5673 #define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \
5674 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
5676 #define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \
5677 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
5679 #define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \
5680 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
5682 #define ICorProfilerCallback7_RuntimeSuspendFinished(This) \
5683 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
5685 #define ICorProfilerCallback7_RuntimeSuspendAborted(This) \
5686 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
5688 #define ICorProfilerCallback7_RuntimeResumeStarted(This) \
5689 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
5691 #define ICorProfilerCallback7_RuntimeResumeFinished(This) \
5692 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
5694 #define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \
5695 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
5697 #define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \
5698 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
5700 #define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5701 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5703 #define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \
5704 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
5706 #define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
5707 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
5709 #define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
5710 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
5712 #define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \
5713 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
5715 #define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \
5716 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
5718 #define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \
5719 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
5721 #define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \
5722 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
5724 #define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \
5725 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
5727 #define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \
5728 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
5730 #define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \
5731 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
5733 #define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \
5734 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
5736 #define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \
5737 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
5739 #define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \
5740 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
5742 #define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \
5743 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
5745 #define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \
5746 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
5748 #define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \
5749 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
5751 #define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \
5752 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
5754 #define ICorProfilerCallback7_ExceptionCatcherLeave(This) \
5755 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
5757 #define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
5758 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
5760 #define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
5761 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
5763 #define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \
5764 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
5766 #define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \
5767 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
5770 #define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \
5771 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
5773 #define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
5774 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
5776 #define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5777 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5779 #define ICorProfilerCallback7_GarbageCollectionFinished(This) \
5780 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
5782 #define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
5783 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
5785 #define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
5786 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
5788 #define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \
5789 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
5791 #define ICorProfilerCallback7_HandleDestroyed(This,handleId) \
5792 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
5795 #define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
5796 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
5798 #define ICorProfilerCallback7_ProfilerAttachComplete(This) \
5799 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
5801 #define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \
5802 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
5805 #define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
5806 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
5808 #define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
5809 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
5811 #define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5812 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
5814 #define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
5815 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
5817 #define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5818 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5820 #define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5821 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5824 #define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
5825 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
5828 #define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
5829 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
5832 #define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \
5833 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
5835 #endif /* COBJMACROS */
5838 #endif /* C style interface */
5843 #endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */
5846 #ifndef __ICorProfilerCallback8_INTERFACE_DEFINED__
5847 #define __ICorProfilerCallback8_INTERFACE_DEFINED__
5849 /* interface ICorProfilerCallback8 */
5850 /* [local][unique][uuid][object] */
5853 EXTERN_C const IID IID_ICorProfilerCallback8;
5855 #if defined(__cplusplus) && !defined(CINTERFACE)
5857 MIDL_INTERFACE("5BED9B15-C079-4D47-BFE2-215A140C07E0")
5858 ICorProfilerCallback8 : public ICorProfilerCallback7
5861 virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationStarted(
5862 /* [in] */ FunctionID functionId,
5863 /* [in] */ BOOL fIsSafeToBlock,
5864 /* [in] */ LPCBYTE pILHeader,
5865 /* [in] */ ULONG cbILHeader) = 0;
5867 virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationFinished(
5868 /* [in] */ FunctionID functionId,
5869 /* [in] */ HRESULT hrStatus,
5870 /* [in] */ BOOL fIsSafeToBlock) = 0;
5875 #else /* C style interface */
5877 typedef struct ICorProfilerCallback8Vtbl
5881 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5882 ICorProfilerCallback8 * This,
5883 /* [in] */ REFIID riid,
5884 /* [annotation][iid_is][out] */
5885 _COM_Outptr_ void **ppvObject);
5887 ULONG ( STDMETHODCALLTYPE *AddRef )(
5888 ICorProfilerCallback8 * This);
5890 ULONG ( STDMETHODCALLTYPE *Release )(
5891 ICorProfilerCallback8 * This);
5893 HRESULT ( STDMETHODCALLTYPE *Initialize )(
5894 ICorProfilerCallback8 * This,
5895 /* [in] */ IUnknown *pICorProfilerInfoUnk);
5897 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
5898 ICorProfilerCallback8 * This);
5900 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
5901 ICorProfilerCallback8 * This,
5902 /* [in] */ AppDomainID appDomainId);
5904 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
5905 ICorProfilerCallback8 * This,
5906 /* [in] */ AppDomainID appDomainId,
5907 /* [in] */ HRESULT hrStatus);
5909 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
5910 ICorProfilerCallback8 * This,
5911 /* [in] */ AppDomainID appDomainId);
5913 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
5914 ICorProfilerCallback8 * This,
5915 /* [in] */ AppDomainID appDomainId,
5916 /* [in] */ HRESULT hrStatus);
5918 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
5919 ICorProfilerCallback8 * This,
5920 /* [in] */ AssemblyID assemblyId);
5922 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
5923 ICorProfilerCallback8 * This,
5924 /* [in] */ AssemblyID assemblyId,
5925 /* [in] */ HRESULT hrStatus);
5927 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
5928 ICorProfilerCallback8 * This,
5929 /* [in] */ AssemblyID assemblyId);
5931 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
5932 ICorProfilerCallback8 * This,
5933 /* [in] */ AssemblyID assemblyId,
5934 /* [in] */ HRESULT hrStatus);
5936 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
5937 ICorProfilerCallback8 * This,
5938 /* [in] */ ModuleID moduleId);
5940 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
5941 ICorProfilerCallback8 * This,
5942 /* [in] */ ModuleID moduleId,
5943 /* [in] */ HRESULT hrStatus);
5945 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
5946 ICorProfilerCallback8 * This,
5947 /* [in] */ ModuleID moduleId);
5949 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
5950 ICorProfilerCallback8 * This,
5951 /* [in] */ ModuleID moduleId,
5952 /* [in] */ HRESULT hrStatus);
5954 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
5955 ICorProfilerCallback8 * This,
5956 /* [in] */ ModuleID moduleId,
5957 /* [in] */ AssemblyID AssemblyId);
5959 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
5960 ICorProfilerCallback8 * This,
5961 /* [in] */ ClassID classId);
5963 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
5964 ICorProfilerCallback8 * This,
5965 /* [in] */ ClassID classId,
5966 /* [in] */ HRESULT hrStatus);
5968 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
5969 ICorProfilerCallback8 * This,
5970 /* [in] */ ClassID classId);
5972 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
5973 ICorProfilerCallback8 * This,
5974 /* [in] */ ClassID classId,
5975 /* [in] */ HRESULT hrStatus);
5977 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
5978 ICorProfilerCallback8 * This,
5979 /* [in] */ FunctionID functionId);
5981 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
5982 ICorProfilerCallback8 * This,
5983 /* [in] */ FunctionID functionId,
5984 /* [in] */ BOOL fIsSafeToBlock);
5986 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
5987 ICorProfilerCallback8 * This,
5988 /* [in] */ FunctionID functionId,
5989 /* [in] */ HRESULT hrStatus,
5990 /* [in] */ BOOL fIsSafeToBlock);
5992 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
5993 ICorProfilerCallback8 * This,
5994 /* [in] */ FunctionID functionId,
5995 /* [out] */ BOOL *pbUseCachedFunction);
5997 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
5998 ICorProfilerCallback8 * This,
5999 /* [in] */ FunctionID functionId,
6000 /* [in] */ COR_PRF_JIT_CACHE result);
6002 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
6003 ICorProfilerCallback8 * This,
6004 /* [in] */ FunctionID functionId);
6006 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
6007 ICorProfilerCallback8 * This,
6008 /* [in] */ FunctionID callerId,
6009 /* [in] */ FunctionID calleeId,
6010 /* [out] */ BOOL *pfShouldInline);
6012 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
6013 ICorProfilerCallback8 * This,
6014 /* [in] */ ThreadID threadId);
6016 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
6017 ICorProfilerCallback8 * This,
6018 /* [in] */ ThreadID threadId);
6020 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
6021 ICorProfilerCallback8 * This,
6022 /* [in] */ ThreadID managedThreadId,
6023 /* [in] */ DWORD osThreadId);
6025 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
6026 ICorProfilerCallback8 * This);
6028 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
6029 ICorProfilerCallback8 * This,
6030 /* [in] */ GUID *pCookie,
6031 /* [in] */ BOOL fIsAsync);
6033 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
6034 ICorProfilerCallback8 * This,
6035 /* [in] */ GUID *pCookie,
6036 /* [in] */ BOOL fIsAsync);
6038 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
6039 ICorProfilerCallback8 * This);
6041 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
6042 ICorProfilerCallback8 * This,
6043 /* [in] */ GUID *pCookie,
6044 /* [in] */ BOOL fIsAsync);
6046 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
6047 ICorProfilerCallback8 * This);
6049 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
6050 ICorProfilerCallback8 * This);
6052 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
6053 ICorProfilerCallback8 * This,
6054 /* [in] */ GUID *pCookie,
6055 /* [in] */ BOOL fIsAsync);
6057 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
6058 ICorProfilerCallback8 * This,
6059 /* [in] */ FunctionID functionId,
6060 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6062 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
6063 ICorProfilerCallback8 * This,
6064 /* [in] */ FunctionID functionId,
6065 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6067 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
6068 ICorProfilerCallback8 * This,
6069 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6071 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
6072 ICorProfilerCallback8 * This);
6074 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
6075 ICorProfilerCallback8 * This);
6077 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
6078 ICorProfilerCallback8 * This);
6080 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
6081 ICorProfilerCallback8 * This);
6083 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
6084 ICorProfilerCallback8 * This,
6085 /* [in] */ ThreadID threadId);
6087 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
6088 ICorProfilerCallback8 * This,
6089 /* [in] */ ThreadID threadId);
6091 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
6092 ICorProfilerCallback8 * This,
6093 /* [in] */ ULONG cMovedObjectIDRanges,
6094 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6095 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6096 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6098 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
6099 ICorProfilerCallback8 * This,
6100 /* [in] */ ObjectID objectId,
6101 /* [in] */ ClassID classId);
6103 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
6104 ICorProfilerCallback8 * This,
6105 /* [in] */ ULONG cClassCount,
6106 /* [size_is][in] */ ClassID classIds[ ],
6107 /* [size_is][in] */ ULONG cObjects[ ]);
6109 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
6110 ICorProfilerCallback8 * This,
6111 /* [in] */ ObjectID objectId,
6112 /* [in] */ ClassID classId,
6113 /* [in] */ ULONG cObjectRefs,
6114 /* [size_is][in] */ ObjectID objectRefIds[ ]);
6116 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
6117 ICorProfilerCallback8 * This,
6118 /* [in] */ ULONG cRootRefs,
6119 /* [size_is][in] */ ObjectID rootRefIds[ ]);
6121 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
6122 ICorProfilerCallback8 * This,
6123 /* [in] */ ObjectID thrownObjectId);
6125 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
6126 ICorProfilerCallback8 * This,
6127 /* [in] */ FunctionID functionId);
6129 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
6130 ICorProfilerCallback8 * This);
6132 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
6133 ICorProfilerCallback8 * This,
6134 /* [in] */ FunctionID functionId);
6136 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
6137 ICorProfilerCallback8 * This);
6139 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
6140 ICorProfilerCallback8 * This,
6141 /* [in] */ FunctionID functionId);
6143 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
6144 ICorProfilerCallback8 * This,
6145 /* [in] */ UINT_PTR __unused);
6147 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
6148 ICorProfilerCallback8 * This,
6149 /* [in] */ UINT_PTR __unused);
6151 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
6152 ICorProfilerCallback8 * This,
6153 /* [in] */ FunctionID functionId);
6155 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
6156 ICorProfilerCallback8 * This);
6158 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
6159 ICorProfilerCallback8 * This,
6160 /* [in] */ FunctionID functionId);
6162 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
6163 ICorProfilerCallback8 * This);
6165 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
6166 ICorProfilerCallback8 * This,
6167 /* [in] */ FunctionID functionId,
6168 /* [in] */ ObjectID objectId);
6170 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
6171 ICorProfilerCallback8 * This);
6173 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
6174 ICorProfilerCallback8 * This,
6175 /* [in] */ ClassID wrappedClassId,
6176 /* [in] */ REFGUID implementedIID,
6177 /* [in] */ void *pVTable,
6178 /* [in] */ ULONG cSlots);
6180 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
6181 ICorProfilerCallback8 * This,
6182 /* [in] */ ClassID wrappedClassId,
6183 /* [in] */ REFGUID implementedIID,
6184 /* [in] */ void *pVTable);
6186 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
6187 ICorProfilerCallback8 * This);
6189 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
6190 ICorProfilerCallback8 * This);
6192 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
6193 ICorProfilerCallback8 * This,
6194 /* [in] */ ThreadID threadId,
6195 /* [in] */ ULONG cchName,
6196 /* [annotation][in] */
6197 _In_reads_opt_(cchName) WCHAR name[ ]);
6199 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
6200 ICorProfilerCallback8 * This,
6201 /* [in] */ int cGenerations,
6202 /* [size_is][in] */ BOOL generationCollected[ ],
6203 /* [in] */ COR_PRF_GC_REASON reason);
6205 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
6206 ICorProfilerCallback8 * This,
6207 /* [in] */ ULONG cSurvivingObjectIDRanges,
6208 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
6209 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6211 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
6212 ICorProfilerCallback8 * This);
6214 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
6215 ICorProfilerCallback8 * This,
6216 /* [in] */ DWORD finalizerFlags,
6217 /* [in] */ ObjectID objectID);
6219 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
6220 ICorProfilerCallback8 * This,
6221 /* [in] */ ULONG cRootRefs,
6222 /* [size_is][in] */ ObjectID rootRefIds[ ],
6223 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
6224 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
6225 /* [size_is][in] */ UINT_PTR rootIds[ ]);
6227 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
6228 ICorProfilerCallback8 * This,
6229 /* [in] */ GCHandleID handleId,
6230 /* [in] */ ObjectID initialObjectId);
6232 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
6233 ICorProfilerCallback8 * This,
6234 /* [in] */ GCHandleID handleId);
6236 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
6237 ICorProfilerCallback8 * This,
6238 /* [in] */ IUnknown *pCorProfilerInfoUnk,
6239 /* [in] */ void *pvClientData,
6240 /* [in] */ UINT cbClientData);
6242 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
6243 ICorProfilerCallback8 * This);
6245 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
6246 ICorProfilerCallback8 * This);
6248 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
6249 ICorProfilerCallback8 * This,
6250 /* [in] */ FunctionID functionId,
6251 /* [in] */ ReJITID rejitId,
6252 /* [in] */ BOOL fIsSafeToBlock);
6254 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
6255 ICorProfilerCallback8 * This,
6256 /* [in] */ ModuleID moduleId,
6257 /* [in] */ mdMethodDef methodId,
6258 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
6260 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
6261 ICorProfilerCallback8 * This,
6262 /* [in] */ FunctionID functionId,
6263 /* [in] */ ReJITID rejitId,
6264 /* [in] */ HRESULT hrStatus,
6265 /* [in] */ BOOL fIsSafeToBlock);
6267 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
6268 ICorProfilerCallback8 * This,
6269 /* [in] */ ModuleID moduleId,
6270 /* [in] */ mdMethodDef methodId,
6271 /* [in] */ FunctionID functionId,
6272 /* [in] */ HRESULT hrStatus);
6274 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
6275 ICorProfilerCallback8 * This,
6276 /* [in] */ ULONG cMovedObjectIDRanges,
6277 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6278 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6279 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
6281 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
6282 ICorProfilerCallback8 * This,
6283 /* [in] */ ULONG cSurvivingObjectIDRanges,
6284 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
6285 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
6287 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
6288 ICorProfilerCallback8 * This,
6289 /* [in] */ ULONG cRootRefs,
6290 /* [size_is][in] */ ObjectID keyRefIds[ ],
6291 /* [size_is][in] */ ObjectID valueRefIds[ ],
6292 /* [size_is][in] */ GCHandleID rootIds[ ]);
6294 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
6295 ICorProfilerCallback8 * This,
6296 /* [string][in] */ const WCHAR *wszAssemblyPath,
6297 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
6299 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
6300 ICorProfilerCallback8 * This,
6303 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )(
6304 ICorProfilerCallback8 * This,
6305 /* [in] */ FunctionID functionId,
6306 /* [in] */ BOOL fIsSafeToBlock,
6307 /* [in] */ LPCBYTE pILHeader,
6308 /* [in] */ ULONG cbILHeader);
6310 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )(
6311 ICorProfilerCallback8 * This,
6312 /* [in] */ FunctionID functionId,
6313 /* [in] */ HRESULT hrStatus,
6314 /* [in] */ BOOL fIsSafeToBlock);
6317 } ICorProfilerCallback8Vtbl;
6319 interface ICorProfilerCallback8
6321 CONST_VTBL struct ICorProfilerCallback8Vtbl *lpVtbl;
6329 #define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \
6330 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6332 #define ICorProfilerCallback8_AddRef(This) \
6333 ( (This)->lpVtbl -> AddRef(This) )
6335 #define ICorProfilerCallback8_Release(This) \
6336 ( (This)->lpVtbl -> Release(This) )
6339 #define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \
6340 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
6342 #define ICorProfilerCallback8_Shutdown(This) \
6343 ( (This)->lpVtbl -> Shutdown(This) )
6345 #define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \
6346 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
6348 #define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \
6349 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
6351 #define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \
6352 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
6354 #define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
6355 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
6357 #define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \
6358 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
6360 #define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \
6361 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
6363 #define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \
6364 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
6366 #define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
6367 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
6369 #define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \
6370 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
6372 #define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \
6373 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
6375 #define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \
6376 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
6378 #define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \
6379 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
6381 #define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
6382 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
6384 #define ICorProfilerCallback8_ClassLoadStarted(This,classId) \
6385 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
6387 #define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \
6388 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
6390 #define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \
6391 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
6393 #define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \
6394 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
6396 #define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \
6397 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
6399 #define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
6400 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
6402 #define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
6403 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
6405 #define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
6406 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
6408 #define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \
6409 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
6411 #define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \
6412 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
6414 #define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \
6415 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
6417 #define ICorProfilerCallback8_ThreadCreated(This,threadId) \
6418 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
6420 #define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \
6421 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
6423 #define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
6424 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
6426 #define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \
6427 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
6429 #define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
6430 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
6432 #define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
6433 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
6435 #define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \
6436 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
6438 #define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
6439 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
6441 #define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \
6442 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
6444 #define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \
6445 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
6447 #define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \
6448 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
6450 #define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \
6451 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
6453 #define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \
6454 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
6456 #define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \
6457 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
6459 #define ICorProfilerCallback8_RuntimeSuspendFinished(This) \
6460 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
6462 #define ICorProfilerCallback8_RuntimeSuspendAborted(This) \
6463 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
6465 #define ICorProfilerCallback8_RuntimeResumeStarted(This) \
6466 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
6468 #define ICorProfilerCallback8_RuntimeResumeFinished(This) \
6469 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
6471 #define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \
6472 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
6474 #define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \
6475 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
6477 #define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
6478 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
6480 #define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \
6481 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
6483 #define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
6484 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
6486 #define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
6487 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
6489 #define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \
6490 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
6492 #define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \
6493 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
6495 #define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \
6496 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
6498 #define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \
6499 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
6501 #define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \
6502 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
6504 #define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \
6505 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
6507 #define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \
6508 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
6510 #define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \
6511 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
6513 #define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \
6514 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
6516 #define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \
6517 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
6519 #define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \
6520 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
6522 #define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \
6523 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
6525 #define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \
6526 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
6528 #define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \
6529 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
6531 #define ICorProfilerCallback8_ExceptionCatcherLeave(This) \
6532 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
6534 #define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
6535 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
6537 #define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
6538 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
6540 #define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \
6541 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
6543 #define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \
6544 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
6547 #define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \
6548 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
6550 #define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
6551 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
6553 #define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
6554 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
6556 #define ICorProfilerCallback8_GarbageCollectionFinished(This) \
6557 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
6559 #define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
6560 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
6562 #define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
6563 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
6565 #define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \
6566 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
6568 #define ICorProfilerCallback8_HandleDestroyed(This,handleId) \
6569 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
6572 #define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
6573 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
6575 #define ICorProfilerCallback8_ProfilerAttachComplete(This) \
6576 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
6578 #define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \
6579 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
6582 #define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
6583 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
6585 #define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
6586 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
6588 #define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
6589 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
6591 #define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
6592 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
6594 #define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
6595 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
6597 #define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
6598 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
6601 #define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
6602 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
6605 #define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
6606 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
6609 #define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \
6610 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
6613 #define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \
6614 ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) )
6616 #define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
6617 ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
6619 #endif /* COBJMACROS */
6622 #endif /* C style interface */
6627 #endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */
6630 #ifndef __ICorProfilerCallback9_INTERFACE_DEFINED__
6631 #define __ICorProfilerCallback9_INTERFACE_DEFINED__
6633 /* interface ICorProfilerCallback9 */
6634 /* [local][unique][uuid][object] */
6637 EXTERN_C const IID IID_ICorProfilerCallback9;
6639 #if defined(__cplusplus) && !defined(CINTERFACE)
6641 MIDL_INTERFACE("27583EC3-C8F5-482F-8052-194B8CE4705A")
6642 ICorProfilerCallback9 : public ICorProfilerCallback8
6645 virtual HRESULT STDMETHODCALLTYPE DynamicMethodUnloaded(
6646 /* [in] */ FunctionID functionId) = 0;
6651 #else /* C style interface */
6653 typedef struct ICorProfilerCallback9Vtbl
6657 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6658 ICorProfilerCallback9 * This,
6659 /* [in] */ REFIID riid,
6660 /* [annotation][iid_is][out] */
6661 _COM_Outptr_ void **ppvObject);
6663 ULONG ( STDMETHODCALLTYPE *AddRef )(
6664 ICorProfilerCallback9 * This);
6666 ULONG ( STDMETHODCALLTYPE *Release )(
6667 ICorProfilerCallback9 * This);
6669 HRESULT ( STDMETHODCALLTYPE *Initialize )(
6670 ICorProfilerCallback9 * This,
6671 /* [in] */ IUnknown *pICorProfilerInfoUnk);
6673 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
6674 ICorProfilerCallback9 * This);
6676 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
6677 ICorProfilerCallback9 * This,
6678 /* [in] */ AppDomainID appDomainId);
6680 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
6681 ICorProfilerCallback9 * This,
6682 /* [in] */ AppDomainID appDomainId,
6683 /* [in] */ HRESULT hrStatus);
6685 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
6686 ICorProfilerCallback9 * This,
6687 /* [in] */ AppDomainID appDomainId);
6689 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
6690 ICorProfilerCallback9 * This,
6691 /* [in] */ AppDomainID appDomainId,
6692 /* [in] */ HRESULT hrStatus);
6694 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
6695 ICorProfilerCallback9 * This,
6696 /* [in] */ AssemblyID assemblyId);
6698 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
6699 ICorProfilerCallback9 * This,
6700 /* [in] */ AssemblyID assemblyId,
6701 /* [in] */ HRESULT hrStatus);
6703 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
6704 ICorProfilerCallback9 * This,
6705 /* [in] */ AssemblyID assemblyId);
6707 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
6708 ICorProfilerCallback9 * This,
6709 /* [in] */ AssemblyID assemblyId,
6710 /* [in] */ HRESULT hrStatus);
6712 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
6713 ICorProfilerCallback9 * This,
6714 /* [in] */ ModuleID moduleId);
6716 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
6717 ICorProfilerCallback9 * This,
6718 /* [in] */ ModuleID moduleId,
6719 /* [in] */ HRESULT hrStatus);
6721 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
6722 ICorProfilerCallback9 * This,
6723 /* [in] */ ModuleID moduleId);
6725 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
6726 ICorProfilerCallback9 * This,
6727 /* [in] */ ModuleID moduleId,
6728 /* [in] */ HRESULT hrStatus);
6730 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
6731 ICorProfilerCallback9 * This,
6732 /* [in] */ ModuleID moduleId,
6733 /* [in] */ AssemblyID AssemblyId);
6735 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
6736 ICorProfilerCallback9 * This,
6737 /* [in] */ ClassID classId);
6739 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
6740 ICorProfilerCallback9 * This,
6741 /* [in] */ ClassID classId,
6742 /* [in] */ HRESULT hrStatus);
6744 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
6745 ICorProfilerCallback9 * This,
6746 /* [in] */ ClassID classId);
6748 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
6749 ICorProfilerCallback9 * This,
6750 /* [in] */ ClassID classId,
6751 /* [in] */ HRESULT hrStatus);
6753 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
6754 ICorProfilerCallback9 * This,
6755 /* [in] */ FunctionID functionId);
6757 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
6758 ICorProfilerCallback9 * This,
6759 /* [in] */ FunctionID functionId,
6760 /* [in] */ BOOL fIsSafeToBlock);
6762 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
6763 ICorProfilerCallback9 * This,
6764 /* [in] */ FunctionID functionId,
6765 /* [in] */ HRESULT hrStatus,
6766 /* [in] */ BOOL fIsSafeToBlock);
6768 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
6769 ICorProfilerCallback9 * This,
6770 /* [in] */ FunctionID functionId,
6771 /* [out] */ BOOL *pbUseCachedFunction);
6773 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
6774 ICorProfilerCallback9 * This,
6775 /* [in] */ FunctionID functionId,
6776 /* [in] */ COR_PRF_JIT_CACHE result);
6778 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
6779 ICorProfilerCallback9 * This,
6780 /* [in] */ FunctionID functionId);
6782 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
6783 ICorProfilerCallback9 * This,
6784 /* [in] */ FunctionID callerId,
6785 /* [in] */ FunctionID calleeId,
6786 /* [out] */ BOOL *pfShouldInline);
6788 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
6789 ICorProfilerCallback9 * This,
6790 /* [in] */ ThreadID threadId);
6792 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
6793 ICorProfilerCallback9 * This,
6794 /* [in] */ ThreadID threadId);
6796 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
6797 ICorProfilerCallback9 * This,
6798 /* [in] */ ThreadID managedThreadId,
6799 /* [in] */ DWORD osThreadId);
6801 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
6802 ICorProfilerCallback9 * This);
6804 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
6805 ICorProfilerCallback9 * This,
6806 /* [in] */ GUID *pCookie,
6807 /* [in] */ BOOL fIsAsync);
6809 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
6810 ICorProfilerCallback9 * This,
6811 /* [in] */ GUID *pCookie,
6812 /* [in] */ BOOL fIsAsync);
6814 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
6815 ICorProfilerCallback9 * This);
6817 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
6818 ICorProfilerCallback9 * This,
6819 /* [in] */ GUID *pCookie,
6820 /* [in] */ BOOL fIsAsync);
6822 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
6823 ICorProfilerCallback9 * This);
6825 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
6826 ICorProfilerCallback9 * This);
6828 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
6829 ICorProfilerCallback9 * This,
6830 /* [in] */ GUID *pCookie,
6831 /* [in] */ BOOL fIsAsync);
6833 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
6834 ICorProfilerCallback9 * This,
6835 /* [in] */ FunctionID functionId,
6836 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6838 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
6839 ICorProfilerCallback9 * This,
6840 /* [in] */ FunctionID functionId,
6841 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6843 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
6844 ICorProfilerCallback9 * This,
6845 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6847 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
6848 ICorProfilerCallback9 * This);
6850 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
6851 ICorProfilerCallback9 * This);
6853 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
6854 ICorProfilerCallback9 * This);
6856 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
6857 ICorProfilerCallback9 * This);
6859 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
6860 ICorProfilerCallback9 * This,
6861 /* [in] */ ThreadID threadId);
6863 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
6864 ICorProfilerCallback9 * This,
6865 /* [in] */ ThreadID threadId);
6867 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
6868 ICorProfilerCallback9 * This,
6869 /* [in] */ ULONG cMovedObjectIDRanges,
6870 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6871 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6872 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6874 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
6875 ICorProfilerCallback9 * This,
6876 /* [in] */ ObjectID objectId,
6877 /* [in] */ ClassID classId);
6879 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
6880 ICorProfilerCallback9 * This,
6881 /* [in] */ ULONG cClassCount,
6882 /* [size_is][in] */ ClassID classIds[ ],
6883 /* [size_is][in] */ ULONG cObjects[ ]);
6885 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
6886 ICorProfilerCallback9 * This,
6887 /* [in] */ ObjectID objectId,
6888 /* [in] */ ClassID classId,
6889 /* [in] */ ULONG cObjectRefs,
6890 /* [size_is][in] */ ObjectID objectRefIds[ ]);
6892 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
6893 ICorProfilerCallback9 * This,
6894 /* [in] */ ULONG cRootRefs,
6895 /* [size_is][in] */ ObjectID rootRefIds[ ]);
6897 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
6898 ICorProfilerCallback9 * This,
6899 /* [in] */ ObjectID thrownObjectId);
6901 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
6902 ICorProfilerCallback9 * This,
6903 /* [in] */ FunctionID functionId);
6905 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
6906 ICorProfilerCallback9 * This);
6908 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
6909 ICorProfilerCallback9 * This,
6910 /* [in] */ FunctionID functionId);
6912 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
6913 ICorProfilerCallback9 * This);
6915 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
6916 ICorProfilerCallback9 * This,
6917 /* [in] */ FunctionID functionId);
6919 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
6920 ICorProfilerCallback9 * This,
6921 /* [in] */ UINT_PTR __unused);
6923 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
6924 ICorProfilerCallback9 * This,
6925 /* [in] */ UINT_PTR __unused);
6927 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
6928 ICorProfilerCallback9 * This,
6929 /* [in] */ FunctionID functionId);
6931 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
6932 ICorProfilerCallback9 * This);
6934 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
6935 ICorProfilerCallback9 * This,
6936 /* [in] */ FunctionID functionId);
6938 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
6939 ICorProfilerCallback9 * This);
6941 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
6942 ICorProfilerCallback9 * This,
6943 /* [in] */ FunctionID functionId,
6944 /* [in] */ ObjectID objectId);
6946 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
6947 ICorProfilerCallback9 * This);
6949 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
6950 ICorProfilerCallback9 * This,
6951 /* [in] */ ClassID wrappedClassId,
6952 /* [in] */ REFGUID implementedIID,
6953 /* [in] */ void *pVTable,
6954 /* [in] */ ULONG cSlots);
6956 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
6957 ICorProfilerCallback9 * This,
6958 /* [in] */ ClassID wrappedClassId,
6959 /* [in] */ REFGUID implementedIID,
6960 /* [in] */ void *pVTable);
6962 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
6963 ICorProfilerCallback9 * This);
6965 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
6966 ICorProfilerCallback9 * This);
6968 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
6969 ICorProfilerCallback9 * This,
6970 /* [in] */ ThreadID threadId,
6971 /* [in] */ ULONG cchName,
6972 /* [annotation][in] */
6973 _In_reads_opt_(cchName) WCHAR name[ ]);
6975 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
6976 ICorProfilerCallback9 * This,
6977 /* [in] */ int cGenerations,
6978 /* [size_is][in] */ BOOL generationCollected[ ],
6979 /* [in] */ COR_PRF_GC_REASON reason);
6981 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
6982 ICorProfilerCallback9 * This,
6983 /* [in] */ ULONG cSurvivingObjectIDRanges,
6984 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
6985 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6987 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
6988 ICorProfilerCallback9 * This);
6990 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
6991 ICorProfilerCallback9 * This,
6992 /* [in] */ DWORD finalizerFlags,
6993 /* [in] */ ObjectID objectID);
6995 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
6996 ICorProfilerCallback9 * This,
6997 /* [in] */ ULONG cRootRefs,
6998 /* [size_is][in] */ ObjectID rootRefIds[ ],
6999 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
7000 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
7001 /* [size_is][in] */ UINT_PTR rootIds[ ]);
7003 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
7004 ICorProfilerCallback9 * This,
7005 /* [in] */ GCHandleID handleId,
7006 /* [in] */ ObjectID initialObjectId);
7008 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
7009 ICorProfilerCallback9 * This,
7010 /* [in] */ GCHandleID handleId);
7012 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
7013 ICorProfilerCallback9 * This,
7014 /* [in] */ IUnknown *pCorProfilerInfoUnk,
7015 /* [in] */ void *pvClientData,
7016 /* [in] */ UINT cbClientData);
7018 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
7019 ICorProfilerCallback9 * This);
7021 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
7022 ICorProfilerCallback9 * This);
7024 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
7025 ICorProfilerCallback9 * This,
7026 /* [in] */ FunctionID functionId,
7027 /* [in] */ ReJITID rejitId,
7028 /* [in] */ BOOL fIsSafeToBlock);
7030 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
7031 ICorProfilerCallback9 * This,
7032 /* [in] */ ModuleID moduleId,
7033 /* [in] */ mdMethodDef methodId,
7034 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
7036 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
7037 ICorProfilerCallback9 * This,
7038 /* [in] */ FunctionID functionId,
7039 /* [in] */ ReJITID rejitId,
7040 /* [in] */ HRESULT hrStatus,
7041 /* [in] */ BOOL fIsSafeToBlock);
7043 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
7044 ICorProfilerCallback9 * This,
7045 /* [in] */ ModuleID moduleId,
7046 /* [in] */ mdMethodDef methodId,
7047 /* [in] */ FunctionID functionId,
7048 /* [in] */ HRESULT hrStatus);
7050 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
7051 ICorProfilerCallback9 * This,
7052 /* [in] */ ULONG cMovedObjectIDRanges,
7053 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
7054 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
7055 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
7057 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
7058 ICorProfilerCallback9 * This,
7059 /* [in] */ ULONG cSurvivingObjectIDRanges,
7060 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
7061 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
7063 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
7064 ICorProfilerCallback9 * This,
7065 /* [in] */ ULONG cRootRefs,
7066 /* [size_is][in] */ ObjectID keyRefIds[ ],
7067 /* [size_is][in] */ ObjectID valueRefIds[ ],
7068 /* [size_is][in] */ GCHandleID rootIds[ ]);
7070 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
7071 ICorProfilerCallback9 * This,
7072 /* [string][in] */ const WCHAR *wszAssemblyPath,
7073 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
7075 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
7076 ICorProfilerCallback9 * This,
7079 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )(
7080 ICorProfilerCallback9 * This,
7081 /* [in] */ FunctionID functionId,
7082 /* [in] */ BOOL fIsSafeToBlock,
7083 /* [in] */ LPCBYTE pILHeader,
7084 /* [in] */ ULONG cbILHeader);
7086 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )(
7087 ICorProfilerCallback9 * This,
7088 /* [in] */ FunctionID functionId,
7089 /* [in] */ HRESULT hrStatus,
7090 /* [in] */ BOOL fIsSafeToBlock);
7092 HRESULT ( STDMETHODCALLTYPE *DynamicMethodUnloaded )(
7093 ICorProfilerCallback9 * This,
7094 /* [in] */ FunctionID functionId);
7097 } ICorProfilerCallback9Vtbl;
7099 interface ICorProfilerCallback9
7101 CONST_VTBL struct ICorProfilerCallback9Vtbl *lpVtbl;
7109 #define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \
7110 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7112 #define ICorProfilerCallback9_AddRef(This) \
7113 ( (This)->lpVtbl -> AddRef(This) )
7115 #define ICorProfilerCallback9_Release(This) \
7116 ( (This)->lpVtbl -> Release(This) )
7119 #define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \
7120 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
7122 #define ICorProfilerCallback9_Shutdown(This) \
7123 ( (This)->lpVtbl -> Shutdown(This) )
7125 #define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \
7126 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
7128 #define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \
7129 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
7131 #define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \
7132 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
7134 #define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
7135 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
7137 #define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \
7138 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
7140 #define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \
7141 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
7143 #define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \
7144 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
7146 #define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
7147 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
7149 #define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \
7150 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
7152 #define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \
7153 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
7155 #define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \
7156 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
7158 #define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \
7159 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
7161 #define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
7162 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
7164 #define ICorProfilerCallback9_ClassLoadStarted(This,classId) \
7165 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
7167 #define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \
7168 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
7170 #define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \
7171 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
7173 #define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \
7174 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
7176 #define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \
7177 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
7179 #define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
7180 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
7182 #define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
7183 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
7185 #define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
7186 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
7188 #define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \
7189 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
7191 #define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \
7192 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
7194 #define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \
7195 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
7197 #define ICorProfilerCallback9_ThreadCreated(This,threadId) \
7198 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
7200 #define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \
7201 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
7203 #define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
7204 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
7206 #define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \
7207 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
7209 #define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
7210 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
7212 #define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
7213 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
7215 #define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \
7216 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
7218 #define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
7219 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
7221 #define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \
7222 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
7224 #define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \
7225 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
7227 #define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \
7228 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
7230 #define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \
7231 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
7233 #define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \
7234 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
7236 #define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \
7237 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
7239 #define ICorProfilerCallback9_RuntimeSuspendFinished(This) \
7240 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
7242 #define ICorProfilerCallback9_RuntimeSuspendAborted(This) \
7243 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
7245 #define ICorProfilerCallback9_RuntimeResumeStarted(This) \
7246 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
7248 #define ICorProfilerCallback9_RuntimeResumeFinished(This) \
7249 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
7251 #define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \
7252 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
7254 #define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \
7255 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
7257 #define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
7258 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
7260 #define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \
7261 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
7263 #define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
7264 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
7266 #define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
7267 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
7269 #define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \
7270 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
7272 #define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \
7273 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
7275 #define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \
7276 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
7278 #define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \
7279 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
7281 #define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \
7282 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
7284 #define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \
7285 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
7287 #define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \
7288 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
7290 #define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \
7291 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
7293 #define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \
7294 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
7296 #define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \
7297 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
7299 #define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \
7300 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
7302 #define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \
7303 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
7305 #define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \
7306 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
7308 #define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \
7309 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
7311 #define ICorProfilerCallback9_ExceptionCatcherLeave(This) \
7312 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
7314 #define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
7315 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
7317 #define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
7318 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
7320 #define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \
7321 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
7323 #define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \
7324 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
7327 #define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \
7328 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
7330 #define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
7331 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
7333 #define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
7334 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
7336 #define ICorProfilerCallback9_GarbageCollectionFinished(This) \
7337 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
7339 #define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
7340 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
7342 #define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
7343 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
7345 #define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \
7346 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
7348 #define ICorProfilerCallback9_HandleDestroyed(This,handleId) \
7349 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
7352 #define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
7353 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
7355 #define ICorProfilerCallback9_ProfilerAttachComplete(This) \
7356 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
7358 #define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \
7359 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
7362 #define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
7363 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
7365 #define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
7366 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
7368 #define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
7369 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
7371 #define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
7372 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
7374 #define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
7375 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
7377 #define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
7378 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
7381 #define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
7382 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
7385 #define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
7386 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
7389 #define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \
7390 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
7393 #define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \
7394 ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) )
7396 #define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
7397 ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
7400 #define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \
7401 ( (This)->lpVtbl -> DynamicMethodUnloaded(This,functionId) )
7403 #endif /* COBJMACROS */
7406 #endif /* C style interface */
7411 #endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */
7414 /* interface __MIDL_itf_corprof_0000_0009 */
7417 typedef /* [public] */
7418 enum __MIDL___MIDL_itf_corprof_0000_0009_0001
7420 COR_PRF_CODEGEN_DISABLE_INLINING = 0x1,
7421 COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2
7422 } COR_PRF_CODEGEN_FLAGS;
7426 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_c_ifspec;
7427 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_s_ifspec;
7429 #ifndef __ICorProfilerInfo_INTERFACE_DEFINED__
7430 #define __ICorProfilerInfo_INTERFACE_DEFINED__
7432 /* interface ICorProfilerInfo */
7433 /* [local][unique][uuid][object] */
7436 EXTERN_C const IID IID_ICorProfilerInfo;
7438 #if defined(__cplusplus) && !defined(CINTERFACE)
7440 MIDL_INTERFACE("28B5557D-3F3F-48b4-90B2-5F9EEA2F6C48")
7441 ICorProfilerInfo : public IUnknown
7444 virtual HRESULT STDMETHODCALLTYPE GetClassFromObject(
7445 /* [in] */ ObjectID objectId,
7446 /* [out] */ ClassID *pClassId) = 0;
7448 virtual HRESULT STDMETHODCALLTYPE GetClassFromToken(
7449 /* [in] */ ModuleID moduleId,
7450 /* [in] */ mdTypeDef typeDef,
7451 /* [out] */ ClassID *pClassId) = 0;
7453 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo(
7454 /* [in] */ FunctionID functionId,
7455 /* [out] */ LPCBYTE *pStart,
7456 /* [out] */ ULONG *pcSize) = 0;
7458 virtual HRESULT STDMETHODCALLTYPE GetEventMask(
7459 /* [out] */ DWORD *pdwEvents) = 0;
7461 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP(
7462 /* [in] */ LPCBYTE ip,
7463 /* [out] */ FunctionID *pFunctionId) = 0;
7465 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken(
7466 /* [in] */ ModuleID moduleId,
7467 /* [in] */ mdToken token,
7468 /* [out] */ FunctionID *pFunctionId) = 0;
7470 virtual HRESULT STDMETHODCALLTYPE GetHandleFromThread(
7471 /* [in] */ ThreadID threadId,
7472 /* [out] */ HANDLE *phThread) = 0;
7474 virtual HRESULT STDMETHODCALLTYPE GetObjectSize(
7475 /* [in] */ ObjectID objectId,
7476 /* [out] */ ULONG *pcSize) = 0;
7478 virtual HRESULT STDMETHODCALLTYPE IsArrayClass(
7479 /* [in] */ ClassID classId,
7480 /* [out] */ CorElementType *pBaseElemType,
7481 /* [out] */ ClassID *pBaseClassId,
7482 /* [out] */ ULONG *pcRank) = 0;
7484 virtual HRESULT STDMETHODCALLTYPE GetThreadInfo(
7485 /* [in] */ ThreadID threadId,
7486 /* [out] */ DWORD *pdwWin32ThreadId) = 0;
7488 virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadID(
7489 /* [out] */ ThreadID *pThreadId) = 0;
7491 virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo(
7492 /* [in] */ ClassID classId,
7493 /* [out] */ ModuleID *pModuleId,
7494 /* [out] */ mdTypeDef *pTypeDefToken) = 0;
7496 virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo(
7497 /* [in] */ FunctionID functionId,
7498 /* [out] */ ClassID *pClassId,
7499 /* [out] */ ModuleID *pModuleId,
7500 /* [out] */ mdToken *pToken) = 0;
7502 virtual HRESULT STDMETHODCALLTYPE SetEventMask(
7503 /* [in] */ DWORD dwEvents) = 0;
7505 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks(
7506 /* [in] */ FunctionEnter *pFuncEnter,
7507 /* [in] */ FunctionLeave *pFuncLeave,
7508 /* [in] */ FunctionTailcall *pFuncTailcall) = 0;
7510 virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper(
7511 /* [in] */ FunctionIDMapper *pFunc) = 0;
7513 virtual HRESULT STDMETHODCALLTYPE GetTokenAndMetaDataFromFunction(
7514 /* [in] */ FunctionID functionId,
7515 /* [in] */ REFIID riid,
7516 /* [out] */ IUnknown **ppImport,
7517 /* [out] */ mdToken *pToken) = 0;
7519 virtual HRESULT STDMETHODCALLTYPE GetModuleInfo(
7520 /* [in] */ ModuleID moduleId,
7521 /* [out] */ LPCBYTE *ppBaseLoadAddress,
7522 /* [in] */ ULONG cchName,
7523 /* [out] */ ULONG *pcchName,
7524 /* [annotation][out] */
7525 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7526 /* [out] */ AssemblyID *pAssemblyId) = 0;
7528 virtual HRESULT STDMETHODCALLTYPE GetModuleMetaData(
7529 /* [in] */ ModuleID moduleId,
7530 /* [in] */ DWORD dwOpenFlags,
7531 /* [in] */ REFIID riid,
7532 /* [out] */ IUnknown **ppOut) = 0;
7534 virtual HRESULT STDMETHODCALLTYPE GetILFunctionBody(
7535 /* [in] */ ModuleID moduleId,
7536 /* [in] */ mdMethodDef methodId,
7537 /* [out] */ LPCBYTE *ppMethodHeader,
7538 /* [out] */ ULONG *pcbMethodSize) = 0;
7540 virtual HRESULT STDMETHODCALLTYPE GetILFunctionBodyAllocator(
7541 /* [in] */ ModuleID moduleId,
7542 /* [out] */ IMethodMalloc **ppMalloc) = 0;
7544 virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody(
7545 /* [in] */ ModuleID moduleId,
7546 /* [in] */ mdMethodDef methodid,
7547 /* [in] */ LPCBYTE pbNewILMethodHeader) = 0;
7549 virtual HRESULT STDMETHODCALLTYPE GetAppDomainInfo(
7550 /* [in] */ AppDomainID appDomainId,
7551 /* [in] */ ULONG cchName,
7552 /* [out] */ ULONG *pcchName,
7553 /* [annotation][out] */
7554 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7555 /* [out] */ ProcessID *pProcessId) = 0;
7557 virtual HRESULT STDMETHODCALLTYPE GetAssemblyInfo(
7558 /* [in] */ AssemblyID assemblyId,
7559 /* [in] */ ULONG cchName,
7560 /* [out] */ ULONG *pcchName,
7561 /* [annotation][out] */
7562 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7563 /* [out] */ AppDomainID *pAppDomainId,
7564 /* [out] */ ModuleID *pModuleId) = 0;
7566 virtual HRESULT STDMETHODCALLTYPE SetFunctionReJIT(
7567 /* [in] */ FunctionID functionId) = 0;
7569 virtual HRESULT STDMETHODCALLTYPE ForceGC( void) = 0;
7571 virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap(
7572 /* [in] */ FunctionID functionId,
7573 /* [in] */ BOOL fStartJit,
7574 /* [in] */ ULONG cILMapEntries,
7575 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]) = 0;
7577 virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionInterface(
7578 /* [out] */ IUnknown **ppicd) = 0;
7580 virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionIThisThread(
7581 /* [out] */ IUnknown **ppicd) = 0;
7583 virtual HRESULT STDMETHODCALLTYPE GetThreadContext(
7584 /* [in] */ ThreadID threadId,
7585 /* [out] */ ContextID *pContextId) = 0;
7587 virtual HRESULT STDMETHODCALLTYPE BeginInprocDebugging(
7588 /* [in] */ BOOL fThisThreadOnly,
7589 /* [out] */ DWORD *pdwProfilerContext) = 0;
7591 virtual HRESULT STDMETHODCALLTYPE EndInprocDebugging(
7592 /* [in] */ DWORD dwProfilerContext) = 0;
7594 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping(
7595 /* [in] */ FunctionID functionId,
7596 /* [in] */ ULONG32 cMap,
7597 /* [out] */ ULONG32 *pcMap,
7598 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
7603 #else /* C style interface */
7605 typedef struct ICorProfilerInfoVtbl
7609 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7610 ICorProfilerInfo * This,
7611 /* [in] */ REFIID riid,
7612 /* [annotation][iid_is][out] */
7613 _COM_Outptr_ void **ppvObject);
7615 ULONG ( STDMETHODCALLTYPE *AddRef )(
7616 ICorProfilerInfo * This);
7618 ULONG ( STDMETHODCALLTYPE *Release )(
7619 ICorProfilerInfo * This);
7621 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
7622 ICorProfilerInfo * This,
7623 /* [in] */ ObjectID objectId,
7624 /* [out] */ ClassID *pClassId);
7626 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
7627 ICorProfilerInfo * This,
7628 /* [in] */ ModuleID moduleId,
7629 /* [in] */ mdTypeDef typeDef,
7630 /* [out] */ ClassID *pClassId);
7632 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
7633 ICorProfilerInfo * This,
7634 /* [in] */ FunctionID functionId,
7635 /* [out] */ LPCBYTE *pStart,
7636 /* [out] */ ULONG *pcSize);
7638 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
7639 ICorProfilerInfo * This,
7640 /* [out] */ DWORD *pdwEvents);
7642 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
7643 ICorProfilerInfo * This,
7644 /* [in] */ LPCBYTE ip,
7645 /* [out] */ FunctionID *pFunctionId);
7647 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
7648 ICorProfilerInfo * This,
7649 /* [in] */ ModuleID moduleId,
7650 /* [in] */ mdToken token,
7651 /* [out] */ FunctionID *pFunctionId);
7653 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
7654 ICorProfilerInfo * This,
7655 /* [in] */ ThreadID threadId,
7656 /* [out] */ HANDLE *phThread);
7658 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
7659 ICorProfilerInfo * This,
7660 /* [in] */ ObjectID objectId,
7661 /* [out] */ ULONG *pcSize);
7663 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
7664 ICorProfilerInfo * This,
7665 /* [in] */ ClassID classId,
7666 /* [out] */ CorElementType *pBaseElemType,
7667 /* [out] */ ClassID *pBaseClassId,
7668 /* [out] */ ULONG *pcRank);
7670 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
7671 ICorProfilerInfo * This,
7672 /* [in] */ ThreadID threadId,
7673 /* [out] */ DWORD *pdwWin32ThreadId);
7675 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
7676 ICorProfilerInfo * This,
7677 /* [out] */ ThreadID *pThreadId);
7679 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
7680 ICorProfilerInfo * This,
7681 /* [in] */ ClassID classId,
7682 /* [out] */ ModuleID *pModuleId,
7683 /* [out] */ mdTypeDef *pTypeDefToken);
7685 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
7686 ICorProfilerInfo * This,
7687 /* [in] */ FunctionID functionId,
7688 /* [out] */ ClassID *pClassId,
7689 /* [out] */ ModuleID *pModuleId,
7690 /* [out] */ mdToken *pToken);
7692 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
7693 ICorProfilerInfo * This,
7694 /* [in] */ DWORD dwEvents);
7696 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
7697 ICorProfilerInfo * This,
7698 /* [in] */ FunctionEnter *pFuncEnter,
7699 /* [in] */ FunctionLeave *pFuncLeave,
7700 /* [in] */ FunctionTailcall *pFuncTailcall);
7702 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
7703 ICorProfilerInfo * This,
7704 /* [in] */ FunctionIDMapper *pFunc);
7706 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
7707 ICorProfilerInfo * This,
7708 /* [in] */ FunctionID functionId,
7709 /* [in] */ REFIID riid,
7710 /* [out] */ IUnknown **ppImport,
7711 /* [out] */ mdToken *pToken);
7713 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
7714 ICorProfilerInfo * This,
7715 /* [in] */ ModuleID moduleId,
7716 /* [out] */ LPCBYTE *ppBaseLoadAddress,
7717 /* [in] */ ULONG cchName,
7718 /* [out] */ ULONG *pcchName,
7719 /* [annotation][out] */
7720 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7721 /* [out] */ AssemblyID *pAssemblyId);
7723 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
7724 ICorProfilerInfo * This,
7725 /* [in] */ ModuleID moduleId,
7726 /* [in] */ DWORD dwOpenFlags,
7727 /* [in] */ REFIID riid,
7728 /* [out] */ IUnknown **ppOut);
7730 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
7731 ICorProfilerInfo * This,
7732 /* [in] */ ModuleID moduleId,
7733 /* [in] */ mdMethodDef methodId,
7734 /* [out] */ LPCBYTE *ppMethodHeader,
7735 /* [out] */ ULONG *pcbMethodSize);
7737 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
7738 ICorProfilerInfo * This,
7739 /* [in] */ ModuleID moduleId,
7740 /* [out] */ IMethodMalloc **ppMalloc);
7742 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
7743 ICorProfilerInfo * This,
7744 /* [in] */ ModuleID moduleId,
7745 /* [in] */ mdMethodDef methodid,
7746 /* [in] */ LPCBYTE pbNewILMethodHeader);
7748 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
7749 ICorProfilerInfo * This,
7750 /* [in] */ AppDomainID appDomainId,
7751 /* [in] */ ULONG cchName,
7752 /* [out] */ ULONG *pcchName,
7753 /* [annotation][out] */
7754 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7755 /* [out] */ ProcessID *pProcessId);
7757 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
7758 ICorProfilerInfo * This,
7759 /* [in] */ AssemblyID assemblyId,
7760 /* [in] */ ULONG cchName,
7761 /* [out] */ ULONG *pcchName,
7762 /* [annotation][out] */
7763 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7764 /* [out] */ AppDomainID *pAppDomainId,
7765 /* [out] */ ModuleID *pModuleId);
7767 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
7768 ICorProfilerInfo * This,
7769 /* [in] */ FunctionID functionId);
7771 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
7772 ICorProfilerInfo * This);
7774 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
7775 ICorProfilerInfo * This,
7776 /* [in] */ FunctionID functionId,
7777 /* [in] */ BOOL fStartJit,
7778 /* [in] */ ULONG cILMapEntries,
7779 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
7781 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
7782 ICorProfilerInfo * This,
7783 /* [out] */ IUnknown **ppicd);
7785 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
7786 ICorProfilerInfo * This,
7787 /* [out] */ IUnknown **ppicd);
7789 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
7790 ICorProfilerInfo * This,
7791 /* [in] */ ThreadID threadId,
7792 /* [out] */ ContextID *pContextId);
7794 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
7795 ICorProfilerInfo * This,
7796 /* [in] */ BOOL fThisThreadOnly,
7797 /* [out] */ DWORD *pdwProfilerContext);
7799 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
7800 ICorProfilerInfo * This,
7801 /* [in] */ DWORD dwProfilerContext);
7803 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
7804 ICorProfilerInfo * This,
7805 /* [in] */ FunctionID functionId,
7806 /* [in] */ ULONG32 cMap,
7807 /* [out] */ ULONG32 *pcMap,
7808 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
7811 } ICorProfilerInfoVtbl;
7813 interface ICorProfilerInfo
7815 CONST_VTBL struct ICorProfilerInfoVtbl *lpVtbl;
7823 #define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \
7824 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7826 #define ICorProfilerInfo_AddRef(This) \
7827 ( (This)->lpVtbl -> AddRef(This) )
7829 #define ICorProfilerInfo_Release(This) \
7830 ( (This)->lpVtbl -> Release(This) )
7833 #define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \
7834 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
7836 #define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \
7837 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
7839 #define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \
7840 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
7842 #define ICorProfilerInfo_GetEventMask(This,pdwEvents) \
7843 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
7845 #define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \
7846 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
7848 #define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
7849 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
7851 #define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \
7852 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
7854 #define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \
7855 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
7857 #define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
7858 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
7860 #define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
7861 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
7863 #define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \
7864 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
7866 #define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
7867 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
7869 #define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
7870 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
7872 #define ICorProfilerInfo_SetEventMask(This,dwEvents) \
7873 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
7875 #define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
7876 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
7878 #define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \
7879 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
7881 #define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
7882 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
7884 #define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
7885 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
7887 #define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
7888 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
7890 #define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
7891 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
7893 #define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
7894 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
7896 #define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
7897 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
7899 #define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
7900 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
7902 #define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
7903 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
7905 #define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \
7906 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
7908 #define ICorProfilerInfo_ForceGC(This) \
7909 ( (This)->lpVtbl -> ForceGC(This) )
7911 #define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
7912 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
7914 #define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \
7915 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
7917 #define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \
7918 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
7920 #define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \
7921 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
7923 #define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
7924 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
7926 #define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \
7927 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
7929 #define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
7930 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
7932 #endif /* COBJMACROS */
7935 #endif /* C style interface */
7940 #endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */
7943 #ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__
7944 #define __ICorProfilerInfo2_INTERFACE_DEFINED__
7946 /* interface ICorProfilerInfo2 */
7947 /* [local][unique][uuid][object] */
7950 EXTERN_C const IID IID_ICorProfilerInfo2;
7952 #if defined(__cplusplus) && !defined(CINTERFACE)
7954 MIDL_INTERFACE("CC0935CD-A518-487d-B0BB-A93214E65478")
7955 ICorProfilerInfo2 : public ICorProfilerInfo
7958 virtual HRESULT STDMETHODCALLTYPE DoStackSnapshot(
7959 /* [in] */ ThreadID thread,
7960 /* [in] */ StackSnapshotCallback *callback,
7961 /* [in] */ ULONG32 infoFlags,
7962 /* [in] */ void *clientData,
7963 /* [size_is][in] */ BYTE context[ ],
7964 /* [in] */ ULONG32 contextSize) = 0;
7966 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks2(
7967 /* [in] */ FunctionEnter2 *pFuncEnter,
7968 /* [in] */ FunctionLeave2 *pFuncLeave,
7969 /* [in] */ FunctionTailcall2 *pFuncTailcall) = 0;
7971 virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo2(
7972 /* [in] */ FunctionID funcId,
7973 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
7974 /* [out] */ ClassID *pClassId,
7975 /* [out] */ ModuleID *pModuleId,
7976 /* [out] */ mdToken *pToken,
7977 /* [in] */ ULONG32 cTypeArgs,
7978 /* [out] */ ULONG32 *pcTypeArgs,
7979 /* [out] */ ClassID typeArgs[ ]) = 0;
7981 virtual HRESULT STDMETHODCALLTYPE GetStringLayout(
7982 /* [out] */ ULONG *pBufferLengthOffset,
7983 /* [out] */ ULONG *pStringLengthOffset,
7984 /* [out] */ ULONG *pBufferOffset) = 0;
7986 virtual HRESULT STDMETHODCALLTYPE GetClassLayout(
7987 /* [in] */ ClassID classID,
7988 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
7989 /* [in] */ ULONG cFieldOffset,
7990 /* [out] */ ULONG *pcFieldOffset,
7991 /* [out] */ ULONG *pulClassSize) = 0;
7993 virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo2(
7994 /* [in] */ ClassID classId,
7995 /* [out] */ ModuleID *pModuleId,
7996 /* [out] */ mdTypeDef *pTypeDefToken,
7997 /* [out] */ ClassID *pParentClassId,
7998 /* [in] */ ULONG32 cNumTypeArgs,
7999 /* [out] */ ULONG32 *pcNumTypeArgs,
8000 /* [out] */ ClassID typeArgs[ ]) = 0;
8002 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo2(
8003 /* [in] */ FunctionID functionID,
8004 /* [in] */ ULONG32 cCodeInfos,
8005 /* [out] */ ULONG32 *pcCodeInfos,
8006 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]) = 0;
8008 virtual HRESULT STDMETHODCALLTYPE GetClassFromTokenAndTypeArgs(
8009 /* [in] */ ModuleID moduleID,
8010 /* [in] */ mdTypeDef typeDef,
8011 /* [in] */ ULONG32 cTypeArgs,
8012 /* [size_is][in] */ ClassID typeArgs[ ],
8013 /* [out] */ ClassID *pClassID) = 0;
8015 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromTokenAndTypeArgs(
8016 /* [in] */ ModuleID moduleID,
8017 /* [in] */ mdMethodDef funcDef,
8018 /* [in] */ ClassID classId,
8019 /* [in] */ ULONG32 cTypeArgs,
8020 /* [size_is][in] */ ClassID typeArgs[ ],
8021 /* [out] */ FunctionID *pFunctionID) = 0;
8023 virtual HRESULT STDMETHODCALLTYPE EnumModuleFrozenObjects(
8024 /* [in] */ ModuleID moduleID,
8025 /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
8027 virtual HRESULT STDMETHODCALLTYPE GetArrayObjectInfo(
8028 /* [in] */ ObjectID objectId,
8029 /* [in] */ ULONG32 cDimensions,
8030 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
8031 /* [size_is][out] */ int pDimensionLowerBounds[ ],
8032 /* [out] */ BYTE **ppData) = 0;
8034 virtual HRESULT STDMETHODCALLTYPE GetBoxClassLayout(
8035 /* [in] */ ClassID classId,
8036 /* [out] */ ULONG32 *pBufferOffset) = 0;
8038 virtual HRESULT STDMETHODCALLTYPE GetThreadAppDomain(
8039 /* [in] */ ThreadID threadId,
8040 /* [out] */ AppDomainID *pAppDomainId) = 0;
8042 virtual HRESULT STDMETHODCALLTYPE GetRVAStaticAddress(
8043 /* [in] */ ClassID classId,
8044 /* [in] */ mdFieldDef fieldToken,
8045 /* [out] */ void **ppAddress) = 0;
8047 virtual HRESULT STDMETHODCALLTYPE GetAppDomainStaticAddress(
8048 /* [in] */ ClassID classId,
8049 /* [in] */ mdFieldDef fieldToken,
8050 /* [in] */ AppDomainID appDomainId,
8051 /* [out] */ void **ppAddress) = 0;
8053 virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress(
8054 /* [in] */ ClassID classId,
8055 /* [in] */ mdFieldDef fieldToken,
8056 /* [in] */ ThreadID threadId,
8057 /* [out] */ void **ppAddress) = 0;
8059 virtual HRESULT STDMETHODCALLTYPE GetContextStaticAddress(
8060 /* [in] */ ClassID classId,
8061 /* [in] */ mdFieldDef fieldToken,
8062 /* [in] */ ContextID contextId,
8063 /* [out] */ void **ppAddress) = 0;
8065 virtual HRESULT STDMETHODCALLTYPE GetStaticFieldInfo(
8066 /* [in] */ ClassID classId,
8067 /* [in] */ mdFieldDef fieldToken,
8068 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo) = 0;
8070 virtual HRESULT STDMETHODCALLTYPE GetGenerationBounds(
8071 /* [in] */ ULONG cObjectRanges,
8072 /* [out] */ ULONG *pcObjectRanges,
8073 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]) = 0;
8075 virtual HRESULT STDMETHODCALLTYPE GetObjectGeneration(
8076 /* [in] */ ObjectID objectId,
8077 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range) = 0;
8079 virtual HRESULT STDMETHODCALLTYPE GetNotifiedExceptionClauseInfo(
8080 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo) = 0;
8085 #else /* C style interface */
8087 typedef struct ICorProfilerInfo2Vtbl
8091 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8092 ICorProfilerInfo2 * This,
8093 /* [in] */ REFIID riid,
8094 /* [annotation][iid_is][out] */
8095 _COM_Outptr_ void **ppvObject);
8097 ULONG ( STDMETHODCALLTYPE *AddRef )(
8098 ICorProfilerInfo2 * This);
8100 ULONG ( STDMETHODCALLTYPE *Release )(
8101 ICorProfilerInfo2 * This);
8103 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
8104 ICorProfilerInfo2 * This,
8105 /* [in] */ ObjectID objectId,
8106 /* [out] */ ClassID *pClassId);
8108 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
8109 ICorProfilerInfo2 * This,
8110 /* [in] */ ModuleID moduleId,
8111 /* [in] */ mdTypeDef typeDef,
8112 /* [out] */ ClassID *pClassId);
8114 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
8115 ICorProfilerInfo2 * This,
8116 /* [in] */ FunctionID functionId,
8117 /* [out] */ LPCBYTE *pStart,
8118 /* [out] */ ULONG *pcSize);
8120 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
8121 ICorProfilerInfo2 * This,
8122 /* [out] */ DWORD *pdwEvents);
8124 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
8125 ICorProfilerInfo2 * This,
8126 /* [in] */ LPCBYTE ip,
8127 /* [out] */ FunctionID *pFunctionId);
8129 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
8130 ICorProfilerInfo2 * This,
8131 /* [in] */ ModuleID moduleId,
8132 /* [in] */ mdToken token,
8133 /* [out] */ FunctionID *pFunctionId);
8135 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
8136 ICorProfilerInfo2 * This,
8137 /* [in] */ ThreadID threadId,
8138 /* [out] */ HANDLE *phThread);
8140 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
8141 ICorProfilerInfo2 * This,
8142 /* [in] */ ObjectID objectId,
8143 /* [out] */ ULONG *pcSize);
8145 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
8146 ICorProfilerInfo2 * This,
8147 /* [in] */ ClassID classId,
8148 /* [out] */ CorElementType *pBaseElemType,
8149 /* [out] */ ClassID *pBaseClassId,
8150 /* [out] */ ULONG *pcRank);
8152 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
8153 ICorProfilerInfo2 * This,
8154 /* [in] */ ThreadID threadId,
8155 /* [out] */ DWORD *pdwWin32ThreadId);
8157 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
8158 ICorProfilerInfo2 * This,
8159 /* [out] */ ThreadID *pThreadId);
8161 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
8162 ICorProfilerInfo2 * This,
8163 /* [in] */ ClassID classId,
8164 /* [out] */ ModuleID *pModuleId,
8165 /* [out] */ mdTypeDef *pTypeDefToken);
8167 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
8168 ICorProfilerInfo2 * This,
8169 /* [in] */ FunctionID functionId,
8170 /* [out] */ ClassID *pClassId,
8171 /* [out] */ ModuleID *pModuleId,
8172 /* [out] */ mdToken *pToken);
8174 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
8175 ICorProfilerInfo2 * This,
8176 /* [in] */ DWORD dwEvents);
8178 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
8179 ICorProfilerInfo2 * This,
8180 /* [in] */ FunctionEnter *pFuncEnter,
8181 /* [in] */ FunctionLeave *pFuncLeave,
8182 /* [in] */ FunctionTailcall *pFuncTailcall);
8184 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
8185 ICorProfilerInfo2 * This,
8186 /* [in] */ FunctionIDMapper *pFunc);
8188 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
8189 ICorProfilerInfo2 * This,
8190 /* [in] */ FunctionID functionId,
8191 /* [in] */ REFIID riid,
8192 /* [out] */ IUnknown **ppImport,
8193 /* [out] */ mdToken *pToken);
8195 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
8196 ICorProfilerInfo2 * This,
8197 /* [in] */ ModuleID moduleId,
8198 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8199 /* [in] */ ULONG cchName,
8200 /* [out] */ ULONG *pcchName,
8201 /* [annotation][out] */
8202 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8203 /* [out] */ AssemblyID *pAssemblyId);
8205 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
8206 ICorProfilerInfo2 * This,
8207 /* [in] */ ModuleID moduleId,
8208 /* [in] */ DWORD dwOpenFlags,
8209 /* [in] */ REFIID riid,
8210 /* [out] */ IUnknown **ppOut);
8212 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
8213 ICorProfilerInfo2 * This,
8214 /* [in] */ ModuleID moduleId,
8215 /* [in] */ mdMethodDef methodId,
8216 /* [out] */ LPCBYTE *ppMethodHeader,
8217 /* [out] */ ULONG *pcbMethodSize);
8219 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
8220 ICorProfilerInfo2 * This,
8221 /* [in] */ ModuleID moduleId,
8222 /* [out] */ IMethodMalloc **ppMalloc);
8224 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
8225 ICorProfilerInfo2 * This,
8226 /* [in] */ ModuleID moduleId,
8227 /* [in] */ mdMethodDef methodid,
8228 /* [in] */ LPCBYTE pbNewILMethodHeader);
8230 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
8231 ICorProfilerInfo2 * This,
8232 /* [in] */ AppDomainID appDomainId,
8233 /* [in] */ ULONG cchName,
8234 /* [out] */ ULONG *pcchName,
8235 /* [annotation][out] */
8236 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8237 /* [out] */ ProcessID *pProcessId);
8239 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
8240 ICorProfilerInfo2 * This,
8241 /* [in] */ AssemblyID assemblyId,
8242 /* [in] */ ULONG cchName,
8243 /* [out] */ ULONG *pcchName,
8244 /* [annotation][out] */
8245 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8246 /* [out] */ AppDomainID *pAppDomainId,
8247 /* [out] */ ModuleID *pModuleId);
8249 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
8250 ICorProfilerInfo2 * This,
8251 /* [in] */ FunctionID functionId);
8253 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
8254 ICorProfilerInfo2 * This);
8256 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
8257 ICorProfilerInfo2 * This,
8258 /* [in] */ FunctionID functionId,
8259 /* [in] */ BOOL fStartJit,
8260 /* [in] */ ULONG cILMapEntries,
8261 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
8263 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
8264 ICorProfilerInfo2 * This,
8265 /* [out] */ IUnknown **ppicd);
8267 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
8268 ICorProfilerInfo2 * This,
8269 /* [out] */ IUnknown **ppicd);
8271 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
8272 ICorProfilerInfo2 * This,
8273 /* [in] */ ThreadID threadId,
8274 /* [out] */ ContextID *pContextId);
8276 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
8277 ICorProfilerInfo2 * This,
8278 /* [in] */ BOOL fThisThreadOnly,
8279 /* [out] */ DWORD *pdwProfilerContext);
8281 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
8282 ICorProfilerInfo2 * This,
8283 /* [in] */ DWORD dwProfilerContext);
8285 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
8286 ICorProfilerInfo2 * This,
8287 /* [in] */ FunctionID functionId,
8288 /* [in] */ ULONG32 cMap,
8289 /* [out] */ ULONG32 *pcMap,
8290 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
8292 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
8293 ICorProfilerInfo2 * This,
8294 /* [in] */ ThreadID thread,
8295 /* [in] */ StackSnapshotCallback *callback,
8296 /* [in] */ ULONG32 infoFlags,
8297 /* [in] */ void *clientData,
8298 /* [size_is][in] */ BYTE context[ ],
8299 /* [in] */ ULONG32 contextSize);
8301 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
8302 ICorProfilerInfo2 * This,
8303 /* [in] */ FunctionEnter2 *pFuncEnter,
8304 /* [in] */ FunctionLeave2 *pFuncLeave,
8305 /* [in] */ FunctionTailcall2 *pFuncTailcall);
8307 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
8308 ICorProfilerInfo2 * This,
8309 /* [in] */ FunctionID funcId,
8310 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8311 /* [out] */ ClassID *pClassId,
8312 /* [out] */ ModuleID *pModuleId,
8313 /* [out] */ mdToken *pToken,
8314 /* [in] */ ULONG32 cTypeArgs,
8315 /* [out] */ ULONG32 *pcTypeArgs,
8316 /* [out] */ ClassID typeArgs[ ]);
8318 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
8319 ICorProfilerInfo2 * This,
8320 /* [out] */ ULONG *pBufferLengthOffset,
8321 /* [out] */ ULONG *pStringLengthOffset,
8322 /* [out] */ ULONG *pBufferOffset);
8324 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
8325 ICorProfilerInfo2 * This,
8326 /* [in] */ ClassID classID,
8327 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
8328 /* [in] */ ULONG cFieldOffset,
8329 /* [out] */ ULONG *pcFieldOffset,
8330 /* [out] */ ULONG *pulClassSize);
8332 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
8333 ICorProfilerInfo2 * This,
8334 /* [in] */ ClassID classId,
8335 /* [out] */ ModuleID *pModuleId,
8336 /* [out] */ mdTypeDef *pTypeDefToken,
8337 /* [out] */ ClassID *pParentClassId,
8338 /* [in] */ ULONG32 cNumTypeArgs,
8339 /* [out] */ ULONG32 *pcNumTypeArgs,
8340 /* [out] */ ClassID typeArgs[ ]);
8342 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
8343 ICorProfilerInfo2 * This,
8344 /* [in] */ FunctionID functionID,
8345 /* [in] */ ULONG32 cCodeInfos,
8346 /* [out] */ ULONG32 *pcCodeInfos,
8347 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
8349 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
8350 ICorProfilerInfo2 * This,
8351 /* [in] */ ModuleID moduleID,
8352 /* [in] */ mdTypeDef typeDef,
8353 /* [in] */ ULONG32 cTypeArgs,
8354 /* [size_is][in] */ ClassID typeArgs[ ],
8355 /* [out] */ ClassID *pClassID);
8357 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
8358 ICorProfilerInfo2 * This,
8359 /* [in] */ ModuleID moduleID,
8360 /* [in] */ mdMethodDef funcDef,
8361 /* [in] */ ClassID classId,
8362 /* [in] */ ULONG32 cTypeArgs,
8363 /* [size_is][in] */ ClassID typeArgs[ ],
8364 /* [out] */ FunctionID *pFunctionID);
8366 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
8367 ICorProfilerInfo2 * This,
8368 /* [in] */ ModuleID moduleID,
8369 /* [out] */ ICorProfilerObjectEnum **ppEnum);
8371 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
8372 ICorProfilerInfo2 * This,
8373 /* [in] */ ObjectID objectId,
8374 /* [in] */ ULONG32 cDimensions,
8375 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
8376 /* [size_is][out] */ int pDimensionLowerBounds[ ],
8377 /* [out] */ BYTE **ppData);
8379 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
8380 ICorProfilerInfo2 * This,
8381 /* [in] */ ClassID classId,
8382 /* [out] */ ULONG32 *pBufferOffset);
8384 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
8385 ICorProfilerInfo2 * This,
8386 /* [in] */ ThreadID threadId,
8387 /* [out] */ AppDomainID *pAppDomainId);
8389 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
8390 ICorProfilerInfo2 * This,
8391 /* [in] */ ClassID classId,
8392 /* [in] */ mdFieldDef fieldToken,
8393 /* [out] */ void **ppAddress);
8395 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
8396 ICorProfilerInfo2 * This,
8397 /* [in] */ ClassID classId,
8398 /* [in] */ mdFieldDef fieldToken,
8399 /* [in] */ AppDomainID appDomainId,
8400 /* [out] */ void **ppAddress);
8402 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
8403 ICorProfilerInfo2 * This,
8404 /* [in] */ ClassID classId,
8405 /* [in] */ mdFieldDef fieldToken,
8406 /* [in] */ ThreadID threadId,
8407 /* [out] */ void **ppAddress);
8409 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
8410 ICorProfilerInfo2 * This,
8411 /* [in] */ ClassID classId,
8412 /* [in] */ mdFieldDef fieldToken,
8413 /* [in] */ ContextID contextId,
8414 /* [out] */ void **ppAddress);
8416 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
8417 ICorProfilerInfo2 * This,
8418 /* [in] */ ClassID classId,
8419 /* [in] */ mdFieldDef fieldToken,
8420 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
8422 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
8423 ICorProfilerInfo2 * This,
8424 /* [in] */ ULONG cObjectRanges,
8425 /* [out] */ ULONG *pcObjectRanges,
8426 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
8428 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
8429 ICorProfilerInfo2 * This,
8430 /* [in] */ ObjectID objectId,
8431 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
8433 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
8434 ICorProfilerInfo2 * This,
8435 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
8438 } ICorProfilerInfo2Vtbl;
8440 interface ICorProfilerInfo2
8442 CONST_VTBL struct ICorProfilerInfo2Vtbl *lpVtbl;
8450 #define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \
8451 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8453 #define ICorProfilerInfo2_AddRef(This) \
8454 ( (This)->lpVtbl -> AddRef(This) )
8456 #define ICorProfilerInfo2_Release(This) \
8457 ( (This)->lpVtbl -> Release(This) )
8460 #define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \
8461 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
8463 #define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \
8464 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
8466 #define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \
8467 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
8469 #define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \
8470 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
8472 #define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \
8473 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
8475 #define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
8476 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
8478 #define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \
8479 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
8481 #define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \
8482 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
8484 #define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
8485 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
8487 #define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
8488 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
8490 #define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \
8491 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
8493 #define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
8494 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
8496 #define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
8497 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
8499 #define ICorProfilerInfo2_SetEventMask(This,dwEvents) \
8500 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
8502 #define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
8503 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
8505 #define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \
8506 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
8508 #define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
8509 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
8511 #define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
8512 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
8514 #define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
8515 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
8517 #define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
8518 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
8520 #define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
8521 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
8523 #define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
8524 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
8526 #define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
8527 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
8529 #define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
8530 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
8532 #define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \
8533 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
8535 #define ICorProfilerInfo2_ForceGC(This) \
8536 ( (This)->lpVtbl -> ForceGC(This) )
8538 #define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
8539 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
8541 #define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \
8542 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
8544 #define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \
8545 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
8547 #define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \
8548 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
8550 #define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
8551 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
8553 #define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \
8554 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
8556 #define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
8557 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
8560 #define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
8561 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
8563 #define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
8564 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
8566 #define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
8567 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
8569 #define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
8570 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
8572 #define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
8573 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
8575 #define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
8576 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
8578 #define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
8579 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
8581 #define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
8582 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
8584 #define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
8585 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
8587 #define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
8588 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
8590 #define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
8591 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
8593 #define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \
8594 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
8596 #define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \
8597 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
8599 #define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
8600 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
8602 #define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
8603 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
8605 #define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
8606 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
8608 #define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
8609 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
8611 #define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
8612 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
8614 #define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
8615 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
8617 #define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \
8618 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
8620 #define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \
8621 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
8623 #endif /* COBJMACROS */
8626 #endif /* C style interface */
8631 #endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */
8634 #ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__
8635 #define __ICorProfilerInfo3_INTERFACE_DEFINED__
8637 /* interface ICorProfilerInfo3 */
8638 /* [local][unique][uuid][object] */
8641 EXTERN_C const IID IID_ICorProfilerInfo3;
8643 #if defined(__cplusplus) && !defined(CINTERFACE)
8645 MIDL_INTERFACE("B555ED4F-452A-4E54-8B39-B5360BAD32A0")
8646 ICorProfilerInfo3 : public ICorProfilerInfo2
8649 virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions(
8650 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
8652 virtual HRESULT STDMETHODCALLTYPE RequestProfilerDetach(
8653 /* [in] */ DWORD dwExpectedCompletionMilliseconds) = 0;
8655 virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper2(
8656 /* [in] */ FunctionIDMapper2 *pFunc,
8657 /* [in] */ void *clientData) = 0;
8659 virtual HRESULT STDMETHODCALLTYPE GetStringLayout2(
8660 /* [out] */ ULONG *pStringLengthOffset,
8661 /* [out] */ ULONG *pBufferOffset) = 0;
8663 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3(
8664 /* [in] */ FunctionEnter3 *pFuncEnter3,
8665 /* [in] */ FunctionLeave3 *pFuncLeave3,
8666 /* [in] */ FunctionTailcall3 *pFuncTailcall3) = 0;
8668 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3WithInfo(
8669 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
8670 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
8671 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo) = 0;
8673 virtual HRESULT STDMETHODCALLTYPE GetFunctionEnter3Info(
8674 /* [in] */ FunctionID functionId,
8675 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8676 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8677 /* [out][in] */ ULONG *pcbArgumentInfo,
8678 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo) = 0;
8680 virtual HRESULT STDMETHODCALLTYPE GetFunctionLeave3Info(
8681 /* [in] */ FunctionID functionId,
8682 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8683 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8684 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange) = 0;
8686 virtual HRESULT STDMETHODCALLTYPE GetFunctionTailcall3Info(
8687 /* [in] */ FunctionID functionId,
8688 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8689 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo) = 0;
8691 virtual HRESULT STDMETHODCALLTYPE EnumModules(
8692 /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
8694 virtual HRESULT STDMETHODCALLTYPE GetRuntimeInformation(
8695 /* [out] */ USHORT *pClrInstanceId,
8696 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
8697 /* [out] */ USHORT *pMajorVersion,
8698 /* [out] */ USHORT *pMinorVersion,
8699 /* [out] */ USHORT *pBuildNumber,
8700 /* [out] */ USHORT *pQFEVersion,
8701 /* [in] */ ULONG cchVersionString,
8702 /* [out] */ ULONG *pcchVersionString,
8703 /* [annotation][out] */
8704 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]) = 0;
8706 virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress2(
8707 /* [in] */ ClassID classId,
8708 /* [in] */ mdFieldDef fieldToken,
8709 /* [in] */ AppDomainID appDomainId,
8710 /* [in] */ ThreadID threadId,
8711 /* [out] */ void **ppAddress) = 0;
8713 virtual HRESULT STDMETHODCALLTYPE GetAppDomainsContainingModule(
8714 /* [in] */ ModuleID moduleId,
8715 /* [in] */ ULONG32 cAppDomainIds,
8716 /* [out] */ ULONG32 *pcAppDomainIds,
8717 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]) = 0;
8719 virtual HRESULT STDMETHODCALLTYPE GetModuleInfo2(
8720 /* [in] */ ModuleID moduleId,
8721 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8722 /* [in] */ ULONG cchName,
8723 /* [out] */ ULONG *pcchName,
8724 /* [annotation][out] */
8725 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8726 /* [out] */ AssemblyID *pAssemblyId,
8727 /* [out] */ DWORD *pdwModuleFlags) = 0;
8732 #else /* C style interface */
8734 typedef struct ICorProfilerInfo3Vtbl
8738 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8739 ICorProfilerInfo3 * This,
8740 /* [in] */ REFIID riid,
8741 /* [annotation][iid_is][out] */
8742 _COM_Outptr_ void **ppvObject);
8744 ULONG ( STDMETHODCALLTYPE *AddRef )(
8745 ICorProfilerInfo3 * This);
8747 ULONG ( STDMETHODCALLTYPE *Release )(
8748 ICorProfilerInfo3 * This);
8750 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
8751 ICorProfilerInfo3 * This,
8752 /* [in] */ ObjectID objectId,
8753 /* [out] */ ClassID *pClassId);
8755 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
8756 ICorProfilerInfo3 * This,
8757 /* [in] */ ModuleID moduleId,
8758 /* [in] */ mdTypeDef typeDef,
8759 /* [out] */ ClassID *pClassId);
8761 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
8762 ICorProfilerInfo3 * This,
8763 /* [in] */ FunctionID functionId,
8764 /* [out] */ LPCBYTE *pStart,
8765 /* [out] */ ULONG *pcSize);
8767 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
8768 ICorProfilerInfo3 * This,
8769 /* [out] */ DWORD *pdwEvents);
8771 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
8772 ICorProfilerInfo3 * This,
8773 /* [in] */ LPCBYTE ip,
8774 /* [out] */ FunctionID *pFunctionId);
8776 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
8777 ICorProfilerInfo3 * This,
8778 /* [in] */ ModuleID moduleId,
8779 /* [in] */ mdToken token,
8780 /* [out] */ FunctionID *pFunctionId);
8782 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
8783 ICorProfilerInfo3 * This,
8784 /* [in] */ ThreadID threadId,
8785 /* [out] */ HANDLE *phThread);
8787 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
8788 ICorProfilerInfo3 * This,
8789 /* [in] */ ObjectID objectId,
8790 /* [out] */ ULONG *pcSize);
8792 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
8793 ICorProfilerInfo3 * This,
8794 /* [in] */ ClassID classId,
8795 /* [out] */ CorElementType *pBaseElemType,
8796 /* [out] */ ClassID *pBaseClassId,
8797 /* [out] */ ULONG *pcRank);
8799 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
8800 ICorProfilerInfo3 * This,
8801 /* [in] */ ThreadID threadId,
8802 /* [out] */ DWORD *pdwWin32ThreadId);
8804 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
8805 ICorProfilerInfo3 * This,
8806 /* [out] */ ThreadID *pThreadId);
8808 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
8809 ICorProfilerInfo3 * This,
8810 /* [in] */ ClassID classId,
8811 /* [out] */ ModuleID *pModuleId,
8812 /* [out] */ mdTypeDef *pTypeDefToken);
8814 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
8815 ICorProfilerInfo3 * This,
8816 /* [in] */ FunctionID functionId,
8817 /* [out] */ ClassID *pClassId,
8818 /* [out] */ ModuleID *pModuleId,
8819 /* [out] */ mdToken *pToken);
8821 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
8822 ICorProfilerInfo3 * This,
8823 /* [in] */ DWORD dwEvents);
8825 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
8826 ICorProfilerInfo3 * This,
8827 /* [in] */ FunctionEnter *pFuncEnter,
8828 /* [in] */ FunctionLeave *pFuncLeave,
8829 /* [in] */ FunctionTailcall *pFuncTailcall);
8831 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
8832 ICorProfilerInfo3 * This,
8833 /* [in] */ FunctionIDMapper *pFunc);
8835 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
8836 ICorProfilerInfo3 * This,
8837 /* [in] */ FunctionID functionId,
8838 /* [in] */ REFIID riid,
8839 /* [out] */ IUnknown **ppImport,
8840 /* [out] */ mdToken *pToken);
8842 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
8843 ICorProfilerInfo3 * This,
8844 /* [in] */ ModuleID moduleId,
8845 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8846 /* [in] */ ULONG cchName,
8847 /* [out] */ ULONG *pcchName,
8848 /* [annotation][out] */
8849 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8850 /* [out] */ AssemblyID *pAssemblyId);
8852 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
8853 ICorProfilerInfo3 * This,
8854 /* [in] */ ModuleID moduleId,
8855 /* [in] */ DWORD dwOpenFlags,
8856 /* [in] */ REFIID riid,
8857 /* [out] */ IUnknown **ppOut);
8859 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
8860 ICorProfilerInfo3 * This,
8861 /* [in] */ ModuleID moduleId,
8862 /* [in] */ mdMethodDef methodId,
8863 /* [out] */ LPCBYTE *ppMethodHeader,
8864 /* [out] */ ULONG *pcbMethodSize);
8866 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
8867 ICorProfilerInfo3 * This,
8868 /* [in] */ ModuleID moduleId,
8869 /* [out] */ IMethodMalloc **ppMalloc);
8871 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
8872 ICorProfilerInfo3 * This,
8873 /* [in] */ ModuleID moduleId,
8874 /* [in] */ mdMethodDef methodid,
8875 /* [in] */ LPCBYTE pbNewILMethodHeader);
8877 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
8878 ICorProfilerInfo3 * This,
8879 /* [in] */ AppDomainID appDomainId,
8880 /* [in] */ ULONG cchName,
8881 /* [out] */ ULONG *pcchName,
8882 /* [annotation][out] */
8883 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8884 /* [out] */ ProcessID *pProcessId);
8886 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
8887 ICorProfilerInfo3 * This,
8888 /* [in] */ AssemblyID assemblyId,
8889 /* [in] */ ULONG cchName,
8890 /* [out] */ ULONG *pcchName,
8891 /* [annotation][out] */
8892 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8893 /* [out] */ AppDomainID *pAppDomainId,
8894 /* [out] */ ModuleID *pModuleId);
8896 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
8897 ICorProfilerInfo3 * This,
8898 /* [in] */ FunctionID functionId);
8900 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
8901 ICorProfilerInfo3 * This);
8903 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
8904 ICorProfilerInfo3 * This,
8905 /* [in] */ FunctionID functionId,
8906 /* [in] */ BOOL fStartJit,
8907 /* [in] */ ULONG cILMapEntries,
8908 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
8910 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
8911 ICorProfilerInfo3 * This,
8912 /* [out] */ IUnknown **ppicd);
8914 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
8915 ICorProfilerInfo3 * This,
8916 /* [out] */ IUnknown **ppicd);
8918 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
8919 ICorProfilerInfo3 * This,
8920 /* [in] */ ThreadID threadId,
8921 /* [out] */ ContextID *pContextId);
8923 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
8924 ICorProfilerInfo3 * This,
8925 /* [in] */ BOOL fThisThreadOnly,
8926 /* [out] */ DWORD *pdwProfilerContext);
8928 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
8929 ICorProfilerInfo3 * This,
8930 /* [in] */ DWORD dwProfilerContext);
8932 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
8933 ICorProfilerInfo3 * This,
8934 /* [in] */ FunctionID functionId,
8935 /* [in] */ ULONG32 cMap,
8936 /* [out] */ ULONG32 *pcMap,
8937 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
8939 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
8940 ICorProfilerInfo3 * This,
8941 /* [in] */ ThreadID thread,
8942 /* [in] */ StackSnapshotCallback *callback,
8943 /* [in] */ ULONG32 infoFlags,
8944 /* [in] */ void *clientData,
8945 /* [size_is][in] */ BYTE context[ ],
8946 /* [in] */ ULONG32 contextSize);
8948 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
8949 ICorProfilerInfo3 * This,
8950 /* [in] */ FunctionEnter2 *pFuncEnter,
8951 /* [in] */ FunctionLeave2 *pFuncLeave,
8952 /* [in] */ FunctionTailcall2 *pFuncTailcall);
8954 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
8955 ICorProfilerInfo3 * This,
8956 /* [in] */ FunctionID funcId,
8957 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8958 /* [out] */ ClassID *pClassId,
8959 /* [out] */ ModuleID *pModuleId,
8960 /* [out] */ mdToken *pToken,
8961 /* [in] */ ULONG32 cTypeArgs,
8962 /* [out] */ ULONG32 *pcTypeArgs,
8963 /* [out] */ ClassID typeArgs[ ]);
8965 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
8966 ICorProfilerInfo3 * This,
8967 /* [out] */ ULONG *pBufferLengthOffset,
8968 /* [out] */ ULONG *pStringLengthOffset,
8969 /* [out] */ ULONG *pBufferOffset);
8971 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
8972 ICorProfilerInfo3 * This,
8973 /* [in] */ ClassID classID,
8974 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
8975 /* [in] */ ULONG cFieldOffset,
8976 /* [out] */ ULONG *pcFieldOffset,
8977 /* [out] */ ULONG *pulClassSize);
8979 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
8980 ICorProfilerInfo3 * This,
8981 /* [in] */ ClassID classId,
8982 /* [out] */ ModuleID *pModuleId,
8983 /* [out] */ mdTypeDef *pTypeDefToken,
8984 /* [out] */ ClassID *pParentClassId,
8985 /* [in] */ ULONG32 cNumTypeArgs,
8986 /* [out] */ ULONG32 *pcNumTypeArgs,
8987 /* [out] */ ClassID typeArgs[ ]);
8989 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
8990 ICorProfilerInfo3 * This,
8991 /* [in] */ FunctionID functionID,
8992 /* [in] */ ULONG32 cCodeInfos,
8993 /* [out] */ ULONG32 *pcCodeInfos,
8994 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
8996 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
8997 ICorProfilerInfo3 * This,
8998 /* [in] */ ModuleID moduleID,
8999 /* [in] */ mdTypeDef typeDef,
9000 /* [in] */ ULONG32 cTypeArgs,
9001 /* [size_is][in] */ ClassID typeArgs[ ],
9002 /* [out] */ ClassID *pClassID);
9004 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
9005 ICorProfilerInfo3 * This,
9006 /* [in] */ ModuleID moduleID,
9007 /* [in] */ mdMethodDef funcDef,
9008 /* [in] */ ClassID classId,
9009 /* [in] */ ULONG32 cTypeArgs,
9010 /* [size_is][in] */ ClassID typeArgs[ ],
9011 /* [out] */ FunctionID *pFunctionID);
9013 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
9014 ICorProfilerInfo3 * This,
9015 /* [in] */ ModuleID moduleID,
9016 /* [out] */ ICorProfilerObjectEnum **ppEnum);
9018 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
9019 ICorProfilerInfo3 * This,
9020 /* [in] */ ObjectID objectId,
9021 /* [in] */ ULONG32 cDimensions,
9022 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
9023 /* [size_is][out] */ int pDimensionLowerBounds[ ],
9024 /* [out] */ BYTE **ppData);
9026 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
9027 ICorProfilerInfo3 * This,
9028 /* [in] */ ClassID classId,
9029 /* [out] */ ULONG32 *pBufferOffset);
9031 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
9032 ICorProfilerInfo3 * This,
9033 /* [in] */ ThreadID threadId,
9034 /* [out] */ AppDomainID *pAppDomainId);
9036 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
9037 ICorProfilerInfo3 * This,
9038 /* [in] */ ClassID classId,
9039 /* [in] */ mdFieldDef fieldToken,
9040 /* [out] */ void **ppAddress);
9042 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
9043 ICorProfilerInfo3 * This,
9044 /* [in] */ ClassID classId,
9045 /* [in] */ mdFieldDef fieldToken,
9046 /* [in] */ AppDomainID appDomainId,
9047 /* [out] */ void **ppAddress);
9049 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
9050 ICorProfilerInfo3 * This,
9051 /* [in] */ ClassID classId,
9052 /* [in] */ mdFieldDef fieldToken,
9053 /* [in] */ ThreadID threadId,
9054 /* [out] */ void **ppAddress);
9056 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
9057 ICorProfilerInfo3 * This,
9058 /* [in] */ ClassID classId,
9059 /* [in] */ mdFieldDef fieldToken,
9060 /* [in] */ ContextID contextId,
9061 /* [out] */ void **ppAddress);
9063 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
9064 ICorProfilerInfo3 * This,
9065 /* [in] */ ClassID classId,
9066 /* [in] */ mdFieldDef fieldToken,
9067 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
9069 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
9070 ICorProfilerInfo3 * This,
9071 /* [in] */ ULONG cObjectRanges,
9072 /* [out] */ ULONG *pcObjectRanges,
9073 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
9075 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
9076 ICorProfilerInfo3 * This,
9077 /* [in] */ ObjectID objectId,
9078 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
9080 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
9081 ICorProfilerInfo3 * This,
9082 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
9084 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
9085 ICorProfilerInfo3 * This,
9086 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9088 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
9089 ICorProfilerInfo3 * This,
9090 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
9092 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
9093 ICorProfilerInfo3 * This,
9094 /* [in] */ FunctionIDMapper2 *pFunc,
9095 /* [in] */ void *clientData);
9097 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
9098 ICorProfilerInfo3 * This,
9099 /* [out] */ ULONG *pStringLengthOffset,
9100 /* [out] */ ULONG *pBufferOffset);
9102 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
9103 ICorProfilerInfo3 * This,
9104 /* [in] */ FunctionEnter3 *pFuncEnter3,
9105 /* [in] */ FunctionLeave3 *pFuncLeave3,
9106 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
9108 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
9109 ICorProfilerInfo3 * This,
9110 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
9111 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
9112 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
9114 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
9115 ICorProfilerInfo3 * This,
9116 /* [in] */ FunctionID functionId,
9117 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9118 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9119 /* [out][in] */ ULONG *pcbArgumentInfo,
9120 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
9122 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
9123 ICorProfilerInfo3 * This,
9124 /* [in] */ FunctionID functionId,
9125 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9126 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9127 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
9129 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
9130 ICorProfilerInfo3 * This,
9131 /* [in] */ FunctionID functionId,
9132 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9133 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
9135 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
9136 ICorProfilerInfo3 * This,
9137 /* [out] */ ICorProfilerModuleEnum **ppEnum);
9139 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
9140 ICorProfilerInfo3 * This,
9141 /* [out] */ USHORT *pClrInstanceId,
9142 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
9143 /* [out] */ USHORT *pMajorVersion,
9144 /* [out] */ USHORT *pMinorVersion,
9145 /* [out] */ USHORT *pBuildNumber,
9146 /* [out] */ USHORT *pQFEVersion,
9147 /* [in] */ ULONG cchVersionString,
9148 /* [out] */ ULONG *pcchVersionString,
9149 /* [annotation][out] */
9150 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
9152 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
9153 ICorProfilerInfo3 * This,
9154 /* [in] */ ClassID classId,
9155 /* [in] */ mdFieldDef fieldToken,
9156 /* [in] */ AppDomainID appDomainId,
9157 /* [in] */ ThreadID threadId,
9158 /* [out] */ void **ppAddress);
9160 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
9161 ICorProfilerInfo3 * This,
9162 /* [in] */ ModuleID moduleId,
9163 /* [in] */ ULONG32 cAppDomainIds,
9164 /* [out] */ ULONG32 *pcAppDomainIds,
9165 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
9167 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
9168 ICorProfilerInfo3 * This,
9169 /* [in] */ ModuleID moduleId,
9170 /* [out] */ LPCBYTE *ppBaseLoadAddress,
9171 /* [in] */ ULONG cchName,
9172 /* [out] */ ULONG *pcchName,
9173 /* [annotation][out] */
9174 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
9175 /* [out] */ AssemblyID *pAssemblyId,
9176 /* [out] */ DWORD *pdwModuleFlags);
9179 } ICorProfilerInfo3Vtbl;
9181 interface ICorProfilerInfo3
9183 CONST_VTBL struct ICorProfilerInfo3Vtbl *lpVtbl;
9191 #define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \
9192 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9194 #define ICorProfilerInfo3_AddRef(This) \
9195 ( (This)->lpVtbl -> AddRef(This) )
9197 #define ICorProfilerInfo3_Release(This) \
9198 ( (This)->lpVtbl -> Release(This) )
9201 #define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \
9202 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
9204 #define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \
9205 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
9207 #define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \
9208 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
9210 #define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \
9211 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
9213 #define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \
9214 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
9216 #define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
9217 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
9219 #define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \
9220 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
9222 #define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \
9223 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
9225 #define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
9226 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
9228 #define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
9229 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
9231 #define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \
9232 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
9234 #define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
9235 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
9237 #define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
9238 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
9240 #define ICorProfilerInfo3_SetEventMask(This,dwEvents) \
9241 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
9243 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
9244 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
9246 #define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \
9247 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
9249 #define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
9250 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
9252 #define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
9253 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
9255 #define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
9256 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
9258 #define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
9259 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
9261 #define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
9262 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
9264 #define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
9265 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
9267 #define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
9268 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
9270 #define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
9271 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
9273 #define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \
9274 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
9276 #define ICorProfilerInfo3_ForceGC(This) \
9277 ( (This)->lpVtbl -> ForceGC(This) )
9279 #define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
9280 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
9282 #define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \
9283 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
9285 #define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \
9286 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
9288 #define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \
9289 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
9291 #define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
9292 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
9294 #define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \
9295 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
9297 #define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
9298 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
9301 #define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
9302 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
9304 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
9305 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
9307 #define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
9308 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
9310 #define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
9311 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
9313 #define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
9314 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
9316 #define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
9317 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
9319 #define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
9320 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
9322 #define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
9323 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
9325 #define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
9326 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
9328 #define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
9329 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
9331 #define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
9332 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
9334 #define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \
9335 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
9337 #define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \
9338 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
9340 #define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
9341 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
9343 #define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
9344 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
9346 #define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
9347 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
9349 #define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
9350 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
9352 #define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
9353 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
9355 #define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
9356 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
9358 #define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \
9359 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
9361 #define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \
9362 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
9365 #define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \
9366 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
9368 #define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
9369 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
9371 #define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \
9372 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
9374 #define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
9375 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
9377 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
9378 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
9380 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
9381 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
9383 #define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
9384 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
9386 #define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
9387 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
9389 #define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
9390 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
9392 #define ICorProfilerInfo3_EnumModules(This,ppEnum) \
9393 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
9395 #define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
9396 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
9398 #define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
9399 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
9401 #define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
9402 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
9404 #define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
9405 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
9407 #endif /* COBJMACROS */
9410 #endif /* C style interface */
9415 #endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */
9418 #ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9419 #define __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9421 /* interface ICorProfilerObjectEnum */
9422 /* [local][unique][uuid][object] */
9425 EXTERN_C const IID IID_ICorProfilerObjectEnum;
9427 #if defined(__cplusplus) && !defined(CINTERFACE)
9429 MIDL_INTERFACE("2C6269BD-2D13-4321-AE12-6686365FD6AF")
9430 ICorProfilerObjectEnum : public IUnknown
9433 virtual HRESULT STDMETHODCALLTYPE Skip(
9434 /* [in] */ ULONG celt) = 0;
9436 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9438 virtual HRESULT STDMETHODCALLTYPE Clone(
9439 /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
9441 virtual HRESULT STDMETHODCALLTYPE GetCount(
9442 /* [out] */ ULONG *pcelt) = 0;
9444 virtual HRESULT STDMETHODCALLTYPE Next(
9445 /* [in] */ ULONG celt,
9446 /* [length_is][size_is][out] */ ObjectID objects[ ],
9447 /* [out] */ ULONG *pceltFetched) = 0;
9452 #else /* C style interface */
9454 typedef struct ICorProfilerObjectEnumVtbl
9458 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9459 ICorProfilerObjectEnum * This,
9460 /* [in] */ REFIID riid,
9461 /* [annotation][iid_is][out] */
9462 _COM_Outptr_ void **ppvObject);
9464 ULONG ( STDMETHODCALLTYPE *AddRef )(
9465 ICorProfilerObjectEnum * This);
9467 ULONG ( STDMETHODCALLTYPE *Release )(
9468 ICorProfilerObjectEnum * This);
9470 HRESULT ( STDMETHODCALLTYPE *Skip )(
9471 ICorProfilerObjectEnum * This,
9472 /* [in] */ ULONG celt);
9474 HRESULT ( STDMETHODCALLTYPE *Reset )(
9475 ICorProfilerObjectEnum * This);
9477 HRESULT ( STDMETHODCALLTYPE *Clone )(
9478 ICorProfilerObjectEnum * This,
9479 /* [out] */ ICorProfilerObjectEnum **ppEnum);
9481 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9482 ICorProfilerObjectEnum * This,
9483 /* [out] */ ULONG *pcelt);
9485 HRESULT ( STDMETHODCALLTYPE *Next )(
9486 ICorProfilerObjectEnum * This,
9487 /* [in] */ ULONG celt,
9488 /* [length_is][size_is][out] */ ObjectID objects[ ],
9489 /* [out] */ ULONG *pceltFetched);
9492 } ICorProfilerObjectEnumVtbl;
9494 interface ICorProfilerObjectEnum
9496 CONST_VTBL struct ICorProfilerObjectEnumVtbl *lpVtbl;
9504 #define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \
9505 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9507 #define ICorProfilerObjectEnum_AddRef(This) \
9508 ( (This)->lpVtbl -> AddRef(This) )
9510 #define ICorProfilerObjectEnum_Release(This) \
9511 ( (This)->lpVtbl -> Release(This) )
9514 #define ICorProfilerObjectEnum_Skip(This,celt) \
9515 ( (This)->lpVtbl -> Skip(This,celt) )
9517 #define ICorProfilerObjectEnum_Reset(This) \
9518 ( (This)->lpVtbl -> Reset(This) )
9520 #define ICorProfilerObjectEnum_Clone(This,ppEnum) \
9521 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9523 #define ICorProfilerObjectEnum_GetCount(This,pcelt) \
9524 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9526 #define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \
9527 ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) )
9529 #endif /* COBJMACROS */
9532 #endif /* C style interface */
9537 #endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */
9540 #ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9541 #define __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9543 /* interface ICorProfilerFunctionEnum */
9544 /* [local][unique][uuid][object] */
9547 EXTERN_C const IID IID_ICorProfilerFunctionEnum;
9549 #if defined(__cplusplus) && !defined(CINTERFACE)
9551 MIDL_INTERFACE("FF71301A-B994-429D-A10B-B345A65280EF")
9552 ICorProfilerFunctionEnum : public IUnknown
9555 virtual HRESULT STDMETHODCALLTYPE Skip(
9556 /* [in] */ ULONG celt) = 0;
9558 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9560 virtual HRESULT STDMETHODCALLTYPE Clone(
9561 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
9563 virtual HRESULT STDMETHODCALLTYPE GetCount(
9564 /* [out] */ ULONG *pcelt) = 0;
9566 virtual HRESULT STDMETHODCALLTYPE Next(
9567 /* [in] */ ULONG celt,
9568 /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
9569 /* [out] */ ULONG *pceltFetched) = 0;
9574 #else /* C style interface */
9576 typedef struct ICorProfilerFunctionEnumVtbl
9580 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9581 ICorProfilerFunctionEnum * This,
9582 /* [in] */ REFIID riid,
9583 /* [annotation][iid_is][out] */
9584 _COM_Outptr_ void **ppvObject);
9586 ULONG ( STDMETHODCALLTYPE *AddRef )(
9587 ICorProfilerFunctionEnum * This);
9589 ULONG ( STDMETHODCALLTYPE *Release )(
9590 ICorProfilerFunctionEnum * This);
9592 HRESULT ( STDMETHODCALLTYPE *Skip )(
9593 ICorProfilerFunctionEnum * This,
9594 /* [in] */ ULONG celt);
9596 HRESULT ( STDMETHODCALLTYPE *Reset )(
9597 ICorProfilerFunctionEnum * This);
9599 HRESULT ( STDMETHODCALLTYPE *Clone )(
9600 ICorProfilerFunctionEnum * This,
9601 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9603 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9604 ICorProfilerFunctionEnum * This,
9605 /* [out] */ ULONG *pcelt);
9607 HRESULT ( STDMETHODCALLTYPE *Next )(
9608 ICorProfilerFunctionEnum * This,
9609 /* [in] */ ULONG celt,
9610 /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
9611 /* [out] */ ULONG *pceltFetched);
9614 } ICorProfilerFunctionEnumVtbl;
9616 interface ICorProfilerFunctionEnum
9618 CONST_VTBL struct ICorProfilerFunctionEnumVtbl *lpVtbl;
9626 #define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \
9627 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9629 #define ICorProfilerFunctionEnum_AddRef(This) \
9630 ( (This)->lpVtbl -> AddRef(This) )
9632 #define ICorProfilerFunctionEnum_Release(This) \
9633 ( (This)->lpVtbl -> Release(This) )
9636 #define ICorProfilerFunctionEnum_Skip(This,celt) \
9637 ( (This)->lpVtbl -> Skip(This,celt) )
9639 #define ICorProfilerFunctionEnum_Reset(This) \
9640 ( (This)->lpVtbl -> Reset(This) )
9642 #define ICorProfilerFunctionEnum_Clone(This,ppEnum) \
9643 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9645 #define ICorProfilerFunctionEnum_GetCount(This,pcelt) \
9646 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9648 #define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \
9649 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
9651 #endif /* COBJMACROS */
9654 #endif /* C style interface */
9659 #endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */
9662 #ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9663 #define __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9665 /* interface ICorProfilerModuleEnum */
9666 /* [local][unique][uuid][object] */
9669 EXTERN_C const IID IID_ICorProfilerModuleEnum;
9671 #if defined(__cplusplus) && !defined(CINTERFACE)
9673 MIDL_INTERFACE("b0266d75-2081-4493-af7f-028ba34db891")
9674 ICorProfilerModuleEnum : public IUnknown
9677 virtual HRESULT STDMETHODCALLTYPE Skip(
9678 /* [in] */ ULONG celt) = 0;
9680 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9682 virtual HRESULT STDMETHODCALLTYPE Clone(
9683 /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
9685 virtual HRESULT STDMETHODCALLTYPE GetCount(
9686 /* [out] */ ULONG *pcelt) = 0;
9688 virtual HRESULT STDMETHODCALLTYPE Next(
9689 /* [in] */ ULONG celt,
9690 /* [length_is][size_is][out] */ ModuleID ids[ ],
9691 /* [out] */ ULONG *pceltFetched) = 0;
9696 #else /* C style interface */
9698 typedef struct ICorProfilerModuleEnumVtbl
9702 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9703 ICorProfilerModuleEnum * This,
9704 /* [in] */ REFIID riid,
9705 /* [annotation][iid_is][out] */
9706 _COM_Outptr_ void **ppvObject);
9708 ULONG ( STDMETHODCALLTYPE *AddRef )(
9709 ICorProfilerModuleEnum * This);
9711 ULONG ( STDMETHODCALLTYPE *Release )(
9712 ICorProfilerModuleEnum * This);
9714 HRESULT ( STDMETHODCALLTYPE *Skip )(
9715 ICorProfilerModuleEnum * This,
9716 /* [in] */ ULONG celt);
9718 HRESULT ( STDMETHODCALLTYPE *Reset )(
9719 ICorProfilerModuleEnum * This);
9721 HRESULT ( STDMETHODCALLTYPE *Clone )(
9722 ICorProfilerModuleEnum * This,
9723 /* [out] */ ICorProfilerModuleEnum **ppEnum);
9725 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9726 ICorProfilerModuleEnum * This,
9727 /* [out] */ ULONG *pcelt);
9729 HRESULT ( STDMETHODCALLTYPE *Next )(
9730 ICorProfilerModuleEnum * This,
9731 /* [in] */ ULONG celt,
9732 /* [length_is][size_is][out] */ ModuleID ids[ ],
9733 /* [out] */ ULONG *pceltFetched);
9736 } ICorProfilerModuleEnumVtbl;
9738 interface ICorProfilerModuleEnum
9740 CONST_VTBL struct ICorProfilerModuleEnumVtbl *lpVtbl;
9748 #define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \
9749 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9751 #define ICorProfilerModuleEnum_AddRef(This) \
9752 ( (This)->lpVtbl -> AddRef(This) )
9754 #define ICorProfilerModuleEnum_Release(This) \
9755 ( (This)->lpVtbl -> Release(This) )
9758 #define ICorProfilerModuleEnum_Skip(This,celt) \
9759 ( (This)->lpVtbl -> Skip(This,celt) )
9761 #define ICorProfilerModuleEnum_Reset(This) \
9762 ( (This)->lpVtbl -> Reset(This) )
9764 #define ICorProfilerModuleEnum_Clone(This,ppEnum) \
9765 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9767 #define ICorProfilerModuleEnum_GetCount(This,pcelt) \
9768 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9770 #define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \
9771 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
9773 #endif /* COBJMACROS */
9776 #endif /* C style interface */
9781 #endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */
9784 #ifndef __IMethodMalloc_INTERFACE_DEFINED__
9785 #define __IMethodMalloc_INTERFACE_DEFINED__
9787 /* interface IMethodMalloc */
9788 /* [local][unique][uuid][object] */
9791 EXTERN_C const IID IID_IMethodMalloc;
9793 #if defined(__cplusplus) && !defined(CINTERFACE)
9795 MIDL_INTERFACE("A0EFB28B-6EE2-4d7b-B983-A75EF7BEEDB8")
9796 IMethodMalloc : public IUnknown
9799 virtual PVOID STDMETHODCALLTYPE Alloc(
9800 /* [in] */ ULONG cb) = 0;
9805 #else /* C style interface */
9807 typedef struct IMethodMallocVtbl
9811 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9812 IMethodMalloc * This,
9813 /* [in] */ REFIID riid,
9814 /* [annotation][iid_is][out] */
9815 _COM_Outptr_ void **ppvObject);
9817 ULONG ( STDMETHODCALLTYPE *AddRef )(
9818 IMethodMalloc * This);
9820 ULONG ( STDMETHODCALLTYPE *Release )(
9821 IMethodMalloc * This);
9823 PVOID ( STDMETHODCALLTYPE *Alloc )(
9824 IMethodMalloc * This,
9825 /* [in] */ ULONG cb);
9828 } IMethodMallocVtbl;
9830 interface IMethodMalloc
9832 CONST_VTBL struct IMethodMallocVtbl *lpVtbl;
9840 #define IMethodMalloc_QueryInterface(This,riid,ppvObject) \
9841 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9843 #define IMethodMalloc_AddRef(This) \
9844 ( (This)->lpVtbl -> AddRef(This) )
9846 #define IMethodMalloc_Release(This) \
9847 ( (This)->lpVtbl -> Release(This) )
9850 #define IMethodMalloc_Alloc(This,cb) \
9851 ( (This)->lpVtbl -> Alloc(This,cb) )
9853 #endif /* COBJMACROS */
9856 #endif /* C style interface */
9861 #endif /* __IMethodMalloc_INTERFACE_DEFINED__ */
9864 #ifndef __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9865 #define __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9867 /* interface ICorProfilerFunctionControl */
9868 /* [local][unique][uuid][object] */
9871 EXTERN_C const IID IID_ICorProfilerFunctionControl;
9873 #if defined(__cplusplus) && !defined(CINTERFACE)
9875 MIDL_INTERFACE("F0963021-E1EA-4732-8581-E01B0BD3C0C6")
9876 ICorProfilerFunctionControl : public IUnknown
9879 virtual HRESULT STDMETHODCALLTYPE SetCodegenFlags(
9880 /* [in] */ DWORD flags) = 0;
9882 virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody(
9883 /* [in] */ ULONG cbNewILMethodHeader,
9884 /* [size_is][in] */ LPCBYTE pbNewILMethodHeader) = 0;
9886 virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap(
9887 /* [in] */ ULONG cILMapEntries,
9888 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]) = 0;
9893 #else /* C style interface */
9895 typedef struct ICorProfilerFunctionControlVtbl
9899 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9900 ICorProfilerFunctionControl * This,
9901 /* [in] */ REFIID riid,
9902 /* [annotation][iid_is][out] */
9903 _COM_Outptr_ void **ppvObject);
9905 ULONG ( STDMETHODCALLTYPE *AddRef )(
9906 ICorProfilerFunctionControl * This);
9908 ULONG ( STDMETHODCALLTYPE *Release )(
9909 ICorProfilerFunctionControl * This);
9911 HRESULT ( STDMETHODCALLTYPE *SetCodegenFlags )(
9912 ICorProfilerFunctionControl * This,
9913 /* [in] */ DWORD flags);
9915 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
9916 ICorProfilerFunctionControl * This,
9917 /* [in] */ ULONG cbNewILMethodHeader,
9918 /* [size_is][in] */ LPCBYTE pbNewILMethodHeader);
9920 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
9921 ICorProfilerFunctionControl * This,
9922 /* [in] */ ULONG cILMapEntries,
9923 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
9926 } ICorProfilerFunctionControlVtbl;
9928 interface ICorProfilerFunctionControl
9930 CONST_VTBL struct ICorProfilerFunctionControlVtbl *lpVtbl;
9938 #define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \
9939 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9941 #define ICorProfilerFunctionControl_AddRef(This) \
9942 ( (This)->lpVtbl -> AddRef(This) )
9944 #define ICorProfilerFunctionControl_Release(This) \
9945 ( (This)->lpVtbl -> Release(This) )
9948 #define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \
9949 ( (This)->lpVtbl -> SetCodegenFlags(This,flags) )
9951 #define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \
9952 ( (This)->lpVtbl -> SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) )
9954 #define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \
9955 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) )
9957 #endif /* COBJMACROS */
9960 #endif /* C style interface */
9965 #endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */
9968 #ifndef __ICorProfilerInfo4_INTERFACE_DEFINED__
9969 #define __ICorProfilerInfo4_INTERFACE_DEFINED__
9971 /* interface ICorProfilerInfo4 */
9972 /* [local][unique][uuid][object] */
9975 EXTERN_C const IID IID_ICorProfilerInfo4;
9977 #if defined(__cplusplus) && !defined(CINTERFACE)
9979 MIDL_INTERFACE("0d8fdcaa-6257-47bf-b1bf-94dac88466ee")
9980 ICorProfilerInfo4 : public ICorProfilerInfo3
9983 virtual HRESULT STDMETHODCALLTYPE EnumThreads(
9984 /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
9986 virtual HRESULT STDMETHODCALLTYPE InitializeCurrentThread( void) = 0;
9988 virtual HRESULT STDMETHODCALLTYPE RequestReJIT(
9989 /* [in] */ ULONG cFunctions,
9990 /* [size_is][in] */ ModuleID moduleIds[ ],
9991 /* [size_is][in] */ mdMethodDef methodIds[ ]) = 0;
9993 virtual HRESULT STDMETHODCALLTYPE RequestRevert(
9994 /* [in] */ ULONG cFunctions,
9995 /* [size_is][in] */ ModuleID moduleIds[ ],
9996 /* [size_is][in] */ mdMethodDef methodIds[ ],
9997 /* [size_is][out] */ HRESULT status[ ]) = 0;
9999 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo3(
10000 /* [in] */ FunctionID functionID,
10001 /* [in] */ ReJITID reJitId,
10002 /* [in] */ ULONG32 cCodeInfos,
10003 /* [out] */ ULONG32 *pcCodeInfos,
10004 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]) = 0;
10006 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP2(
10007 /* [in] */ LPCBYTE ip,
10008 /* [out] */ FunctionID *pFunctionId,
10009 /* [out] */ ReJITID *pReJitId) = 0;
10011 virtual HRESULT STDMETHODCALLTYPE GetReJITIDs(
10012 /* [in] */ FunctionID functionId,
10013 /* [in] */ ULONG cReJitIds,
10014 /* [out] */ ULONG *pcReJitIds,
10015 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]) = 0;
10017 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping2(
10018 /* [in] */ FunctionID functionId,
10019 /* [in] */ ReJITID reJitId,
10020 /* [in] */ ULONG32 cMap,
10021 /* [out] */ ULONG32 *pcMap,
10022 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
10024 virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions2(
10025 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
10027 virtual HRESULT STDMETHODCALLTYPE GetObjectSize2(
10028 /* [in] */ ObjectID objectId,
10029 /* [out] */ SIZE_T *pcSize) = 0;
10034 #else /* C style interface */
10036 typedef struct ICorProfilerInfo4Vtbl
10040 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10041 ICorProfilerInfo4 * This,
10042 /* [in] */ REFIID riid,
10043 /* [annotation][iid_is][out] */
10044 _COM_Outptr_ void **ppvObject);
10046 ULONG ( STDMETHODCALLTYPE *AddRef )(
10047 ICorProfilerInfo4 * This);
10049 ULONG ( STDMETHODCALLTYPE *Release )(
10050 ICorProfilerInfo4 * This);
10052 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
10053 ICorProfilerInfo4 * This,
10054 /* [in] */ ObjectID objectId,
10055 /* [out] */ ClassID *pClassId);
10057 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
10058 ICorProfilerInfo4 * This,
10059 /* [in] */ ModuleID moduleId,
10060 /* [in] */ mdTypeDef typeDef,
10061 /* [out] */ ClassID *pClassId);
10063 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
10064 ICorProfilerInfo4 * This,
10065 /* [in] */ FunctionID functionId,
10066 /* [out] */ LPCBYTE *pStart,
10067 /* [out] */ ULONG *pcSize);
10069 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
10070 ICorProfilerInfo4 * This,
10071 /* [out] */ DWORD *pdwEvents);
10073 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
10074 ICorProfilerInfo4 * This,
10075 /* [in] */ LPCBYTE ip,
10076 /* [out] */ FunctionID *pFunctionId);
10078 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
10079 ICorProfilerInfo4 * This,
10080 /* [in] */ ModuleID moduleId,
10081 /* [in] */ mdToken token,
10082 /* [out] */ FunctionID *pFunctionId);
10084 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
10085 ICorProfilerInfo4 * This,
10086 /* [in] */ ThreadID threadId,
10087 /* [out] */ HANDLE *phThread);
10089 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
10090 ICorProfilerInfo4 * This,
10091 /* [in] */ ObjectID objectId,
10092 /* [out] */ ULONG *pcSize);
10094 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
10095 ICorProfilerInfo4 * This,
10096 /* [in] */ ClassID classId,
10097 /* [out] */ CorElementType *pBaseElemType,
10098 /* [out] */ ClassID *pBaseClassId,
10099 /* [out] */ ULONG *pcRank);
10101 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
10102 ICorProfilerInfo4 * This,
10103 /* [in] */ ThreadID threadId,
10104 /* [out] */ DWORD *pdwWin32ThreadId);
10106 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
10107 ICorProfilerInfo4 * This,
10108 /* [out] */ ThreadID *pThreadId);
10110 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
10111 ICorProfilerInfo4 * This,
10112 /* [in] */ ClassID classId,
10113 /* [out] */ ModuleID *pModuleId,
10114 /* [out] */ mdTypeDef *pTypeDefToken);
10116 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
10117 ICorProfilerInfo4 * This,
10118 /* [in] */ FunctionID functionId,
10119 /* [out] */ ClassID *pClassId,
10120 /* [out] */ ModuleID *pModuleId,
10121 /* [out] */ mdToken *pToken);
10123 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
10124 ICorProfilerInfo4 * This,
10125 /* [in] */ DWORD dwEvents);
10127 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
10128 ICorProfilerInfo4 * This,
10129 /* [in] */ FunctionEnter *pFuncEnter,
10130 /* [in] */ FunctionLeave *pFuncLeave,
10131 /* [in] */ FunctionTailcall *pFuncTailcall);
10133 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
10134 ICorProfilerInfo4 * This,
10135 /* [in] */ FunctionIDMapper *pFunc);
10137 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
10138 ICorProfilerInfo4 * This,
10139 /* [in] */ FunctionID functionId,
10140 /* [in] */ REFIID riid,
10141 /* [out] */ IUnknown **ppImport,
10142 /* [out] */ mdToken *pToken);
10144 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
10145 ICorProfilerInfo4 * This,
10146 /* [in] */ ModuleID moduleId,
10147 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10148 /* [in] */ ULONG cchName,
10149 /* [out] */ ULONG *pcchName,
10150 /* [annotation][out] */
10151 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10152 /* [out] */ AssemblyID *pAssemblyId);
10154 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
10155 ICorProfilerInfo4 * This,
10156 /* [in] */ ModuleID moduleId,
10157 /* [in] */ DWORD dwOpenFlags,
10158 /* [in] */ REFIID riid,
10159 /* [out] */ IUnknown **ppOut);
10161 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
10162 ICorProfilerInfo4 * This,
10163 /* [in] */ ModuleID moduleId,
10164 /* [in] */ mdMethodDef methodId,
10165 /* [out] */ LPCBYTE *ppMethodHeader,
10166 /* [out] */ ULONG *pcbMethodSize);
10168 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
10169 ICorProfilerInfo4 * This,
10170 /* [in] */ ModuleID moduleId,
10171 /* [out] */ IMethodMalloc **ppMalloc);
10173 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
10174 ICorProfilerInfo4 * This,
10175 /* [in] */ ModuleID moduleId,
10176 /* [in] */ mdMethodDef methodid,
10177 /* [in] */ LPCBYTE pbNewILMethodHeader);
10179 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
10180 ICorProfilerInfo4 * This,
10181 /* [in] */ AppDomainID appDomainId,
10182 /* [in] */ ULONG cchName,
10183 /* [out] */ ULONG *pcchName,
10184 /* [annotation][out] */
10185 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10186 /* [out] */ ProcessID *pProcessId);
10188 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
10189 ICorProfilerInfo4 * This,
10190 /* [in] */ AssemblyID assemblyId,
10191 /* [in] */ ULONG cchName,
10192 /* [out] */ ULONG *pcchName,
10193 /* [annotation][out] */
10194 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10195 /* [out] */ AppDomainID *pAppDomainId,
10196 /* [out] */ ModuleID *pModuleId);
10198 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
10199 ICorProfilerInfo4 * This,
10200 /* [in] */ FunctionID functionId);
10202 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
10203 ICorProfilerInfo4 * This);
10205 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
10206 ICorProfilerInfo4 * This,
10207 /* [in] */ FunctionID functionId,
10208 /* [in] */ BOOL fStartJit,
10209 /* [in] */ ULONG cILMapEntries,
10210 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
10212 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
10213 ICorProfilerInfo4 * This,
10214 /* [out] */ IUnknown **ppicd);
10216 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
10217 ICorProfilerInfo4 * This,
10218 /* [out] */ IUnknown **ppicd);
10220 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
10221 ICorProfilerInfo4 * This,
10222 /* [in] */ ThreadID threadId,
10223 /* [out] */ ContextID *pContextId);
10225 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
10226 ICorProfilerInfo4 * This,
10227 /* [in] */ BOOL fThisThreadOnly,
10228 /* [out] */ DWORD *pdwProfilerContext);
10230 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
10231 ICorProfilerInfo4 * This,
10232 /* [in] */ DWORD dwProfilerContext);
10234 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
10235 ICorProfilerInfo4 * This,
10236 /* [in] */ FunctionID functionId,
10237 /* [in] */ ULONG32 cMap,
10238 /* [out] */ ULONG32 *pcMap,
10239 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
10241 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
10242 ICorProfilerInfo4 * This,
10243 /* [in] */ ThreadID thread,
10244 /* [in] */ StackSnapshotCallback *callback,
10245 /* [in] */ ULONG32 infoFlags,
10246 /* [in] */ void *clientData,
10247 /* [size_is][in] */ BYTE context[ ],
10248 /* [in] */ ULONG32 contextSize);
10250 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
10251 ICorProfilerInfo4 * This,
10252 /* [in] */ FunctionEnter2 *pFuncEnter,
10253 /* [in] */ FunctionLeave2 *pFuncLeave,
10254 /* [in] */ FunctionTailcall2 *pFuncTailcall);
10256 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
10257 ICorProfilerInfo4 * This,
10258 /* [in] */ FunctionID funcId,
10259 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
10260 /* [out] */ ClassID *pClassId,
10261 /* [out] */ ModuleID *pModuleId,
10262 /* [out] */ mdToken *pToken,
10263 /* [in] */ ULONG32 cTypeArgs,
10264 /* [out] */ ULONG32 *pcTypeArgs,
10265 /* [out] */ ClassID typeArgs[ ]);
10267 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
10268 ICorProfilerInfo4 * This,
10269 /* [out] */ ULONG *pBufferLengthOffset,
10270 /* [out] */ ULONG *pStringLengthOffset,
10271 /* [out] */ ULONG *pBufferOffset);
10273 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
10274 ICorProfilerInfo4 * This,
10275 /* [in] */ ClassID classID,
10276 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
10277 /* [in] */ ULONG cFieldOffset,
10278 /* [out] */ ULONG *pcFieldOffset,
10279 /* [out] */ ULONG *pulClassSize);
10281 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
10282 ICorProfilerInfo4 * This,
10283 /* [in] */ ClassID classId,
10284 /* [out] */ ModuleID *pModuleId,
10285 /* [out] */ mdTypeDef *pTypeDefToken,
10286 /* [out] */ ClassID *pParentClassId,
10287 /* [in] */ ULONG32 cNumTypeArgs,
10288 /* [out] */ ULONG32 *pcNumTypeArgs,
10289 /* [out] */ ClassID typeArgs[ ]);
10291 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
10292 ICorProfilerInfo4 * This,
10293 /* [in] */ FunctionID functionID,
10294 /* [in] */ ULONG32 cCodeInfos,
10295 /* [out] */ ULONG32 *pcCodeInfos,
10296 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
10298 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
10299 ICorProfilerInfo4 * This,
10300 /* [in] */ ModuleID moduleID,
10301 /* [in] */ mdTypeDef typeDef,
10302 /* [in] */ ULONG32 cTypeArgs,
10303 /* [size_is][in] */ ClassID typeArgs[ ],
10304 /* [out] */ ClassID *pClassID);
10306 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
10307 ICorProfilerInfo4 * This,
10308 /* [in] */ ModuleID moduleID,
10309 /* [in] */ mdMethodDef funcDef,
10310 /* [in] */ ClassID classId,
10311 /* [in] */ ULONG32 cTypeArgs,
10312 /* [size_is][in] */ ClassID typeArgs[ ],
10313 /* [out] */ FunctionID *pFunctionID);
10315 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
10316 ICorProfilerInfo4 * This,
10317 /* [in] */ ModuleID moduleID,
10318 /* [out] */ ICorProfilerObjectEnum **ppEnum);
10320 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
10321 ICorProfilerInfo4 * This,
10322 /* [in] */ ObjectID objectId,
10323 /* [in] */ ULONG32 cDimensions,
10324 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
10325 /* [size_is][out] */ int pDimensionLowerBounds[ ],
10326 /* [out] */ BYTE **ppData);
10328 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
10329 ICorProfilerInfo4 * This,
10330 /* [in] */ ClassID classId,
10331 /* [out] */ ULONG32 *pBufferOffset);
10333 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
10334 ICorProfilerInfo4 * This,
10335 /* [in] */ ThreadID threadId,
10336 /* [out] */ AppDomainID *pAppDomainId);
10338 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
10339 ICorProfilerInfo4 * This,
10340 /* [in] */ ClassID classId,
10341 /* [in] */ mdFieldDef fieldToken,
10342 /* [out] */ void **ppAddress);
10344 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
10345 ICorProfilerInfo4 * This,
10346 /* [in] */ ClassID classId,
10347 /* [in] */ mdFieldDef fieldToken,
10348 /* [in] */ AppDomainID appDomainId,
10349 /* [out] */ void **ppAddress);
10351 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
10352 ICorProfilerInfo4 * This,
10353 /* [in] */ ClassID classId,
10354 /* [in] */ mdFieldDef fieldToken,
10355 /* [in] */ ThreadID threadId,
10356 /* [out] */ void **ppAddress);
10358 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
10359 ICorProfilerInfo4 * This,
10360 /* [in] */ ClassID classId,
10361 /* [in] */ mdFieldDef fieldToken,
10362 /* [in] */ ContextID contextId,
10363 /* [out] */ void **ppAddress);
10365 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
10366 ICorProfilerInfo4 * This,
10367 /* [in] */ ClassID classId,
10368 /* [in] */ mdFieldDef fieldToken,
10369 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
10371 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
10372 ICorProfilerInfo4 * This,
10373 /* [in] */ ULONG cObjectRanges,
10374 /* [out] */ ULONG *pcObjectRanges,
10375 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
10377 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
10378 ICorProfilerInfo4 * This,
10379 /* [in] */ ObjectID objectId,
10380 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
10382 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
10383 ICorProfilerInfo4 * This,
10384 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
10386 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
10387 ICorProfilerInfo4 * This,
10388 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10390 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
10391 ICorProfilerInfo4 * This,
10392 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
10394 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
10395 ICorProfilerInfo4 * This,
10396 /* [in] */ FunctionIDMapper2 *pFunc,
10397 /* [in] */ void *clientData);
10399 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
10400 ICorProfilerInfo4 * This,
10401 /* [out] */ ULONG *pStringLengthOffset,
10402 /* [out] */ ULONG *pBufferOffset);
10404 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
10405 ICorProfilerInfo4 * This,
10406 /* [in] */ FunctionEnter3 *pFuncEnter3,
10407 /* [in] */ FunctionLeave3 *pFuncLeave3,
10408 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
10410 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
10411 ICorProfilerInfo4 * This,
10412 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
10413 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
10414 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
10416 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
10417 ICorProfilerInfo4 * This,
10418 /* [in] */ FunctionID functionId,
10419 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10420 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10421 /* [out][in] */ ULONG *pcbArgumentInfo,
10422 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
10424 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
10425 ICorProfilerInfo4 * This,
10426 /* [in] */ FunctionID functionId,
10427 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10428 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10429 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
10431 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
10432 ICorProfilerInfo4 * This,
10433 /* [in] */ FunctionID functionId,
10434 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10435 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
10437 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
10438 ICorProfilerInfo4 * This,
10439 /* [out] */ ICorProfilerModuleEnum **ppEnum);
10441 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
10442 ICorProfilerInfo4 * This,
10443 /* [out] */ USHORT *pClrInstanceId,
10444 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
10445 /* [out] */ USHORT *pMajorVersion,
10446 /* [out] */ USHORT *pMinorVersion,
10447 /* [out] */ USHORT *pBuildNumber,
10448 /* [out] */ USHORT *pQFEVersion,
10449 /* [in] */ ULONG cchVersionString,
10450 /* [out] */ ULONG *pcchVersionString,
10451 /* [annotation][out] */
10452 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
10454 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
10455 ICorProfilerInfo4 * This,
10456 /* [in] */ ClassID classId,
10457 /* [in] */ mdFieldDef fieldToken,
10458 /* [in] */ AppDomainID appDomainId,
10459 /* [in] */ ThreadID threadId,
10460 /* [out] */ void **ppAddress);
10462 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
10463 ICorProfilerInfo4 * This,
10464 /* [in] */ ModuleID moduleId,
10465 /* [in] */ ULONG32 cAppDomainIds,
10466 /* [out] */ ULONG32 *pcAppDomainIds,
10467 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
10469 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
10470 ICorProfilerInfo4 * This,
10471 /* [in] */ ModuleID moduleId,
10472 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10473 /* [in] */ ULONG cchName,
10474 /* [out] */ ULONG *pcchName,
10475 /* [annotation][out] */
10476 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10477 /* [out] */ AssemblyID *pAssemblyId,
10478 /* [out] */ DWORD *pdwModuleFlags);
10480 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
10481 ICorProfilerInfo4 * This,
10482 /* [out] */ ICorProfilerThreadEnum **ppEnum);
10484 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
10485 ICorProfilerInfo4 * This);
10487 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
10488 ICorProfilerInfo4 * This,
10489 /* [in] */ ULONG cFunctions,
10490 /* [size_is][in] */ ModuleID moduleIds[ ],
10491 /* [size_is][in] */ mdMethodDef methodIds[ ]);
10493 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
10494 ICorProfilerInfo4 * This,
10495 /* [in] */ ULONG cFunctions,
10496 /* [size_is][in] */ ModuleID moduleIds[ ],
10497 /* [size_is][in] */ mdMethodDef methodIds[ ],
10498 /* [size_is][out] */ HRESULT status[ ]);
10500 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
10501 ICorProfilerInfo4 * This,
10502 /* [in] */ FunctionID functionID,
10503 /* [in] */ ReJITID reJitId,
10504 /* [in] */ ULONG32 cCodeInfos,
10505 /* [out] */ ULONG32 *pcCodeInfos,
10506 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
10508 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
10509 ICorProfilerInfo4 * This,
10510 /* [in] */ LPCBYTE ip,
10511 /* [out] */ FunctionID *pFunctionId,
10512 /* [out] */ ReJITID *pReJitId);
10514 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
10515 ICorProfilerInfo4 * This,
10516 /* [in] */ FunctionID functionId,
10517 /* [in] */ ULONG cReJitIds,
10518 /* [out] */ ULONG *pcReJitIds,
10519 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
10521 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
10522 ICorProfilerInfo4 * This,
10523 /* [in] */ FunctionID functionId,
10524 /* [in] */ ReJITID reJitId,
10525 /* [in] */ ULONG32 cMap,
10526 /* [out] */ ULONG32 *pcMap,
10527 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
10529 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
10530 ICorProfilerInfo4 * This,
10531 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10533 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
10534 ICorProfilerInfo4 * This,
10535 /* [in] */ ObjectID objectId,
10536 /* [out] */ SIZE_T *pcSize);
10539 } ICorProfilerInfo4Vtbl;
10541 interface ICorProfilerInfo4
10543 CONST_VTBL struct ICorProfilerInfo4Vtbl *lpVtbl;
10551 #define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \
10552 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10554 #define ICorProfilerInfo4_AddRef(This) \
10555 ( (This)->lpVtbl -> AddRef(This) )
10557 #define ICorProfilerInfo4_Release(This) \
10558 ( (This)->lpVtbl -> Release(This) )
10561 #define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \
10562 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
10564 #define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \
10565 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
10567 #define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \
10568 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
10570 #define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \
10571 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
10573 #define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \
10574 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
10576 #define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
10577 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
10579 #define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \
10580 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
10582 #define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \
10583 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
10585 #define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
10586 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
10588 #define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
10589 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
10591 #define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \
10592 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
10594 #define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
10595 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
10597 #define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
10598 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
10600 #define ICorProfilerInfo4_SetEventMask(This,dwEvents) \
10601 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
10603 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
10604 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
10606 #define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \
10607 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
10609 #define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
10610 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
10612 #define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
10613 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
10615 #define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
10616 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
10618 #define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
10619 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
10621 #define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
10622 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
10624 #define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
10625 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
10627 #define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
10628 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
10630 #define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
10631 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
10633 #define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \
10634 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
10636 #define ICorProfilerInfo4_ForceGC(This) \
10637 ( (This)->lpVtbl -> ForceGC(This) )
10639 #define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
10640 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
10642 #define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \
10643 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
10645 #define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \
10646 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
10648 #define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \
10649 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
10651 #define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
10652 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
10654 #define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \
10655 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
10657 #define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
10658 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
10661 #define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
10662 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
10664 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
10665 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
10667 #define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
10668 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
10670 #define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
10671 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
10673 #define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
10674 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
10676 #define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
10677 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
10679 #define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
10680 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
10682 #define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
10683 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
10685 #define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
10686 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
10688 #define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
10689 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
10691 #define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
10692 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
10694 #define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \
10695 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
10697 #define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \
10698 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
10700 #define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
10701 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
10703 #define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
10704 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
10706 #define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
10707 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
10709 #define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
10710 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
10712 #define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
10713 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
10715 #define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
10716 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
10718 #define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \
10719 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
10721 #define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \
10722 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
10725 #define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \
10726 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
10728 #define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
10729 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
10731 #define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \
10732 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
10734 #define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
10735 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
10737 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
10738 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
10740 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
10741 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
10743 #define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
10744 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
10746 #define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
10747 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
10749 #define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
10750 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
10752 #define ICorProfilerInfo4_EnumModules(This,ppEnum) \
10753 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
10755 #define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
10756 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
10758 #define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
10759 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
10761 #define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
10762 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
10764 #define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
10765 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
10768 #define ICorProfilerInfo4_EnumThreads(This,ppEnum) \
10769 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
10771 #define ICorProfilerInfo4_InitializeCurrentThread(This) \
10772 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
10774 #define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
10775 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
10777 #define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
10778 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
10780 #define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
10781 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
10783 #define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
10784 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
10786 #define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
10787 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
10789 #define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
10790 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
10792 #define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \
10793 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
10795 #define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \
10796 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
10798 #endif /* COBJMACROS */
10801 #endif /* C style interface */
10806 #endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */
10809 #ifndef __ICorProfilerInfo5_INTERFACE_DEFINED__
10810 #define __ICorProfilerInfo5_INTERFACE_DEFINED__
10812 /* interface ICorProfilerInfo5 */
10813 /* [local][unique][uuid][object] */
10816 EXTERN_C const IID IID_ICorProfilerInfo5;
10818 #if defined(__cplusplus) && !defined(CINTERFACE)
10820 MIDL_INTERFACE("07602928-CE38-4B83-81E7-74ADAF781214")
10821 ICorProfilerInfo5 : public ICorProfilerInfo4
10824 virtual HRESULT STDMETHODCALLTYPE GetEventMask2(
10825 /* [out] */ DWORD *pdwEventsLow,
10826 /* [out] */ DWORD *pdwEventsHigh) = 0;
10828 virtual HRESULT STDMETHODCALLTYPE SetEventMask2(
10829 /* [in] */ DWORD dwEventsLow,
10830 /* [in] */ DWORD dwEventsHigh) = 0;
10835 #else /* C style interface */
10837 typedef struct ICorProfilerInfo5Vtbl
10841 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10842 ICorProfilerInfo5 * This,
10843 /* [in] */ REFIID riid,
10844 /* [annotation][iid_is][out] */
10845 _COM_Outptr_ void **ppvObject);
10847 ULONG ( STDMETHODCALLTYPE *AddRef )(
10848 ICorProfilerInfo5 * This);
10850 ULONG ( STDMETHODCALLTYPE *Release )(
10851 ICorProfilerInfo5 * This);
10853 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
10854 ICorProfilerInfo5 * This,
10855 /* [in] */ ObjectID objectId,
10856 /* [out] */ ClassID *pClassId);
10858 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
10859 ICorProfilerInfo5 * This,
10860 /* [in] */ ModuleID moduleId,
10861 /* [in] */ mdTypeDef typeDef,
10862 /* [out] */ ClassID *pClassId);
10864 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
10865 ICorProfilerInfo5 * This,
10866 /* [in] */ FunctionID functionId,
10867 /* [out] */ LPCBYTE *pStart,
10868 /* [out] */ ULONG *pcSize);
10870 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
10871 ICorProfilerInfo5 * This,
10872 /* [out] */ DWORD *pdwEvents);
10874 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
10875 ICorProfilerInfo5 * This,
10876 /* [in] */ LPCBYTE ip,
10877 /* [out] */ FunctionID *pFunctionId);
10879 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
10880 ICorProfilerInfo5 * This,
10881 /* [in] */ ModuleID moduleId,
10882 /* [in] */ mdToken token,
10883 /* [out] */ FunctionID *pFunctionId);
10885 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
10886 ICorProfilerInfo5 * This,
10887 /* [in] */ ThreadID threadId,
10888 /* [out] */ HANDLE *phThread);
10890 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
10891 ICorProfilerInfo5 * This,
10892 /* [in] */ ObjectID objectId,
10893 /* [out] */ ULONG *pcSize);
10895 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
10896 ICorProfilerInfo5 * This,
10897 /* [in] */ ClassID classId,
10898 /* [out] */ CorElementType *pBaseElemType,
10899 /* [out] */ ClassID *pBaseClassId,
10900 /* [out] */ ULONG *pcRank);
10902 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
10903 ICorProfilerInfo5 * This,
10904 /* [in] */ ThreadID threadId,
10905 /* [out] */ DWORD *pdwWin32ThreadId);
10907 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
10908 ICorProfilerInfo5 * This,
10909 /* [out] */ ThreadID *pThreadId);
10911 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
10912 ICorProfilerInfo5 * This,
10913 /* [in] */ ClassID classId,
10914 /* [out] */ ModuleID *pModuleId,
10915 /* [out] */ mdTypeDef *pTypeDefToken);
10917 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
10918 ICorProfilerInfo5 * This,
10919 /* [in] */ FunctionID functionId,
10920 /* [out] */ ClassID *pClassId,
10921 /* [out] */ ModuleID *pModuleId,
10922 /* [out] */ mdToken *pToken);
10924 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
10925 ICorProfilerInfo5 * This,
10926 /* [in] */ DWORD dwEvents);
10928 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
10929 ICorProfilerInfo5 * This,
10930 /* [in] */ FunctionEnter *pFuncEnter,
10931 /* [in] */ FunctionLeave *pFuncLeave,
10932 /* [in] */ FunctionTailcall *pFuncTailcall);
10934 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
10935 ICorProfilerInfo5 * This,
10936 /* [in] */ FunctionIDMapper *pFunc);
10938 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
10939 ICorProfilerInfo5 * This,
10940 /* [in] */ FunctionID functionId,
10941 /* [in] */ REFIID riid,
10942 /* [out] */ IUnknown **ppImport,
10943 /* [out] */ mdToken *pToken);
10945 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
10946 ICorProfilerInfo5 * This,
10947 /* [in] */ ModuleID moduleId,
10948 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10949 /* [in] */ ULONG cchName,
10950 /* [out] */ ULONG *pcchName,
10951 /* [annotation][out] */
10952 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10953 /* [out] */ AssemblyID *pAssemblyId);
10955 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
10956 ICorProfilerInfo5 * This,
10957 /* [in] */ ModuleID moduleId,
10958 /* [in] */ DWORD dwOpenFlags,
10959 /* [in] */ REFIID riid,
10960 /* [out] */ IUnknown **ppOut);
10962 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
10963 ICorProfilerInfo5 * This,
10964 /* [in] */ ModuleID moduleId,
10965 /* [in] */ mdMethodDef methodId,
10966 /* [out] */ LPCBYTE *ppMethodHeader,
10967 /* [out] */ ULONG *pcbMethodSize);
10969 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
10970 ICorProfilerInfo5 * This,
10971 /* [in] */ ModuleID moduleId,
10972 /* [out] */ IMethodMalloc **ppMalloc);
10974 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
10975 ICorProfilerInfo5 * This,
10976 /* [in] */ ModuleID moduleId,
10977 /* [in] */ mdMethodDef methodid,
10978 /* [in] */ LPCBYTE pbNewILMethodHeader);
10980 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
10981 ICorProfilerInfo5 * This,
10982 /* [in] */ AppDomainID appDomainId,
10983 /* [in] */ ULONG cchName,
10984 /* [out] */ ULONG *pcchName,
10985 /* [annotation][out] */
10986 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10987 /* [out] */ ProcessID *pProcessId);
10989 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
10990 ICorProfilerInfo5 * This,
10991 /* [in] */ AssemblyID assemblyId,
10992 /* [in] */ ULONG cchName,
10993 /* [out] */ ULONG *pcchName,
10994 /* [annotation][out] */
10995 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10996 /* [out] */ AppDomainID *pAppDomainId,
10997 /* [out] */ ModuleID *pModuleId);
10999 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
11000 ICorProfilerInfo5 * This,
11001 /* [in] */ FunctionID functionId);
11003 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
11004 ICorProfilerInfo5 * This);
11006 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
11007 ICorProfilerInfo5 * This,
11008 /* [in] */ FunctionID functionId,
11009 /* [in] */ BOOL fStartJit,
11010 /* [in] */ ULONG cILMapEntries,
11011 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
11013 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
11014 ICorProfilerInfo5 * This,
11015 /* [out] */ IUnknown **ppicd);
11017 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
11018 ICorProfilerInfo5 * This,
11019 /* [out] */ IUnknown **ppicd);
11021 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
11022 ICorProfilerInfo5 * This,
11023 /* [in] */ ThreadID threadId,
11024 /* [out] */ ContextID *pContextId);
11026 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
11027 ICorProfilerInfo5 * This,
11028 /* [in] */ BOOL fThisThreadOnly,
11029 /* [out] */ DWORD *pdwProfilerContext);
11031 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
11032 ICorProfilerInfo5 * This,
11033 /* [in] */ DWORD dwProfilerContext);
11035 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
11036 ICorProfilerInfo5 * This,
11037 /* [in] */ FunctionID functionId,
11038 /* [in] */ ULONG32 cMap,
11039 /* [out] */ ULONG32 *pcMap,
11040 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11042 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
11043 ICorProfilerInfo5 * This,
11044 /* [in] */ ThreadID thread,
11045 /* [in] */ StackSnapshotCallback *callback,
11046 /* [in] */ ULONG32 infoFlags,
11047 /* [in] */ void *clientData,
11048 /* [size_is][in] */ BYTE context[ ],
11049 /* [in] */ ULONG32 contextSize);
11051 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
11052 ICorProfilerInfo5 * This,
11053 /* [in] */ FunctionEnter2 *pFuncEnter,
11054 /* [in] */ FunctionLeave2 *pFuncLeave,
11055 /* [in] */ FunctionTailcall2 *pFuncTailcall);
11057 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
11058 ICorProfilerInfo5 * This,
11059 /* [in] */ FunctionID funcId,
11060 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11061 /* [out] */ ClassID *pClassId,
11062 /* [out] */ ModuleID *pModuleId,
11063 /* [out] */ mdToken *pToken,
11064 /* [in] */ ULONG32 cTypeArgs,
11065 /* [out] */ ULONG32 *pcTypeArgs,
11066 /* [out] */ ClassID typeArgs[ ]);
11068 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
11069 ICorProfilerInfo5 * This,
11070 /* [out] */ ULONG *pBufferLengthOffset,
11071 /* [out] */ ULONG *pStringLengthOffset,
11072 /* [out] */ ULONG *pBufferOffset);
11074 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
11075 ICorProfilerInfo5 * This,
11076 /* [in] */ ClassID classID,
11077 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
11078 /* [in] */ ULONG cFieldOffset,
11079 /* [out] */ ULONG *pcFieldOffset,
11080 /* [out] */ ULONG *pulClassSize);
11082 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
11083 ICorProfilerInfo5 * This,
11084 /* [in] */ ClassID classId,
11085 /* [out] */ ModuleID *pModuleId,
11086 /* [out] */ mdTypeDef *pTypeDefToken,
11087 /* [out] */ ClassID *pParentClassId,
11088 /* [in] */ ULONG32 cNumTypeArgs,
11089 /* [out] */ ULONG32 *pcNumTypeArgs,
11090 /* [out] */ ClassID typeArgs[ ]);
11092 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
11093 ICorProfilerInfo5 * This,
11094 /* [in] */ FunctionID functionID,
11095 /* [in] */ ULONG32 cCodeInfos,
11096 /* [out] */ ULONG32 *pcCodeInfos,
11097 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11099 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
11100 ICorProfilerInfo5 * This,
11101 /* [in] */ ModuleID moduleID,
11102 /* [in] */ mdTypeDef typeDef,
11103 /* [in] */ ULONG32 cTypeArgs,
11104 /* [size_is][in] */ ClassID typeArgs[ ],
11105 /* [out] */ ClassID *pClassID);
11107 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
11108 ICorProfilerInfo5 * This,
11109 /* [in] */ ModuleID moduleID,
11110 /* [in] */ mdMethodDef funcDef,
11111 /* [in] */ ClassID classId,
11112 /* [in] */ ULONG32 cTypeArgs,
11113 /* [size_is][in] */ ClassID typeArgs[ ],
11114 /* [out] */ FunctionID *pFunctionID);
11116 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
11117 ICorProfilerInfo5 * This,
11118 /* [in] */ ModuleID moduleID,
11119 /* [out] */ ICorProfilerObjectEnum **ppEnum);
11121 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
11122 ICorProfilerInfo5 * This,
11123 /* [in] */ ObjectID objectId,
11124 /* [in] */ ULONG32 cDimensions,
11125 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
11126 /* [size_is][out] */ int pDimensionLowerBounds[ ],
11127 /* [out] */ BYTE **ppData);
11129 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
11130 ICorProfilerInfo5 * This,
11131 /* [in] */ ClassID classId,
11132 /* [out] */ ULONG32 *pBufferOffset);
11134 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
11135 ICorProfilerInfo5 * This,
11136 /* [in] */ ThreadID threadId,
11137 /* [out] */ AppDomainID *pAppDomainId);
11139 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
11140 ICorProfilerInfo5 * This,
11141 /* [in] */ ClassID classId,
11142 /* [in] */ mdFieldDef fieldToken,
11143 /* [out] */ void **ppAddress);
11145 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
11146 ICorProfilerInfo5 * This,
11147 /* [in] */ ClassID classId,
11148 /* [in] */ mdFieldDef fieldToken,
11149 /* [in] */ AppDomainID appDomainId,
11150 /* [out] */ void **ppAddress);
11152 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
11153 ICorProfilerInfo5 * This,
11154 /* [in] */ ClassID classId,
11155 /* [in] */ mdFieldDef fieldToken,
11156 /* [in] */ ThreadID threadId,
11157 /* [out] */ void **ppAddress);
11159 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
11160 ICorProfilerInfo5 * This,
11161 /* [in] */ ClassID classId,
11162 /* [in] */ mdFieldDef fieldToken,
11163 /* [in] */ ContextID contextId,
11164 /* [out] */ void **ppAddress);
11166 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
11167 ICorProfilerInfo5 * This,
11168 /* [in] */ ClassID classId,
11169 /* [in] */ mdFieldDef fieldToken,
11170 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
11172 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
11173 ICorProfilerInfo5 * This,
11174 /* [in] */ ULONG cObjectRanges,
11175 /* [out] */ ULONG *pcObjectRanges,
11176 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
11178 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
11179 ICorProfilerInfo5 * This,
11180 /* [in] */ ObjectID objectId,
11181 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
11183 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
11184 ICorProfilerInfo5 * This,
11185 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
11187 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
11188 ICorProfilerInfo5 * This,
11189 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11191 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
11192 ICorProfilerInfo5 * This,
11193 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
11195 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
11196 ICorProfilerInfo5 * This,
11197 /* [in] */ FunctionIDMapper2 *pFunc,
11198 /* [in] */ void *clientData);
11200 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
11201 ICorProfilerInfo5 * This,
11202 /* [out] */ ULONG *pStringLengthOffset,
11203 /* [out] */ ULONG *pBufferOffset);
11205 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
11206 ICorProfilerInfo5 * This,
11207 /* [in] */ FunctionEnter3 *pFuncEnter3,
11208 /* [in] */ FunctionLeave3 *pFuncLeave3,
11209 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
11211 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
11212 ICorProfilerInfo5 * This,
11213 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
11214 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
11215 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
11217 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
11218 ICorProfilerInfo5 * This,
11219 /* [in] */ FunctionID functionId,
11220 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11221 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11222 /* [out][in] */ ULONG *pcbArgumentInfo,
11223 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
11225 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
11226 ICorProfilerInfo5 * This,
11227 /* [in] */ FunctionID functionId,
11228 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11229 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11230 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
11232 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
11233 ICorProfilerInfo5 * This,
11234 /* [in] */ FunctionID functionId,
11235 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11236 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
11238 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
11239 ICorProfilerInfo5 * This,
11240 /* [out] */ ICorProfilerModuleEnum **ppEnum);
11242 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
11243 ICorProfilerInfo5 * This,
11244 /* [out] */ USHORT *pClrInstanceId,
11245 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
11246 /* [out] */ USHORT *pMajorVersion,
11247 /* [out] */ USHORT *pMinorVersion,
11248 /* [out] */ USHORT *pBuildNumber,
11249 /* [out] */ USHORT *pQFEVersion,
11250 /* [in] */ ULONG cchVersionString,
11251 /* [out] */ ULONG *pcchVersionString,
11252 /* [annotation][out] */
11253 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
11255 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
11256 ICorProfilerInfo5 * This,
11257 /* [in] */ ClassID classId,
11258 /* [in] */ mdFieldDef fieldToken,
11259 /* [in] */ AppDomainID appDomainId,
11260 /* [in] */ ThreadID threadId,
11261 /* [out] */ void **ppAddress);
11263 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
11264 ICorProfilerInfo5 * This,
11265 /* [in] */ ModuleID moduleId,
11266 /* [in] */ ULONG32 cAppDomainIds,
11267 /* [out] */ ULONG32 *pcAppDomainIds,
11268 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
11270 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
11271 ICorProfilerInfo5 * This,
11272 /* [in] */ ModuleID moduleId,
11273 /* [out] */ LPCBYTE *ppBaseLoadAddress,
11274 /* [in] */ ULONG cchName,
11275 /* [out] */ ULONG *pcchName,
11276 /* [annotation][out] */
11277 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11278 /* [out] */ AssemblyID *pAssemblyId,
11279 /* [out] */ DWORD *pdwModuleFlags);
11281 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
11282 ICorProfilerInfo5 * This,
11283 /* [out] */ ICorProfilerThreadEnum **ppEnum);
11285 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
11286 ICorProfilerInfo5 * This);
11288 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
11289 ICorProfilerInfo5 * This,
11290 /* [in] */ ULONG cFunctions,
11291 /* [size_is][in] */ ModuleID moduleIds[ ],
11292 /* [size_is][in] */ mdMethodDef methodIds[ ]);
11294 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
11295 ICorProfilerInfo5 * This,
11296 /* [in] */ ULONG cFunctions,
11297 /* [size_is][in] */ ModuleID moduleIds[ ],
11298 /* [size_is][in] */ mdMethodDef methodIds[ ],
11299 /* [size_is][out] */ HRESULT status[ ]);
11301 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
11302 ICorProfilerInfo5 * This,
11303 /* [in] */ FunctionID functionID,
11304 /* [in] */ ReJITID reJitId,
11305 /* [in] */ ULONG32 cCodeInfos,
11306 /* [out] */ ULONG32 *pcCodeInfos,
11307 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11309 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
11310 ICorProfilerInfo5 * This,
11311 /* [in] */ LPCBYTE ip,
11312 /* [out] */ FunctionID *pFunctionId,
11313 /* [out] */ ReJITID *pReJitId);
11315 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
11316 ICorProfilerInfo5 * This,
11317 /* [in] */ FunctionID functionId,
11318 /* [in] */ ULONG cReJitIds,
11319 /* [out] */ ULONG *pcReJitIds,
11320 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
11322 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
11323 ICorProfilerInfo5 * This,
11324 /* [in] */ FunctionID functionId,
11325 /* [in] */ ReJITID reJitId,
11326 /* [in] */ ULONG32 cMap,
11327 /* [out] */ ULONG32 *pcMap,
11328 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11330 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
11331 ICorProfilerInfo5 * This,
11332 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11334 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
11335 ICorProfilerInfo5 * This,
11336 /* [in] */ ObjectID objectId,
11337 /* [out] */ SIZE_T *pcSize);
11339 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
11340 ICorProfilerInfo5 * This,
11341 /* [out] */ DWORD *pdwEventsLow,
11342 /* [out] */ DWORD *pdwEventsHigh);
11344 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
11345 ICorProfilerInfo5 * This,
11346 /* [in] */ DWORD dwEventsLow,
11347 /* [in] */ DWORD dwEventsHigh);
11350 } ICorProfilerInfo5Vtbl;
11352 interface ICorProfilerInfo5
11354 CONST_VTBL struct ICorProfilerInfo5Vtbl *lpVtbl;
11362 #define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \
11363 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11365 #define ICorProfilerInfo5_AddRef(This) \
11366 ( (This)->lpVtbl -> AddRef(This) )
11368 #define ICorProfilerInfo5_Release(This) \
11369 ( (This)->lpVtbl -> Release(This) )
11372 #define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \
11373 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
11375 #define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \
11376 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
11378 #define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \
11379 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
11381 #define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \
11382 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
11384 #define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \
11385 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
11387 #define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
11388 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
11390 #define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \
11391 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
11393 #define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \
11394 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
11396 #define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
11397 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
11399 #define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
11400 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
11402 #define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \
11403 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
11405 #define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
11406 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
11408 #define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
11409 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
11411 #define ICorProfilerInfo5_SetEventMask(This,dwEvents) \
11412 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
11414 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
11415 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
11417 #define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \
11418 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
11420 #define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
11421 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
11423 #define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
11424 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
11426 #define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
11427 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
11429 #define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
11430 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
11432 #define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
11433 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
11435 #define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
11436 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
11438 #define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
11439 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
11441 #define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
11442 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
11444 #define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \
11445 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
11447 #define ICorProfilerInfo5_ForceGC(This) \
11448 ( (This)->lpVtbl -> ForceGC(This) )
11450 #define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
11451 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
11453 #define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \
11454 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
11456 #define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \
11457 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
11459 #define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \
11460 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
11462 #define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
11463 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
11465 #define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \
11466 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
11468 #define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
11469 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
11472 #define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
11473 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
11475 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
11476 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
11478 #define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
11479 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
11481 #define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
11482 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
11484 #define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
11485 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
11487 #define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
11488 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
11490 #define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
11491 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
11493 #define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
11494 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
11496 #define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
11497 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
11499 #define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
11500 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
11502 #define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
11503 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
11505 #define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \
11506 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
11508 #define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \
11509 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
11511 #define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
11512 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
11514 #define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
11515 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
11517 #define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
11518 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
11520 #define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
11521 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
11523 #define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
11524 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
11526 #define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
11527 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
11529 #define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \
11530 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
11532 #define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \
11533 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
11536 #define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \
11537 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
11539 #define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
11540 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
11542 #define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \
11543 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
11545 #define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
11546 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
11548 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
11549 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
11551 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
11552 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
11554 #define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
11555 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
11557 #define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
11558 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
11560 #define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
11561 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
11563 #define ICorProfilerInfo5_EnumModules(This,ppEnum) \
11564 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
11566 #define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
11567 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
11569 #define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
11570 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
11572 #define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
11573 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
11575 #define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
11576 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
11579 #define ICorProfilerInfo5_EnumThreads(This,ppEnum) \
11580 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
11582 #define ICorProfilerInfo5_InitializeCurrentThread(This) \
11583 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
11585 #define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
11586 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
11588 #define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
11589 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
11591 #define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
11592 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
11594 #define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
11595 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
11597 #define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
11598 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
11600 #define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
11601 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
11603 #define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \
11604 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
11606 #define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \
11607 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
11610 #define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
11611 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
11613 #define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
11614 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
11616 #endif /* COBJMACROS */
11619 #endif /* C style interface */
11624 #endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */
11627 #ifndef __ICorProfilerInfo6_INTERFACE_DEFINED__
11628 #define __ICorProfilerInfo6_INTERFACE_DEFINED__
11630 /* interface ICorProfilerInfo6 */
11631 /* [local][unique][uuid][object] */
11634 EXTERN_C const IID IID_ICorProfilerInfo6;
11636 #if defined(__cplusplus) && !defined(CINTERFACE)
11638 MIDL_INTERFACE("F30A070D-BFFB-46A7-B1D8-8781EF7B698A")
11639 ICorProfilerInfo6 : public ICorProfilerInfo5
11642 virtual HRESULT STDMETHODCALLTYPE EnumNgenModuleMethodsInliningThisMethod(
11643 /* [in] */ ModuleID inlinersModuleId,
11644 /* [in] */ ModuleID inlineeModuleId,
11645 /* [in] */ mdMethodDef inlineeMethodId,
11646 /* [out] */ BOOL *incompleteData,
11647 /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
11652 #else /* C style interface */
11654 typedef struct ICorProfilerInfo6Vtbl
11658 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11659 ICorProfilerInfo6 * This,
11660 /* [in] */ REFIID riid,
11661 /* [annotation][iid_is][out] */
11662 _COM_Outptr_ void **ppvObject);
11664 ULONG ( STDMETHODCALLTYPE *AddRef )(
11665 ICorProfilerInfo6 * This);
11667 ULONG ( STDMETHODCALLTYPE *Release )(
11668 ICorProfilerInfo6 * This);
11670 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
11671 ICorProfilerInfo6 * This,
11672 /* [in] */ ObjectID objectId,
11673 /* [out] */ ClassID *pClassId);
11675 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
11676 ICorProfilerInfo6 * This,
11677 /* [in] */ ModuleID moduleId,
11678 /* [in] */ mdTypeDef typeDef,
11679 /* [out] */ ClassID *pClassId);
11681 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
11682 ICorProfilerInfo6 * This,
11683 /* [in] */ FunctionID functionId,
11684 /* [out] */ LPCBYTE *pStart,
11685 /* [out] */ ULONG *pcSize);
11687 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
11688 ICorProfilerInfo6 * This,
11689 /* [out] */ DWORD *pdwEvents);
11691 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
11692 ICorProfilerInfo6 * This,
11693 /* [in] */ LPCBYTE ip,
11694 /* [out] */ FunctionID *pFunctionId);
11696 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
11697 ICorProfilerInfo6 * This,
11698 /* [in] */ ModuleID moduleId,
11699 /* [in] */ mdToken token,
11700 /* [out] */ FunctionID *pFunctionId);
11702 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
11703 ICorProfilerInfo6 * This,
11704 /* [in] */ ThreadID threadId,
11705 /* [out] */ HANDLE *phThread);
11707 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
11708 ICorProfilerInfo6 * This,
11709 /* [in] */ ObjectID objectId,
11710 /* [out] */ ULONG *pcSize);
11712 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
11713 ICorProfilerInfo6 * This,
11714 /* [in] */ ClassID classId,
11715 /* [out] */ CorElementType *pBaseElemType,
11716 /* [out] */ ClassID *pBaseClassId,
11717 /* [out] */ ULONG *pcRank);
11719 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
11720 ICorProfilerInfo6 * This,
11721 /* [in] */ ThreadID threadId,
11722 /* [out] */ DWORD *pdwWin32ThreadId);
11724 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
11725 ICorProfilerInfo6 * This,
11726 /* [out] */ ThreadID *pThreadId);
11728 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
11729 ICorProfilerInfo6 * This,
11730 /* [in] */ ClassID classId,
11731 /* [out] */ ModuleID *pModuleId,
11732 /* [out] */ mdTypeDef *pTypeDefToken);
11734 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
11735 ICorProfilerInfo6 * This,
11736 /* [in] */ FunctionID functionId,
11737 /* [out] */ ClassID *pClassId,
11738 /* [out] */ ModuleID *pModuleId,
11739 /* [out] */ mdToken *pToken);
11741 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
11742 ICorProfilerInfo6 * This,
11743 /* [in] */ DWORD dwEvents);
11745 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
11746 ICorProfilerInfo6 * This,
11747 /* [in] */ FunctionEnter *pFuncEnter,
11748 /* [in] */ FunctionLeave *pFuncLeave,
11749 /* [in] */ FunctionTailcall *pFuncTailcall);
11751 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
11752 ICorProfilerInfo6 * This,
11753 /* [in] */ FunctionIDMapper *pFunc);
11755 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
11756 ICorProfilerInfo6 * This,
11757 /* [in] */ FunctionID functionId,
11758 /* [in] */ REFIID riid,
11759 /* [out] */ IUnknown **ppImport,
11760 /* [out] */ mdToken *pToken);
11762 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
11763 ICorProfilerInfo6 * This,
11764 /* [in] */ ModuleID moduleId,
11765 /* [out] */ LPCBYTE *ppBaseLoadAddress,
11766 /* [in] */ ULONG cchName,
11767 /* [out] */ ULONG *pcchName,
11768 /* [annotation][out] */
11769 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11770 /* [out] */ AssemblyID *pAssemblyId);
11772 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
11773 ICorProfilerInfo6 * This,
11774 /* [in] */ ModuleID moduleId,
11775 /* [in] */ DWORD dwOpenFlags,
11776 /* [in] */ REFIID riid,
11777 /* [out] */ IUnknown **ppOut);
11779 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
11780 ICorProfilerInfo6 * This,
11781 /* [in] */ ModuleID moduleId,
11782 /* [in] */ mdMethodDef methodId,
11783 /* [out] */ LPCBYTE *ppMethodHeader,
11784 /* [out] */ ULONG *pcbMethodSize);
11786 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
11787 ICorProfilerInfo6 * This,
11788 /* [in] */ ModuleID moduleId,
11789 /* [out] */ IMethodMalloc **ppMalloc);
11791 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
11792 ICorProfilerInfo6 * This,
11793 /* [in] */ ModuleID moduleId,
11794 /* [in] */ mdMethodDef methodid,
11795 /* [in] */ LPCBYTE pbNewILMethodHeader);
11797 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
11798 ICorProfilerInfo6 * This,
11799 /* [in] */ AppDomainID appDomainId,
11800 /* [in] */ ULONG cchName,
11801 /* [out] */ ULONG *pcchName,
11802 /* [annotation][out] */
11803 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11804 /* [out] */ ProcessID *pProcessId);
11806 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
11807 ICorProfilerInfo6 * This,
11808 /* [in] */ AssemblyID assemblyId,
11809 /* [in] */ ULONG cchName,
11810 /* [out] */ ULONG *pcchName,
11811 /* [annotation][out] */
11812 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11813 /* [out] */ AppDomainID *pAppDomainId,
11814 /* [out] */ ModuleID *pModuleId);
11816 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
11817 ICorProfilerInfo6 * This,
11818 /* [in] */ FunctionID functionId);
11820 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
11821 ICorProfilerInfo6 * This);
11823 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
11824 ICorProfilerInfo6 * This,
11825 /* [in] */ FunctionID functionId,
11826 /* [in] */ BOOL fStartJit,
11827 /* [in] */ ULONG cILMapEntries,
11828 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
11830 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
11831 ICorProfilerInfo6 * This,
11832 /* [out] */ IUnknown **ppicd);
11834 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
11835 ICorProfilerInfo6 * This,
11836 /* [out] */ IUnknown **ppicd);
11838 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
11839 ICorProfilerInfo6 * This,
11840 /* [in] */ ThreadID threadId,
11841 /* [out] */ ContextID *pContextId);
11843 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
11844 ICorProfilerInfo6 * This,
11845 /* [in] */ BOOL fThisThreadOnly,
11846 /* [out] */ DWORD *pdwProfilerContext);
11848 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
11849 ICorProfilerInfo6 * This,
11850 /* [in] */ DWORD dwProfilerContext);
11852 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
11853 ICorProfilerInfo6 * This,
11854 /* [in] */ FunctionID functionId,
11855 /* [in] */ ULONG32 cMap,
11856 /* [out] */ ULONG32 *pcMap,
11857 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11859 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
11860 ICorProfilerInfo6 * This,
11861 /* [in] */ ThreadID thread,
11862 /* [in] */ StackSnapshotCallback *callback,
11863 /* [in] */ ULONG32 infoFlags,
11864 /* [in] */ void *clientData,
11865 /* [size_is][in] */ BYTE context[ ],
11866 /* [in] */ ULONG32 contextSize);
11868 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
11869 ICorProfilerInfo6 * This,
11870 /* [in] */ FunctionEnter2 *pFuncEnter,
11871 /* [in] */ FunctionLeave2 *pFuncLeave,
11872 /* [in] */ FunctionTailcall2 *pFuncTailcall);
11874 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
11875 ICorProfilerInfo6 * This,
11876 /* [in] */ FunctionID funcId,
11877 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11878 /* [out] */ ClassID *pClassId,
11879 /* [out] */ ModuleID *pModuleId,
11880 /* [out] */ mdToken *pToken,
11881 /* [in] */ ULONG32 cTypeArgs,
11882 /* [out] */ ULONG32 *pcTypeArgs,
11883 /* [out] */ ClassID typeArgs[ ]);
11885 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
11886 ICorProfilerInfo6 * This,
11887 /* [out] */ ULONG *pBufferLengthOffset,
11888 /* [out] */ ULONG *pStringLengthOffset,
11889 /* [out] */ ULONG *pBufferOffset);
11891 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
11892 ICorProfilerInfo6 * This,
11893 /* [in] */ ClassID classID,
11894 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
11895 /* [in] */ ULONG cFieldOffset,
11896 /* [out] */ ULONG *pcFieldOffset,
11897 /* [out] */ ULONG *pulClassSize);
11899 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
11900 ICorProfilerInfo6 * This,
11901 /* [in] */ ClassID classId,
11902 /* [out] */ ModuleID *pModuleId,
11903 /* [out] */ mdTypeDef *pTypeDefToken,
11904 /* [out] */ ClassID *pParentClassId,
11905 /* [in] */ ULONG32 cNumTypeArgs,
11906 /* [out] */ ULONG32 *pcNumTypeArgs,
11907 /* [out] */ ClassID typeArgs[ ]);
11909 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
11910 ICorProfilerInfo6 * This,
11911 /* [in] */ FunctionID functionID,
11912 /* [in] */ ULONG32 cCodeInfos,
11913 /* [out] */ ULONG32 *pcCodeInfos,
11914 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11916 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
11917 ICorProfilerInfo6 * This,
11918 /* [in] */ ModuleID moduleID,
11919 /* [in] */ mdTypeDef typeDef,
11920 /* [in] */ ULONG32 cTypeArgs,
11921 /* [size_is][in] */ ClassID typeArgs[ ],
11922 /* [out] */ ClassID *pClassID);
11924 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
11925 ICorProfilerInfo6 * This,
11926 /* [in] */ ModuleID moduleID,
11927 /* [in] */ mdMethodDef funcDef,
11928 /* [in] */ ClassID classId,
11929 /* [in] */ ULONG32 cTypeArgs,
11930 /* [size_is][in] */ ClassID typeArgs[ ],
11931 /* [out] */ FunctionID *pFunctionID);
11933 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
11934 ICorProfilerInfo6 * This,
11935 /* [in] */ ModuleID moduleID,
11936 /* [out] */ ICorProfilerObjectEnum **ppEnum);
11938 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
11939 ICorProfilerInfo6 * This,
11940 /* [in] */ ObjectID objectId,
11941 /* [in] */ ULONG32 cDimensions,
11942 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
11943 /* [size_is][out] */ int pDimensionLowerBounds[ ],
11944 /* [out] */ BYTE **ppData);
11946 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
11947 ICorProfilerInfo6 * This,
11948 /* [in] */ ClassID classId,
11949 /* [out] */ ULONG32 *pBufferOffset);
11951 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
11952 ICorProfilerInfo6 * This,
11953 /* [in] */ ThreadID threadId,
11954 /* [out] */ AppDomainID *pAppDomainId);
11956 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
11957 ICorProfilerInfo6 * This,
11958 /* [in] */ ClassID classId,
11959 /* [in] */ mdFieldDef fieldToken,
11960 /* [out] */ void **ppAddress);
11962 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
11963 ICorProfilerInfo6 * This,
11964 /* [in] */ ClassID classId,
11965 /* [in] */ mdFieldDef fieldToken,
11966 /* [in] */ AppDomainID appDomainId,
11967 /* [out] */ void **ppAddress);
11969 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
11970 ICorProfilerInfo6 * This,
11971 /* [in] */ ClassID classId,
11972 /* [in] */ mdFieldDef fieldToken,
11973 /* [in] */ ThreadID threadId,
11974 /* [out] */ void **ppAddress);
11976 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
11977 ICorProfilerInfo6 * This,
11978 /* [in] */ ClassID classId,
11979 /* [in] */ mdFieldDef fieldToken,
11980 /* [in] */ ContextID contextId,
11981 /* [out] */ void **ppAddress);
11983 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
11984 ICorProfilerInfo6 * This,
11985 /* [in] */ ClassID classId,
11986 /* [in] */ mdFieldDef fieldToken,
11987 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
11989 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
11990 ICorProfilerInfo6 * This,
11991 /* [in] */ ULONG cObjectRanges,
11992 /* [out] */ ULONG *pcObjectRanges,
11993 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
11995 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
11996 ICorProfilerInfo6 * This,
11997 /* [in] */ ObjectID objectId,
11998 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
12000 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
12001 ICorProfilerInfo6 * This,
12002 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12004 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
12005 ICorProfilerInfo6 * This,
12006 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12008 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
12009 ICorProfilerInfo6 * This,
12010 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12012 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
12013 ICorProfilerInfo6 * This,
12014 /* [in] */ FunctionIDMapper2 *pFunc,
12015 /* [in] */ void *clientData);
12017 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
12018 ICorProfilerInfo6 * This,
12019 /* [out] */ ULONG *pStringLengthOffset,
12020 /* [out] */ ULONG *pBufferOffset);
12022 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
12023 ICorProfilerInfo6 * This,
12024 /* [in] */ FunctionEnter3 *pFuncEnter3,
12025 /* [in] */ FunctionLeave3 *pFuncLeave3,
12026 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12028 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
12029 ICorProfilerInfo6 * This,
12030 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12031 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12032 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12034 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
12035 ICorProfilerInfo6 * This,
12036 /* [in] */ FunctionID functionId,
12037 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12038 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12039 /* [out][in] */ ULONG *pcbArgumentInfo,
12040 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12042 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
12043 ICorProfilerInfo6 * This,
12044 /* [in] */ FunctionID functionId,
12045 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12046 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12047 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12049 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
12050 ICorProfilerInfo6 * This,
12051 /* [in] */ FunctionID functionId,
12052 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12053 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12055 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
12056 ICorProfilerInfo6 * This,
12057 /* [out] */ ICorProfilerModuleEnum **ppEnum);
12059 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
12060 ICorProfilerInfo6 * This,
12061 /* [out] */ USHORT *pClrInstanceId,
12062 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12063 /* [out] */ USHORT *pMajorVersion,
12064 /* [out] */ USHORT *pMinorVersion,
12065 /* [out] */ USHORT *pBuildNumber,
12066 /* [out] */ USHORT *pQFEVersion,
12067 /* [in] */ ULONG cchVersionString,
12068 /* [out] */ ULONG *pcchVersionString,
12069 /* [annotation][out] */
12070 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
12072 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
12073 ICorProfilerInfo6 * This,
12074 /* [in] */ ClassID classId,
12075 /* [in] */ mdFieldDef fieldToken,
12076 /* [in] */ AppDomainID appDomainId,
12077 /* [in] */ ThreadID threadId,
12078 /* [out] */ void **ppAddress);
12080 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
12081 ICorProfilerInfo6 * This,
12082 /* [in] */ ModuleID moduleId,
12083 /* [in] */ ULONG32 cAppDomainIds,
12084 /* [out] */ ULONG32 *pcAppDomainIds,
12085 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
12087 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
12088 ICorProfilerInfo6 * This,
12089 /* [in] */ ModuleID moduleId,
12090 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12091 /* [in] */ ULONG cchName,
12092 /* [out] */ ULONG *pcchName,
12093 /* [annotation][out] */
12094 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12095 /* [out] */ AssemblyID *pAssemblyId,
12096 /* [out] */ DWORD *pdwModuleFlags);
12098 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
12099 ICorProfilerInfo6 * This,
12100 /* [out] */ ICorProfilerThreadEnum **ppEnum);
12102 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
12103 ICorProfilerInfo6 * This);
12105 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
12106 ICorProfilerInfo6 * This,
12107 /* [in] */ ULONG cFunctions,
12108 /* [size_is][in] */ ModuleID moduleIds[ ],
12109 /* [size_is][in] */ mdMethodDef methodIds[ ]);
12111 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
12112 ICorProfilerInfo6 * This,
12113 /* [in] */ ULONG cFunctions,
12114 /* [size_is][in] */ ModuleID moduleIds[ ],
12115 /* [size_is][in] */ mdMethodDef methodIds[ ],
12116 /* [size_is][out] */ HRESULT status[ ]);
12118 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
12119 ICorProfilerInfo6 * This,
12120 /* [in] */ FunctionID functionID,
12121 /* [in] */ ReJITID reJitId,
12122 /* [in] */ ULONG32 cCodeInfos,
12123 /* [out] */ ULONG32 *pcCodeInfos,
12124 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12126 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
12127 ICorProfilerInfo6 * This,
12128 /* [in] */ LPCBYTE ip,
12129 /* [out] */ FunctionID *pFunctionId,
12130 /* [out] */ ReJITID *pReJitId);
12132 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
12133 ICorProfilerInfo6 * This,
12134 /* [in] */ FunctionID functionId,
12135 /* [in] */ ULONG cReJitIds,
12136 /* [out] */ ULONG *pcReJitIds,
12137 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
12139 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
12140 ICorProfilerInfo6 * This,
12141 /* [in] */ FunctionID functionId,
12142 /* [in] */ ReJITID reJitId,
12143 /* [in] */ ULONG32 cMap,
12144 /* [out] */ ULONG32 *pcMap,
12145 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
12147 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
12148 ICorProfilerInfo6 * This,
12149 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12151 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
12152 ICorProfilerInfo6 * This,
12153 /* [in] */ ObjectID objectId,
12154 /* [out] */ SIZE_T *pcSize);
12156 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
12157 ICorProfilerInfo6 * This,
12158 /* [out] */ DWORD *pdwEventsLow,
12159 /* [out] */ DWORD *pdwEventsHigh);
12161 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
12162 ICorProfilerInfo6 * This,
12163 /* [in] */ DWORD dwEventsLow,
12164 /* [in] */ DWORD dwEventsHigh);
12166 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
12167 ICorProfilerInfo6 * This,
12168 /* [in] */ ModuleID inlinersModuleId,
12169 /* [in] */ ModuleID inlineeModuleId,
12170 /* [in] */ mdMethodDef inlineeMethodId,
12171 /* [out] */ BOOL *incompleteData,
12172 /* [out] */ ICorProfilerMethodEnum **ppEnum);
12175 } ICorProfilerInfo6Vtbl;
12177 interface ICorProfilerInfo6
12179 CONST_VTBL struct ICorProfilerInfo6Vtbl *lpVtbl;
12187 #define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \
12188 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12190 #define ICorProfilerInfo6_AddRef(This) \
12191 ( (This)->lpVtbl -> AddRef(This) )
12193 #define ICorProfilerInfo6_Release(This) \
12194 ( (This)->lpVtbl -> Release(This) )
12197 #define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \
12198 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
12200 #define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \
12201 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
12203 #define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \
12204 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
12206 #define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \
12207 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
12209 #define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \
12210 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
12212 #define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
12213 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
12215 #define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \
12216 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
12218 #define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \
12219 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
12221 #define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
12222 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
12224 #define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
12225 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
12227 #define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \
12228 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
12230 #define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
12231 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
12233 #define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
12234 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
12236 #define ICorProfilerInfo6_SetEventMask(This,dwEvents) \
12237 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
12239 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
12240 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
12242 #define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \
12243 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
12245 #define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
12246 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
12248 #define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
12249 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
12251 #define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
12252 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
12254 #define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
12255 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
12257 #define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
12258 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
12260 #define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
12261 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
12263 #define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
12264 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
12266 #define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
12267 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
12269 #define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \
12270 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
12272 #define ICorProfilerInfo6_ForceGC(This) \
12273 ( (This)->lpVtbl -> ForceGC(This) )
12275 #define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
12276 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
12278 #define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \
12279 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
12281 #define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \
12282 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
12284 #define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \
12285 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
12287 #define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
12288 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
12290 #define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \
12291 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
12293 #define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
12294 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
12297 #define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
12298 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
12300 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
12301 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
12303 #define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
12304 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
12306 #define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
12307 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
12309 #define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
12310 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
12312 #define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
12313 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
12315 #define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
12316 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
12318 #define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
12319 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
12321 #define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
12322 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
12324 #define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
12325 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
12327 #define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
12328 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
12330 #define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \
12331 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
12333 #define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \
12334 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
12336 #define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
12337 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
12339 #define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
12340 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
12342 #define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
12343 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
12345 #define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
12346 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
12348 #define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
12349 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
12351 #define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
12352 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
12354 #define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \
12355 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
12357 #define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \
12358 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
12361 #define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \
12362 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
12364 #define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
12365 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
12367 #define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \
12368 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
12370 #define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
12371 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
12373 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
12374 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
12376 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
12377 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
12379 #define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
12380 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
12382 #define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
12383 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
12385 #define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
12386 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
12388 #define ICorProfilerInfo6_EnumModules(This,ppEnum) \
12389 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
12391 #define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
12392 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
12394 #define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
12395 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
12397 #define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
12398 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
12400 #define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
12401 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
12404 #define ICorProfilerInfo6_EnumThreads(This,ppEnum) \
12405 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
12407 #define ICorProfilerInfo6_InitializeCurrentThread(This) \
12408 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
12410 #define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
12411 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
12413 #define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
12414 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
12416 #define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
12417 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
12419 #define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
12420 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
12422 #define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
12423 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
12425 #define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
12426 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
12428 #define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \
12429 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
12431 #define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \
12432 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
12435 #define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
12436 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
12438 #define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
12439 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
12442 #define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
12443 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
12445 #endif /* COBJMACROS */
12448 #endif /* C style interface */
12453 #endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */
12456 #ifndef __ICorProfilerInfo7_INTERFACE_DEFINED__
12457 #define __ICorProfilerInfo7_INTERFACE_DEFINED__
12459 /* interface ICorProfilerInfo7 */
12460 /* [local][unique][uuid][object] */
12463 EXTERN_C const IID IID_ICorProfilerInfo7;
12465 #if defined(__cplusplus) && !defined(CINTERFACE)
12467 MIDL_INTERFACE("9AEECC0D-63E0-4187-8C00-E312F503F663")
12468 ICorProfilerInfo7 : public ICorProfilerInfo6
12471 virtual HRESULT STDMETHODCALLTYPE ApplyMetaData(
12472 /* [in] */ ModuleID moduleId) = 0;
12474 virtual HRESULT STDMETHODCALLTYPE GetInMemorySymbolsLength(
12475 /* [in] */ ModuleID moduleId,
12476 /* [out] */ DWORD *pCountSymbolBytes) = 0;
12478 virtual HRESULT STDMETHODCALLTYPE ReadInMemorySymbols(
12479 /* [in] */ ModuleID moduleId,
12480 /* [in] */ DWORD symbolsReadOffset,
12481 /* [out] */ BYTE *pSymbolBytes,
12482 /* [in] */ DWORD countSymbolBytes,
12483 /* [out] */ DWORD *pCountSymbolBytesRead) = 0;
12488 #else /* C style interface */
12490 typedef struct ICorProfilerInfo7Vtbl
12494 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12495 ICorProfilerInfo7 * This,
12496 /* [in] */ REFIID riid,
12497 /* [annotation][iid_is][out] */
12498 _COM_Outptr_ void **ppvObject);
12500 ULONG ( STDMETHODCALLTYPE *AddRef )(
12501 ICorProfilerInfo7 * This);
12503 ULONG ( STDMETHODCALLTYPE *Release )(
12504 ICorProfilerInfo7 * This);
12506 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
12507 ICorProfilerInfo7 * This,
12508 /* [in] */ ObjectID objectId,
12509 /* [out] */ ClassID *pClassId);
12511 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
12512 ICorProfilerInfo7 * This,
12513 /* [in] */ ModuleID moduleId,
12514 /* [in] */ mdTypeDef typeDef,
12515 /* [out] */ ClassID *pClassId);
12517 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
12518 ICorProfilerInfo7 * This,
12519 /* [in] */ FunctionID functionId,
12520 /* [out] */ LPCBYTE *pStart,
12521 /* [out] */ ULONG *pcSize);
12523 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
12524 ICorProfilerInfo7 * This,
12525 /* [out] */ DWORD *pdwEvents);
12527 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
12528 ICorProfilerInfo7 * This,
12529 /* [in] */ LPCBYTE ip,
12530 /* [out] */ FunctionID *pFunctionId);
12532 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
12533 ICorProfilerInfo7 * This,
12534 /* [in] */ ModuleID moduleId,
12535 /* [in] */ mdToken token,
12536 /* [out] */ FunctionID *pFunctionId);
12538 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
12539 ICorProfilerInfo7 * This,
12540 /* [in] */ ThreadID threadId,
12541 /* [out] */ HANDLE *phThread);
12543 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
12544 ICorProfilerInfo7 * This,
12545 /* [in] */ ObjectID objectId,
12546 /* [out] */ ULONG *pcSize);
12548 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
12549 ICorProfilerInfo7 * This,
12550 /* [in] */ ClassID classId,
12551 /* [out] */ CorElementType *pBaseElemType,
12552 /* [out] */ ClassID *pBaseClassId,
12553 /* [out] */ ULONG *pcRank);
12555 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
12556 ICorProfilerInfo7 * This,
12557 /* [in] */ ThreadID threadId,
12558 /* [out] */ DWORD *pdwWin32ThreadId);
12560 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
12561 ICorProfilerInfo7 * This,
12562 /* [out] */ ThreadID *pThreadId);
12564 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
12565 ICorProfilerInfo7 * This,
12566 /* [in] */ ClassID classId,
12567 /* [out] */ ModuleID *pModuleId,
12568 /* [out] */ mdTypeDef *pTypeDefToken);
12570 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
12571 ICorProfilerInfo7 * This,
12572 /* [in] */ FunctionID functionId,
12573 /* [out] */ ClassID *pClassId,
12574 /* [out] */ ModuleID *pModuleId,
12575 /* [out] */ mdToken *pToken);
12577 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
12578 ICorProfilerInfo7 * This,
12579 /* [in] */ DWORD dwEvents);
12581 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
12582 ICorProfilerInfo7 * This,
12583 /* [in] */ FunctionEnter *pFuncEnter,
12584 /* [in] */ FunctionLeave *pFuncLeave,
12585 /* [in] */ FunctionTailcall *pFuncTailcall);
12587 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
12588 ICorProfilerInfo7 * This,
12589 /* [in] */ FunctionIDMapper *pFunc);
12591 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
12592 ICorProfilerInfo7 * This,
12593 /* [in] */ FunctionID functionId,
12594 /* [in] */ REFIID riid,
12595 /* [out] */ IUnknown **ppImport,
12596 /* [out] */ mdToken *pToken);
12598 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
12599 ICorProfilerInfo7 * This,
12600 /* [in] */ ModuleID moduleId,
12601 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12602 /* [in] */ ULONG cchName,
12603 /* [out] */ ULONG *pcchName,
12604 /* [annotation][out] */
12605 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12606 /* [out] */ AssemblyID *pAssemblyId);
12608 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
12609 ICorProfilerInfo7 * This,
12610 /* [in] */ ModuleID moduleId,
12611 /* [in] */ DWORD dwOpenFlags,
12612 /* [in] */ REFIID riid,
12613 /* [out] */ IUnknown **ppOut);
12615 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
12616 ICorProfilerInfo7 * This,
12617 /* [in] */ ModuleID moduleId,
12618 /* [in] */ mdMethodDef methodId,
12619 /* [out] */ LPCBYTE *ppMethodHeader,
12620 /* [out] */ ULONG *pcbMethodSize);
12622 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
12623 ICorProfilerInfo7 * This,
12624 /* [in] */ ModuleID moduleId,
12625 /* [out] */ IMethodMalloc **ppMalloc);
12627 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
12628 ICorProfilerInfo7 * This,
12629 /* [in] */ ModuleID moduleId,
12630 /* [in] */ mdMethodDef methodid,
12631 /* [in] */ LPCBYTE pbNewILMethodHeader);
12633 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
12634 ICorProfilerInfo7 * This,
12635 /* [in] */ AppDomainID appDomainId,
12636 /* [in] */ ULONG cchName,
12637 /* [out] */ ULONG *pcchName,
12638 /* [annotation][out] */
12639 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12640 /* [out] */ ProcessID *pProcessId);
12642 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
12643 ICorProfilerInfo7 * This,
12644 /* [in] */ AssemblyID assemblyId,
12645 /* [in] */ ULONG cchName,
12646 /* [out] */ ULONG *pcchName,
12647 /* [annotation][out] */
12648 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12649 /* [out] */ AppDomainID *pAppDomainId,
12650 /* [out] */ ModuleID *pModuleId);
12652 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
12653 ICorProfilerInfo7 * This,
12654 /* [in] */ FunctionID functionId);
12656 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
12657 ICorProfilerInfo7 * This);
12659 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
12660 ICorProfilerInfo7 * This,
12661 /* [in] */ FunctionID functionId,
12662 /* [in] */ BOOL fStartJit,
12663 /* [in] */ ULONG cILMapEntries,
12664 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
12666 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
12667 ICorProfilerInfo7 * This,
12668 /* [out] */ IUnknown **ppicd);
12670 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
12671 ICorProfilerInfo7 * This,
12672 /* [out] */ IUnknown **ppicd);
12674 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
12675 ICorProfilerInfo7 * This,
12676 /* [in] */ ThreadID threadId,
12677 /* [out] */ ContextID *pContextId);
12679 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
12680 ICorProfilerInfo7 * This,
12681 /* [in] */ BOOL fThisThreadOnly,
12682 /* [out] */ DWORD *pdwProfilerContext);
12684 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
12685 ICorProfilerInfo7 * This,
12686 /* [in] */ DWORD dwProfilerContext);
12688 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
12689 ICorProfilerInfo7 * This,
12690 /* [in] */ FunctionID functionId,
12691 /* [in] */ ULONG32 cMap,
12692 /* [out] */ ULONG32 *pcMap,
12693 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
12695 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
12696 ICorProfilerInfo7 * This,
12697 /* [in] */ ThreadID thread,
12698 /* [in] */ StackSnapshotCallback *callback,
12699 /* [in] */ ULONG32 infoFlags,
12700 /* [in] */ void *clientData,
12701 /* [size_is][in] */ BYTE context[ ],
12702 /* [in] */ ULONG32 contextSize);
12704 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
12705 ICorProfilerInfo7 * This,
12706 /* [in] */ FunctionEnter2 *pFuncEnter,
12707 /* [in] */ FunctionLeave2 *pFuncLeave,
12708 /* [in] */ FunctionTailcall2 *pFuncTailcall);
12710 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
12711 ICorProfilerInfo7 * This,
12712 /* [in] */ FunctionID funcId,
12713 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
12714 /* [out] */ ClassID *pClassId,
12715 /* [out] */ ModuleID *pModuleId,
12716 /* [out] */ mdToken *pToken,
12717 /* [in] */ ULONG32 cTypeArgs,
12718 /* [out] */ ULONG32 *pcTypeArgs,
12719 /* [out] */ ClassID typeArgs[ ]);
12721 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
12722 ICorProfilerInfo7 * This,
12723 /* [out] */ ULONG *pBufferLengthOffset,
12724 /* [out] */ ULONG *pStringLengthOffset,
12725 /* [out] */ ULONG *pBufferOffset);
12727 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
12728 ICorProfilerInfo7 * This,
12729 /* [in] */ ClassID classID,
12730 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
12731 /* [in] */ ULONG cFieldOffset,
12732 /* [out] */ ULONG *pcFieldOffset,
12733 /* [out] */ ULONG *pulClassSize);
12735 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
12736 ICorProfilerInfo7 * This,
12737 /* [in] */ ClassID classId,
12738 /* [out] */ ModuleID *pModuleId,
12739 /* [out] */ mdTypeDef *pTypeDefToken,
12740 /* [out] */ ClassID *pParentClassId,
12741 /* [in] */ ULONG32 cNumTypeArgs,
12742 /* [out] */ ULONG32 *pcNumTypeArgs,
12743 /* [out] */ ClassID typeArgs[ ]);
12745 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
12746 ICorProfilerInfo7 * This,
12747 /* [in] */ FunctionID functionID,
12748 /* [in] */ ULONG32 cCodeInfos,
12749 /* [out] */ ULONG32 *pcCodeInfos,
12750 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12752 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
12753 ICorProfilerInfo7 * This,
12754 /* [in] */ ModuleID moduleID,
12755 /* [in] */ mdTypeDef typeDef,
12756 /* [in] */ ULONG32 cTypeArgs,
12757 /* [size_is][in] */ ClassID typeArgs[ ],
12758 /* [out] */ ClassID *pClassID);
12760 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
12761 ICorProfilerInfo7 * This,
12762 /* [in] */ ModuleID moduleID,
12763 /* [in] */ mdMethodDef funcDef,
12764 /* [in] */ ClassID classId,
12765 /* [in] */ ULONG32 cTypeArgs,
12766 /* [size_is][in] */ ClassID typeArgs[ ],
12767 /* [out] */ FunctionID *pFunctionID);
12769 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
12770 ICorProfilerInfo7 * This,
12771 /* [in] */ ModuleID moduleID,
12772 /* [out] */ ICorProfilerObjectEnum **ppEnum);
12774 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
12775 ICorProfilerInfo7 * This,
12776 /* [in] */ ObjectID objectId,
12777 /* [in] */ ULONG32 cDimensions,
12778 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
12779 /* [size_is][out] */ int pDimensionLowerBounds[ ],
12780 /* [out] */ BYTE **ppData);
12782 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
12783 ICorProfilerInfo7 * This,
12784 /* [in] */ ClassID classId,
12785 /* [out] */ ULONG32 *pBufferOffset);
12787 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
12788 ICorProfilerInfo7 * This,
12789 /* [in] */ ThreadID threadId,
12790 /* [out] */ AppDomainID *pAppDomainId);
12792 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
12793 ICorProfilerInfo7 * This,
12794 /* [in] */ ClassID classId,
12795 /* [in] */ mdFieldDef fieldToken,
12796 /* [out] */ void **ppAddress);
12798 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
12799 ICorProfilerInfo7 * This,
12800 /* [in] */ ClassID classId,
12801 /* [in] */ mdFieldDef fieldToken,
12802 /* [in] */ AppDomainID appDomainId,
12803 /* [out] */ void **ppAddress);
12805 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
12806 ICorProfilerInfo7 * This,
12807 /* [in] */ ClassID classId,
12808 /* [in] */ mdFieldDef fieldToken,
12809 /* [in] */ ThreadID threadId,
12810 /* [out] */ void **ppAddress);
12812 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
12813 ICorProfilerInfo7 * This,
12814 /* [in] */ ClassID classId,
12815 /* [in] */ mdFieldDef fieldToken,
12816 /* [in] */ ContextID contextId,
12817 /* [out] */ void **ppAddress);
12819 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
12820 ICorProfilerInfo7 * This,
12821 /* [in] */ ClassID classId,
12822 /* [in] */ mdFieldDef fieldToken,
12823 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
12825 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
12826 ICorProfilerInfo7 * This,
12827 /* [in] */ ULONG cObjectRanges,
12828 /* [out] */ ULONG *pcObjectRanges,
12829 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
12831 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
12832 ICorProfilerInfo7 * This,
12833 /* [in] */ ObjectID objectId,
12834 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
12836 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
12837 ICorProfilerInfo7 * This,
12838 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12840 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
12841 ICorProfilerInfo7 * This,
12842 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12844 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
12845 ICorProfilerInfo7 * This,
12846 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12848 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
12849 ICorProfilerInfo7 * This,
12850 /* [in] */ FunctionIDMapper2 *pFunc,
12851 /* [in] */ void *clientData);
12853 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
12854 ICorProfilerInfo7 * This,
12855 /* [out] */ ULONG *pStringLengthOffset,
12856 /* [out] */ ULONG *pBufferOffset);
12858 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
12859 ICorProfilerInfo7 * This,
12860 /* [in] */ FunctionEnter3 *pFuncEnter3,
12861 /* [in] */ FunctionLeave3 *pFuncLeave3,
12862 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12864 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
12865 ICorProfilerInfo7 * This,
12866 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12867 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12868 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12870 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
12871 ICorProfilerInfo7 * This,
12872 /* [in] */ FunctionID functionId,
12873 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12874 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12875 /* [out][in] */ ULONG *pcbArgumentInfo,
12876 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12878 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
12879 ICorProfilerInfo7 * This,
12880 /* [in] */ FunctionID functionId,
12881 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12882 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12883 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12885 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
12886 ICorProfilerInfo7 * This,
12887 /* [in] */ FunctionID functionId,
12888 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12889 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12891 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
12892 ICorProfilerInfo7 * This,
12893 /* [out] */ ICorProfilerModuleEnum **ppEnum);
12895 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
12896 ICorProfilerInfo7 * This,
12897 /* [out] */ USHORT *pClrInstanceId,
12898 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12899 /* [out] */ USHORT *pMajorVersion,
12900 /* [out] */ USHORT *pMinorVersion,
12901 /* [out] */ USHORT *pBuildNumber,
12902 /* [out] */ USHORT *pQFEVersion,
12903 /* [in] */ ULONG cchVersionString,
12904 /* [out] */ ULONG *pcchVersionString,
12905 /* [annotation][out] */
12906 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
12908 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
12909 ICorProfilerInfo7 * This,
12910 /* [in] */ ClassID classId,
12911 /* [in] */ mdFieldDef fieldToken,
12912 /* [in] */ AppDomainID appDomainId,
12913 /* [in] */ ThreadID threadId,
12914 /* [out] */ void **ppAddress);
12916 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
12917 ICorProfilerInfo7 * This,
12918 /* [in] */ ModuleID moduleId,
12919 /* [in] */ ULONG32 cAppDomainIds,
12920 /* [out] */ ULONG32 *pcAppDomainIds,
12921 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
12923 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
12924 ICorProfilerInfo7 * This,
12925 /* [in] */ ModuleID moduleId,
12926 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12927 /* [in] */ ULONG cchName,
12928 /* [out] */ ULONG *pcchName,
12929 /* [annotation][out] */
12930 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12931 /* [out] */ AssemblyID *pAssemblyId,
12932 /* [out] */ DWORD *pdwModuleFlags);
12934 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
12935 ICorProfilerInfo7 * This,
12936 /* [out] */ ICorProfilerThreadEnum **ppEnum);
12938 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
12939 ICorProfilerInfo7 * This);
12941 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
12942 ICorProfilerInfo7 * This,
12943 /* [in] */ ULONG cFunctions,
12944 /* [size_is][in] */ ModuleID moduleIds[ ],
12945 /* [size_is][in] */ mdMethodDef methodIds[ ]);
12947 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
12948 ICorProfilerInfo7 * This,
12949 /* [in] */ ULONG cFunctions,
12950 /* [size_is][in] */ ModuleID moduleIds[ ],
12951 /* [size_is][in] */ mdMethodDef methodIds[ ],
12952 /* [size_is][out] */ HRESULT status[ ]);
12954 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
12955 ICorProfilerInfo7 * This,
12956 /* [in] */ FunctionID functionID,
12957 /* [in] */ ReJITID reJitId,
12958 /* [in] */ ULONG32 cCodeInfos,
12959 /* [out] */ ULONG32 *pcCodeInfos,
12960 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12962 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
12963 ICorProfilerInfo7 * This,
12964 /* [in] */ LPCBYTE ip,
12965 /* [out] */ FunctionID *pFunctionId,
12966 /* [out] */ ReJITID *pReJitId);
12968 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
12969 ICorProfilerInfo7 * This,
12970 /* [in] */ FunctionID functionId,
12971 /* [in] */ ULONG cReJitIds,
12972 /* [out] */ ULONG *pcReJitIds,
12973 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
12975 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
12976 ICorProfilerInfo7 * This,
12977 /* [in] */ FunctionID functionId,
12978 /* [in] */ ReJITID reJitId,
12979 /* [in] */ ULONG32 cMap,
12980 /* [out] */ ULONG32 *pcMap,
12981 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
12983 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
12984 ICorProfilerInfo7 * This,
12985 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12987 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
12988 ICorProfilerInfo7 * This,
12989 /* [in] */ ObjectID objectId,
12990 /* [out] */ SIZE_T *pcSize);
12992 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
12993 ICorProfilerInfo7 * This,
12994 /* [out] */ DWORD *pdwEventsLow,
12995 /* [out] */ DWORD *pdwEventsHigh);
12997 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
12998 ICorProfilerInfo7 * This,
12999 /* [in] */ DWORD dwEventsLow,
13000 /* [in] */ DWORD dwEventsHigh);
13002 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
13003 ICorProfilerInfo7 * This,
13004 /* [in] */ ModuleID inlinersModuleId,
13005 /* [in] */ ModuleID inlineeModuleId,
13006 /* [in] */ mdMethodDef inlineeMethodId,
13007 /* [out] */ BOOL *incompleteData,
13008 /* [out] */ ICorProfilerMethodEnum **ppEnum);
13010 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
13011 ICorProfilerInfo7 * This,
13012 /* [in] */ ModuleID moduleId);
13014 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
13015 ICorProfilerInfo7 * This,
13016 /* [in] */ ModuleID moduleId,
13017 /* [out] */ DWORD *pCountSymbolBytes);
13019 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
13020 ICorProfilerInfo7 * This,
13021 /* [in] */ ModuleID moduleId,
13022 /* [in] */ DWORD symbolsReadOffset,
13023 /* [out] */ BYTE *pSymbolBytes,
13024 /* [in] */ DWORD countSymbolBytes,
13025 /* [out] */ DWORD *pCountSymbolBytesRead);
13028 } ICorProfilerInfo7Vtbl;
13030 interface ICorProfilerInfo7
13032 CONST_VTBL struct ICorProfilerInfo7Vtbl *lpVtbl;
13040 #define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \
13041 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13043 #define ICorProfilerInfo7_AddRef(This) \
13044 ( (This)->lpVtbl -> AddRef(This) )
13046 #define ICorProfilerInfo7_Release(This) \
13047 ( (This)->lpVtbl -> Release(This) )
13050 #define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \
13051 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
13053 #define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \
13054 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
13056 #define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \
13057 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
13059 #define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \
13060 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
13062 #define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \
13063 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
13065 #define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13066 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
13068 #define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \
13069 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
13071 #define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \
13072 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
13074 #define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
13075 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
13077 #define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13078 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
13080 #define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \
13081 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
13083 #define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
13084 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
13086 #define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
13087 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
13089 #define ICorProfilerInfo7_SetEventMask(This,dwEvents) \
13090 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
13092 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13093 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
13095 #define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \
13096 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
13098 #define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
13099 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
13101 #define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
13102 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
13104 #define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
13105 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
13107 #define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
13108 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
13110 #define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
13111 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
13113 #define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
13114 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
13116 #define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
13117 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
13119 #define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
13120 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
13122 #define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \
13123 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
13125 #define ICorProfilerInfo7_ForceGC(This) \
13126 ( (This)->lpVtbl -> ForceGC(This) )
13128 #define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
13129 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
13131 #define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \
13132 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
13134 #define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \
13135 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
13137 #define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \
13138 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
13140 #define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
13141 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
13143 #define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \
13144 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
13146 #define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
13147 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
13150 #define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
13151 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
13153 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13154 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
13156 #define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
13157 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
13159 #define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
13160 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
13162 #define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
13163 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
13165 #define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
13166 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
13168 #define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
13169 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
13171 #define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
13172 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
13174 #define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
13175 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
13177 #define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
13178 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
13180 #define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
13181 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
13183 #define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \
13184 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
13186 #define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \
13187 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
13189 #define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
13190 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
13192 #define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
13193 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
13195 #define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
13196 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
13198 #define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
13199 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
13201 #define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
13202 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
13204 #define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
13205 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
13207 #define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \
13208 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
13210 #define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \
13211 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
13214 #define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \
13215 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
13217 #define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
13218 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
13220 #define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \
13221 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
13223 #define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
13224 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
13226 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
13227 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
13229 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
13230 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
13232 #define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
13233 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
13235 #define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
13236 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
13238 #define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
13239 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
13241 #define ICorProfilerInfo7_EnumModules(This,ppEnum) \
13242 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
13244 #define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
13245 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
13247 #define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
13248 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
13250 #define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
13251 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
13253 #define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
13254 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
13257 #define ICorProfilerInfo7_EnumThreads(This,ppEnum) \
13258 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
13260 #define ICorProfilerInfo7_InitializeCurrentThread(This) \
13261 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
13263 #define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
13264 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
13266 #define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
13267 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
13269 #define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
13270 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
13272 #define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
13273 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
13275 #define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
13276 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
13278 #define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
13279 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
13281 #define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \
13282 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
13284 #define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \
13285 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
13288 #define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
13289 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
13291 #define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
13292 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
13295 #define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
13296 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
13299 #define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \
13300 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
13302 #define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
13303 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
13305 #define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
13306 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
13308 #endif /* COBJMACROS */
13311 #endif /* C style interface */
13316 #endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */
13319 #ifndef __ICorProfilerInfo8_INTERFACE_DEFINED__
13320 #define __ICorProfilerInfo8_INTERFACE_DEFINED__
13322 /* interface ICorProfilerInfo8 */
13323 /* [local][unique][uuid][object] */
13326 EXTERN_C const IID IID_ICorProfilerInfo8;
13328 #if defined(__cplusplus) && !defined(CINTERFACE)
13330 MIDL_INTERFACE("C5AC80A6-782E-4716-8044-39598C60CFBF")
13331 ICorProfilerInfo8 : public ICorProfilerInfo7
13334 virtual HRESULT STDMETHODCALLTYPE IsFunctionDynamic(
13335 /* [in] */ FunctionID functionId,
13336 /* [out] */ BOOL *isDynamic) = 0;
13338 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP3(
13339 /* [in] */ LPCBYTE ip,
13340 /* [out] */ FunctionID *functionId,
13341 /* [out] */ ReJITID *pReJitId) = 0;
13343 virtual HRESULT STDMETHODCALLTYPE GetDynamicFunctionInfo(
13344 /* [in] */ FunctionID functionId,
13345 /* [out] */ ModuleID *moduleId,
13346 /* [out] */ PCCOR_SIGNATURE *ppvSig,
13347 /* [out] */ ULONG *pbSig,
13348 /* [in] */ ULONG cchName,
13349 /* [out] */ ULONG *pcchName,
13350 /* [out] */ WCHAR wszName[ ]) = 0;
13355 #else /* C style interface */
13357 typedef struct ICorProfilerInfo8Vtbl
13361 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13362 ICorProfilerInfo8 * This,
13363 /* [in] */ REFIID riid,
13364 /* [annotation][iid_is][out] */
13365 _COM_Outptr_ void **ppvObject);
13367 ULONG ( STDMETHODCALLTYPE *AddRef )(
13368 ICorProfilerInfo8 * This);
13370 ULONG ( STDMETHODCALLTYPE *Release )(
13371 ICorProfilerInfo8 * This);
13373 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
13374 ICorProfilerInfo8 * This,
13375 /* [in] */ ObjectID objectId,
13376 /* [out] */ ClassID *pClassId);
13378 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
13379 ICorProfilerInfo8 * This,
13380 /* [in] */ ModuleID moduleId,
13381 /* [in] */ mdTypeDef typeDef,
13382 /* [out] */ ClassID *pClassId);
13384 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
13385 ICorProfilerInfo8 * This,
13386 /* [in] */ FunctionID functionId,
13387 /* [out] */ LPCBYTE *pStart,
13388 /* [out] */ ULONG *pcSize);
13390 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
13391 ICorProfilerInfo8 * This,
13392 /* [out] */ DWORD *pdwEvents);
13394 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
13395 ICorProfilerInfo8 * This,
13396 /* [in] */ LPCBYTE ip,
13397 /* [out] */ FunctionID *pFunctionId);
13399 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
13400 ICorProfilerInfo8 * This,
13401 /* [in] */ ModuleID moduleId,
13402 /* [in] */ mdToken token,
13403 /* [out] */ FunctionID *pFunctionId);
13405 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
13406 ICorProfilerInfo8 * This,
13407 /* [in] */ ThreadID threadId,
13408 /* [out] */ HANDLE *phThread);
13410 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
13411 ICorProfilerInfo8 * This,
13412 /* [in] */ ObjectID objectId,
13413 /* [out] */ ULONG *pcSize);
13415 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
13416 ICorProfilerInfo8 * This,
13417 /* [in] */ ClassID classId,
13418 /* [out] */ CorElementType *pBaseElemType,
13419 /* [out] */ ClassID *pBaseClassId,
13420 /* [out] */ ULONG *pcRank);
13422 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
13423 ICorProfilerInfo8 * This,
13424 /* [in] */ ThreadID threadId,
13425 /* [out] */ DWORD *pdwWin32ThreadId);
13427 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
13428 ICorProfilerInfo8 * This,
13429 /* [out] */ ThreadID *pThreadId);
13431 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
13432 ICorProfilerInfo8 * This,
13433 /* [in] */ ClassID classId,
13434 /* [out] */ ModuleID *pModuleId,
13435 /* [out] */ mdTypeDef *pTypeDefToken);
13437 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
13438 ICorProfilerInfo8 * This,
13439 /* [in] */ FunctionID functionId,
13440 /* [out] */ ClassID *pClassId,
13441 /* [out] */ ModuleID *pModuleId,
13442 /* [out] */ mdToken *pToken);
13444 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
13445 ICorProfilerInfo8 * This,
13446 /* [in] */ DWORD dwEvents);
13448 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
13449 ICorProfilerInfo8 * This,
13450 /* [in] */ FunctionEnter *pFuncEnter,
13451 /* [in] */ FunctionLeave *pFuncLeave,
13452 /* [in] */ FunctionTailcall *pFuncTailcall);
13454 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
13455 ICorProfilerInfo8 * This,
13456 /* [in] */ FunctionIDMapper *pFunc);
13458 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
13459 ICorProfilerInfo8 * This,
13460 /* [in] */ FunctionID functionId,
13461 /* [in] */ REFIID riid,
13462 /* [out] */ IUnknown **ppImport,
13463 /* [out] */ mdToken *pToken);
13465 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
13466 ICorProfilerInfo8 * This,
13467 /* [in] */ ModuleID moduleId,
13468 /* [out] */ LPCBYTE *ppBaseLoadAddress,
13469 /* [in] */ ULONG cchName,
13470 /* [out] */ ULONG *pcchName,
13471 /* [annotation][out] */
13472 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13473 /* [out] */ AssemblyID *pAssemblyId);
13475 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
13476 ICorProfilerInfo8 * This,
13477 /* [in] */ ModuleID moduleId,
13478 /* [in] */ DWORD dwOpenFlags,
13479 /* [in] */ REFIID riid,
13480 /* [out] */ IUnknown **ppOut);
13482 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
13483 ICorProfilerInfo8 * This,
13484 /* [in] */ ModuleID moduleId,
13485 /* [in] */ mdMethodDef methodId,
13486 /* [out] */ LPCBYTE *ppMethodHeader,
13487 /* [out] */ ULONG *pcbMethodSize);
13489 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
13490 ICorProfilerInfo8 * This,
13491 /* [in] */ ModuleID moduleId,
13492 /* [out] */ IMethodMalloc **ppMalloc);
13494 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
13495 ICorProfilerInfo8 * This,
13496 /* [in] */ ModuleID moduleId,
13497 /* [in] */ mdMethodDef methodid,
13498 /* [in] */ LPCBYTE pbNewILMethodHeader);
13500 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
13501 ICorProfilerInfo8 * This,
13502 /* [in] */ AppDomainID appDomainId,
13503 /* [in] */ ULONG cchName,
13504 /* [out] */ ULONG *pcchName,
13505 /* [annotation][out] */
13506 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13507 /* [out] */ ProcessID *pProcessId);
13509 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
13510 ICorProfilerInfo8 * This,
13511 /* [in] */ AssemblyID assemblyId,
13512 /* [in] */ ULONG cchName,
13513 /* [out] */ ULONG *pcchName,
13514 /* [annotation][out] */
13515 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13516 /* [out] */ AppDomainID *pAppDomainId,
13517 /* [out] */ ModuleID *pModuleId);
13519 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
13520 ICorProfilerInfo8 * This,
13521 /* [in] */ FunctionID functionId);
13523 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
13524 ICorProfilerInfo8 * This);
13526 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
13527 ICorProfilerInfo8 * This,
13528 /* [in] */ FunctionID functionId,
13529 /* [in] */ BOOL fStartJit,
13530 /* [in] */ ULONG cILMapEntries,
13531 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
13533 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
13534 ICorProfilerInfo8 * This,
13535 /* [out] */ IUnknown **ppicd);
13537 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
13538 ICorProfilerInfo8 * This,
13539 /* [out] */ IUnknown **ppicd);
13541 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
13542 ICorProfilerInfo8 * This,
13543 /* [in] */ ThreadID threadId,
13544 /* [out] */ ContextID *pContextId);
13546 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
13547 ICorProfilerInfo8 * This,
13548 /* [in] */ BOOL fThisThreadOnly,
13549 /* [out] */ DWORD *pdwProfilerContext);
13551 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
13552 ICorProfilerInfo8 * This,
13553 /* [in] */ DWORD dwProfilerContext);
13555 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
13556 ICorProfilerInfo8 * This,
13557 /* [in] */ FunctionID functionId,
13558 /* [in] */ ULONG32 cMap,
13559 /* [out] */ ULONG32 *pcMap,
13560 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
13562 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
13563 ICorProfilerInfo8 * This,
13564 /* [in] */ ThreadID thread,
13565 /* [in] */ StackSnapshotCallback *callback,
13566 /* [in] */ ULONG32 infoFlags,
13567 /* [in] */ void *clientData,
13568 /* [size_is][in] */ BYTE context[ ],
13569 /* [in] */ ULONG32 contextSize);
13571 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
13572 ICorProfilerInfo8 * This,
13573 /* [in] */ FunctionEnter2 *pFuncEnter,
13574 /* [in] */ FunctionLeave2 *pFuncLeave,
13575 /* [in] */ FunctionTailcall2 *pFuncTailcall);
13577 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
13578 ICorProfilerInfo8 * This,
13579 /* [in] */ FunctionID funcId,
13580 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
13581 /* [out] */ ClassID *pClassId,
13582 /* [out] */ ModuleID *pModuleId,
13583 /* [out] */ mdToken *pToken,
13584 /* [in] */ ULONG32 cTypeArgs,
13585 /* [out] */ ULONG32 *pcTypeArgs,
13586 /* [out] */ ClassID typeArgs[ ]);
13588 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
13589 ICorProfilerInfo8 * This,
13590 /* [out] */ ULONG *pBufferLengthOffset,
13591 /* [out] */ ULONG *pStringLengthOffset,
13592 /* [out] */ ULONG *pBufferOffset);
13594 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
13595 ICorProfilerInfo8 * This,
13596 /* [in] */ ClassID classID,
13597 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
13598 /* [in] */ ULONG cFieldOffset,
13599 /* [out] */ ULONG *pcFieldOffset,
13600 /* [out] */ ULONG *pulClassSize);
13602 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
13603 ICorProfilerInfo8 * This,
13604 /* [in] */ ClassID classId,
13605 /* [out] */ ModuleID *pModuleId,
13606 /* [out] */ mdTypeDef *pTypeDefToken,
13607 /* [out] */ ClassID *pParentClassId,
13608 /* [in] */ ULONG32 cNumTypeArgs,
13609 /* [out] */ ULONG32 *pcNumTypeArgs,
13610 /* [out] */ ClassID typeArgs[ ]);
13612 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
13613 ICorProfilerInfo8 * This,
13614 /* [in] */ FunctionID functionID,
13615 /* [in] */ ULONG32 cCodeInfos,
13616 /* [out] */ ULONG32 *pcCodeInfos,
13617 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
13619 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
13620 ICorProfilerInfo8 * This,
13621 /* [in] */ ModuleID moduleID,
13622 /* [in] */ mdTypeDef typeDef,
13623 /* [in] */ ULONG32 cTypeArgs,
13624 /* [size_is][in] */ ClassID typeArgs[ ],
13625 /* [out] */ ClassID *pClassID);
13627 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
13628 ICorProfilerInfo8 * This,
13629 /* [in] */ ModuleID moduleID,
13630 /* [in] */ mdMethodDef funcDef,
13631 /* [in] */ ClassID classId,
13632 /* [in] */ ULONG32 cTypeArgs,
13633 /* [size_is][in] */ ClassID typeArgs[ ],
13634 /* [out] */ FunctionID *pFunctionID);
13636 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
13637 ICorProfilerInfo8 * This,
13638 /* [in] */ ModuleID moduleID,
13639 /* [out] */ ICorProfilerObjectEnum **ppEnum);
13641 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
13642 ICorProfilerInfo8 * This,
13643 /* [in] */ ObjectID objectId,
13644 /* [in] */ ULONG32 cDimensions,
13645 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
13646 /* [size_is][out] */ int pDimensionLowerBounds[ ],
13647 /* [out] */ BYTE **ppData);
13649 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
13650 ICorProfilerInfo8 * This,
13651 /* [in] */ ClassID classId,
13652 /* [out] */ ULONG32 *pBufferOffset);
13654 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
13655 ICorProfilerInfo8 * This,
13656 /* [in] */ ThreadID threadId,
13657 /* [out] */ AppDomainID *pAppDomainId);
13659 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
13660 ICorProfilerInfo8 * This,
13661 /* [in] */ ClassID classId,
13662 /* [in] */ mdFieldDef fieldToken,
13663 /* [out] */ void **ppAddress);
13665 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
13666 ICorProfilerInfo8 * This,
13667 /* [in] */ ClassID classId,
13668 /* [in] */ mdFieldDef fieldToken,
13669 /* [in] */ AppDomainID appDomainId,
13670 /* [out] */ void **ppAddress);
13672 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
13673 ICorProfilerInfo8 * This,
13674 /* [in] */ ClassID classId,
13675 /* [in] */ mdFieldDef fieldToken,
13676 /* [in] */ ThreadID threadId,
13677 /* [out] */ void **ppAddress);
13679 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
13680 ICorProfilerInfo8 * This,
13681 /* [in] */ ClassID classId,
13682 /* [in] */ mdFieldDef fieldToken,
13683 /* [in] */ ContextID contextId,
13684 /* [out] */ void **ppAddress);
13686 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
13687 ICorProfilerInfo8 * This,
13688 /* [in] */ ClassID classId,
13689 /* [in] */ mdFieldDef fieldToken,
13690 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
13692 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
13693 ICorProfilerInfo8 * This,
13694 /* [in] */ ULONG cObjectRanges,
13695 /* [out] */ ULONG *pcObjectRanges,
13696 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
13698 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
13699 ICorProfilerInfo8 * This,
13700 /* [in] */ ObjectID objectId,
13701 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
13703 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
13704 ICorProfilerInfo8 * This,
13705 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
13707 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
13708 ICorProfilerInfo8 * This,
13709 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13711 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
13712 ICorProfilerInfo8 * This,
13713 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
13715 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
13716 ICorProfilerInfo8 * This,
13717 /* [in] */ FunctionIDMapper2 *pFunc,
13718 /* [in] */ void *clientData);
13720 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
13721 ICorProfilerInfo8 * This,
13722 /* [out] */ ULONG *pStringLengthOffset,
13723 /* [out] */ ULONG *pBufferOffset);
13725 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
13726 ICorProfilerInfo8 * This,
13727 /* [in] */ FunctionEnter3 *pFuncEnter3,
13728 /* [in] */ FunctionLeave3 *pFuncLeave3,
13729 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
13731 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
13732 ICorProfilerInfo8 * This,
13733 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
13734 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
13735 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
13737 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
13738 ICorProfilerInfo8 * This,
13739 /* [in] */ FunctionID functionId,
13740 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13741 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13742 /* [out][in] */ ULONG *pcbArgumentInfo,
13743 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
13745 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
13746 ICorProfilerInfo8 * This,
13747 /* [in] */ FunctionID functionId,
13748 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13749 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13750 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
13752 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
13753 ICorProfilerInfo8 * This,
13754 /* [in] */ FunctionID functionId,
13755 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13756 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
13758 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
13759 ICorProfilerInfo8 * This,
13760 /* [out] */ ICorProfilerModuleEnum **ppEnum);
13762 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
13763 ICorProfilerInfo8 * This,
13764 /* [out] */ USHORT *pClrInstanceId,
13765 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
13766 /* [out] */ USHORT *pMajorVersion,
13767 /* [out] */ USHORT *pMinorVersion,
13768 /* [out] */ USHORT *pBuildNumber,
13769 /* [out] */ USHORT *pQFEVersion,
13770 /* [in] */ ULONG cchVersionString,
13771 /* [out] */ ULONG *pcchVersionString,
13772 /* [annotation][out] */
13773 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
13775 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
13776 ICorProfilerInfo8 * This,
13777 /* [in] */ ClassID classId,
13778 /* [in] */ mdFieldDef fieldToken,
13779 /* [in] */ AppDomainID appDomainId,
13780 /* [in] */ ThreadID threadId,
13781 /* [out] */ void **ppAddress);
13783 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
13784 ICorProfilerInfo8 * This,
13785 /* [in] */ ModuleID moduleId,
13786 /* [in] */ ULONG32 cAppDomainIds,
13787 /* [out] */ ULONG32 *pcAppDomainIds,
13788 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
13790 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
13791 ICorProfilerInfo8 * This,
13792 /* [in] */ ModuleID moduleId,
13793 /* [out] */ LPCBYTE *ppBaseLoadAddress,
13794 /* [in] */ ULONG cchName,
13795 /* [out] */ ULONG *pcchName,
13796 /* [annotation][out] */
13797 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13798 /* [out] */ AssemblyID *pAssemblyId,
13799 /* [out] */ DWORD *pdwModuleFlags);
13801 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
13802 ICorProfilerInfo8 * This,
13803 /* [out] */ ICorProfilerThreadEnum **ppEnum);
13805 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
13806 ICorProfilerInfo8 * This);
13808 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
13809 ICorProfilerInfo8 * This,
13810 /* [in] */ ULONG cFunctions,
13811 /* [size_is][in] */ ModuleID moduleIds[ ],
13812 /* [size_is][in] */ mdMethodDef methodIds[ ]);
13814 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
13815 ICorProfilerInfo8 * This,
13816 /* [in] */ ULONG cFunctions,
13817 /* [size_is][in] */ ModuleID moduleIds[ ],
13818 /* [size_is][in] */ mdMethodDef methodIds[ ],
13819 /* [size_is][out] */ HRESULT status[ ]);
13821 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
13822 ICorProfilerInfo8 * This,
13823 /* [in] */ FunctionID functionID,
13824 /* [in] */ ReJITID reJitId,
13825 /* [in] */ ULONG32 cCodeInfos,
13826 /* [out] */ ULONG32 *pcCodeInfos,
13827 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
13829 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
13830 ICorProfilerInfo8 * This,
13831 /* [in] */ LPCBYTE ip,
13832 /* [out] */ FunctionID *pFunctionId,
13833 /* [out] */ ReJITID *pReJitId);
13835 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
13836 ICorProfilerInfo8 * This,
13837 /* [in] */ FunctionID functionId,
13838 /* [in] */ ULONG cReJitIds,
13839 /* [out] */ ULONG *pcReJitIds,
13840 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
13842 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
13843 ICorProfilerInfo8 * This,
13844 /* [in] */ FunctionID functionId,
13845 /* [in] */ ReJITID reJitId,
13846 /* [in] */ ULONG32 cMap,
13847 /* [out] */ ULONG32 *pcMap,
13848 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
13850 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
13851 ICorProfilerInfo8 * This,
13852 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13854 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
13855 ICorProfilerInfo8 * This,
13856 /* [in] */ ObjectID objectId,
13857 /* [out] */ SIZE_T *pcSize);
13859 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
13860 ICorProfilerInfo8 * This,
13861 /* [out] */ DWORD *pdwEventsLow,
13862 /* [out] */ DWORD *pdwEventsHigh);
13864 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
13865 ICorProfilerInfo8 * This,
13866 /* [in] */ DWORD dwEventsLow,
13867 /* [in] */ DWORD dwEventsHigh);
13869 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
13870 ICorProfilerInfo8 * This,
13871 /* [in] */ ModuleID inlinersModuleId,
13872 /* [in] */ ModuleID inlineeModuleId,
13873 /* [in] */ mdMethodDef inlineeMethodId,
13874 /* [out] */ BOOL *incompleteData,
13875 /* [out] */ ICorProfilerMethodEnum **ppEnum);
13877 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
13878 ICorProfilerInfo8 * This,
13879 /* [in] */ ModuleID moduleId);
13881 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
13882 ICorProfilerInfo8 * This,
13883 /* [in] */ ModuleID moduleId,
13884 /* [out] */ DWORD *pCountSymbolBytes);
13886 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
13887 ICorProfilerInfo8 * This,
13888 /* [in] */ ModuleID moduleId,
13889 /* [in] */ DWORD symbolsReadOffset,
13890 /* [out] */ BYTE *pSymbolBytes,
13891 /* [in] */ DWORD countSymbolBytes,
13892 /* [out] */ DWORD *pCountSymbolBytesRead);
13894 HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )(
13895 ICorProfilerInfo8 * This,
13896 /* [in] */ FunctionID functionId,
13897 /* [out] */ BOOL *isDynamic);
13899 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )(
13900 ICorProfilerInfo8 * This,
13901 /* [in] */ LPCBYTE ip,
13902 /* [out] */ FunctionID *functionId,
13903 /* [out] */ ReJITID *pReJitId);
13905 HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )(
13906 ICorProfilerInfo8 * This,
13907 /* [in] */ FunctionID functionId,
13908 /* [out] */ ModuleID *moduleId,
13909 /* [out] */ PCCOR_SIGNATURE *ppvSig,
13910 /* [out] */ ULONG *pbSig,
13911 /* [in] */ ULONG cchName,
13912 /* [out] */ ULONG *pcchName,
13913 /* [out] */ WCHAR wszName[ ]);
13916 } ICorProfilerInfo8Vtbl;
13918 interface ICorProfilerInfo8
13920 CONST_VTBL struct ICorProfilerInfo8Vtbl *lpVtbl;
13928 #define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \
13929 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13931 #define ICorProfilerInfo8_AddRef(This) \
13932 ( (This)->lpVtbl -> AddRef(This) )
13934 #define ICorProfilerInfo8_Release(This) \
13935 ( (This)->lpVtbl -> Release(This) )
13938 #define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \
13939 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
13941 #define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \
13942 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
13944 #define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \
13945 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
13947 #define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \
13948 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
13950 #define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \
13951 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
13953 #define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13954 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
13956 #define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \
13957 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
13959 #define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \
13960 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
13962 #define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
13963 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
13965 #define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13966 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
13968 #define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \
13969 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
13971 #define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
13972 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
13974 #define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
13975 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
13977 #define ICorProfilerInfo8_SetEventMask(This,dwEvents) \
13978 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
13980 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13981 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
13983 #define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \
13984 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
13986 #define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
13987 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
13989 #define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
13990 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
13992 #define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
13993 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
13995 #define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
13996 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
13998 #define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
13999 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
14001 #define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14002 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
14004 #define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14005 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
14007 #define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
14008 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
14010 #define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \
14011 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
14013 #define ICorProfilerInfo8_ForceGC(This) \
14014 ( (This)->lpVtbl -> ForceGC(This) )
14016 #define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
14017 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
14019 #define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \
14020 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
14022 #define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \
14023 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
14025 #define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \
14026 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
14028 #define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14029 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
14031 #define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \
14032 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
14034 #define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
14035 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
14038 #define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
14039 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
14041 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14042 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14044 #define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
14045 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
14047 #define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
14048 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
14050 #define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
14051 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
14053 #define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
14054 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
14056 #define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
14057 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
14059 #define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
14060 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
14062 #define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
14063 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
14065 #define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
14066 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
14068 #define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
14069 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
14071 #define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \
14072 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
14074 #define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \
14075 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
14077 #define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
14078 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
14080 #define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
14081 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
14083 #define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
14084 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
14086 #define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
14087 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
14089 #define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
14090 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
14092 #define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
14093 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
14095 #define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \
14096 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
14098 #define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \
14099 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
14102 #define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \
14103 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
14105 #define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
14106 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
14108 #define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \
14109 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
14111 #define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
14112 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
14114 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
14115 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
14117 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
14118 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
14120 #define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
14121 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
14123 #define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
14124 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
14126 #define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
14127 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
14129 #define ICorProfilerInfo8_EnumModules(This,ppEnum) \
14130 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
14132 #define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
14133 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
14135 #define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
14136 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
14138 #define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
14139 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
14141 #define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
14142 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
14145 #define ICorProfilerInfo8_EnumThreads(This,ppEnum) \
14146 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
14148 #define ICorProfilerInfo8_InitializeCurrentThread(This) \
14149 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
14151 #define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
14152 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
14154 #define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
14155 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
14157 #define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
14158 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
14160 #define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
14161 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
14163 #define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
14164 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
14166 #define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
14167 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
14169 #define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \
14170 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
14172 #define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \
14173 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
14176 #define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
14177 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
14179 #define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
14180 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
14183 #define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
14184 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
14187 #define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \
14188 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
14190 #define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
14191 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
14193 #define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
14194 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
14197 #define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \
14198 ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) )
14200 #define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \
14201 ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) )
14203 #define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \
14204 ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) )
14206 #endif /* COBJMACROS */
14209 #endif /* C style interface */
14214 #endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */
14217 #ifndef __ICorProfilerInfo9_INTERFACE_DEFINED__
14218 #define __ICorProfilerInfo9_INTERFACE_DEFINED__
14220 /* interface ICorProfilerInfo9 */
14221 /* [local][unique][uuid][object] */
14224 EXTERN_C const IID IID_ICorProfilerInfo9;
14226 #if defined(__cplusplus) && !defined(CINTERFACE)
14228 MIDL_INTERFACE("008170db-f8cc-4796-9a51-dc8aa0b47012")
14229 ICorProfilerInfo9 : public ICorProfilerInfo8
14232 virtual HRESULT STDMETHODCALLTYPE GetNativeCodeStartAddresses(
14233 FunctionID functionID,
14235 ULONG32 cCodeStartAddresses,
14236 ULONG32 *pcCodeStartAddresses,
14237 UINT_PTR codeStartAddresses[ ]) = 0;
14239 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping3(
14240 UINT_PTR pNativeCodeStartAddress,
14243 COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
14245 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo4(
14246 UINT_PTR pNativeCodeStartAddress,
14247 ULONG32 cCodeInfos,
14248 ULONG32 *pcCodeInfos,
14249 COR_PRF_CODE_INFO codeInfos[ ]) = 0;
14254 #else /* C style interface */
14256 typedef struct ICorProfilerInfo9Vtbl
14260 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14261 ICorProfilerInfo9 * This,
14262 /* [in] */ REFIID riid,
14263 /* [annotation][iid_is][out] */
14264 _COM_Outptr_ void **ppvObject);
14266 ULONG ( STDMETHODCALLTYPE *AddRef )(
14267 ICorProfilerInfo9 * This);
14269 ULONG ( STDMETHODCALLTYPE *Release )(
14270 ICorProfilerInfo9 * This);
14272 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
14273 ICorProfilerInfo9 * This,
14274 /* [in] */ ObjectID objectId,
14275 /* [out] */ ClassID *pClassId);
14277 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
14278 ICorProfilerInfo9 * This,
14279 /* [in] */ ModuleID moduleId,
14280 /* [in] */ mdTypeDef typeDef,
14281 /* [out] */ ClassID *pClassId);
14283 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
14284 ICorProfilerInfo9 * This,
14285 /* [in] */ FunctionID functionId,
14286 /* [out] */ LPCBYTE *pStart,
14287 /* [out] */ ULONG *pcSize);
14289 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
14290 ICorProfilerInfo9 * This,
14291 /* [out] */ DWORD *pdwEvents);
14293 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
14294 ICorProfilerInfo9 * This,
14295 /* [in] */ LPCBYTE ip,
14296 /* [out] */ FunctionID *pFunctionId);
14298 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
14299 ICorProfilerInfo9 * This,
14300 /* [in] */ ModuleID moduleId,
14301 /* [in] */ mdToken token,
14302 /* [out] */ FunctionID *pFunctionId);
14304 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
14305 ICorProfilerInfo9 * This,
14306 /* [in] */ ThreadID threadId,
14307 /* [out] */ HANDLE *phThread);
14309 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
14310 ICorProfilerInfo9 * This,
14311 /* [in] */ ObjectID objectId,
14312 /* [out] */ ULONG *pcSize);
14314 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
14315 ICorProfilerInfo9 * This,
14316 /* [in] */ ClassID classId,
14317 /* [out] */ CorElementType *pBaseElemType,
14318 /* [out] */ ClassID *pBaseClassId,
14319 /* [out] */ ULONG *pcRank);
14321 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
14322 ICorProfilerInfo9 * This,
14323 /* [in] */ ThreadID threadId,
14324 /* [out] */ DWORD *pdwWin32ThreadId);
14326 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
14327 ICorProfilerInfo9 * This,
14328 /* [out] */ ThreadID *pThreadId);
14330 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
14331 ICorProfilerInfo9 * This,
14332 /* [in] */ ClassID classId,
14333 /* [out] */ ModuleID *pModuleId,
14334 /* [out] */ mdTypeDef *pTypeDefToken);
14336 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
14337 ICorProfilerInfo9 * This,
14338 /* [in] */ FunctionID functionId,
14339 /* [out] */ ClassID *pClassId,
14340 /* [out] */ ModuleID *pModuleId,
14341 /* [out] */ mdToken *pToken);
14343 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
14344 ICorProfilerInfo9 * This,
14345 /* [in] */ DWORD dwEvents);
14347 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
14348 ICorProfilerInfo9 * This,
14349 /* [in] */ FunctionEnter *pFuncEnter,
14350 /* [in] */ FunctionLeave *pFuncLeave,
14351 /* [in] */ FunctionTailcall *pFuncTailcall);
14353 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
14354 ICorProfilerInfo9 * This,
14355 /* [in] */ FunctionIDMapper *pFunc);
14357 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
14358 ICorProfilerInfo9 * This,
14359 /* [in] */ FunctionID functionId,
14360 /* [in] */ REFIID riid,
14361 /* [out] */ IUnknown **ppImport,
14362 /* [out] */ mdToken *pToken);
14364 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
14365 ICorProfilerInfo9 * This,
14366 /* [in] */ ModuleID moduleId,
14367 /* [out] */ LPCBYTE *ppBaseLoadAddress,
14368 /* [in] */ ULONG cchName,
14369 /* [out] */ ULONG *pcchName,
14370 /* [annotation][out] */
14371 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14372 /* [out] */ AssemblyID *pAssemblyId);
14374 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
14375 ICorProfilerInfo9 * This,
14376 /* [in] */ ModuleID moduleId,
14377 /* [in] */ DWORD dwOpenFlags,
14378 /* [in] */ REFIID riid,
14379 /* [out] */ IUnknown **ppOut);
14381 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
14382 ICorProfilerInfo9 * This,
14383 /* [in] */ ModuleID moduleId,
14384 /* [in] */ mdMethodDef methodId,
14385 /* [out] */ LPCBYTE *ppMethodHeader,
14386 /* [out] */ ULONG *pcbMethodSize);
14388 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
14389 ICorProfilerInfo9 * This,
14390 /* [in] */ ModuleID moduleId,
14391 /* [out] */ IMethodMalloc **ppMalloc);
14393 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
14394 ICorProfilerInfo9 * This,
14395 /* [in] */ ModuleID moduleId,
14396 /* [in] */ mdMethodDef methodid,
14397 /* [in] */ LPCBYTE pbNewILMethodHeader);
14399 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
14400 ICorProfilerInfo9 * This,
14401 /* [in] */ AppDomainID appDomainId,
14402 /* [in] */ ULONG cchName,
14403 /* [out] */ ULONG *pcchName,
14404 /* [annotation][out] */
14405 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14406 /* [out] */ ProcessID *pProcessId);
14408 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
14409 ICorProfilerInfo9 * This,
14410 /* [in] */ AssemblyID assemblyId,
14411 /* [in] */ ULONG cchName,
14412 /* [out] */ ULONG *pcchName,
14413 /* [annotation][out] */
14414 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14415 /* [out] */ AppDomainID *pAppDomainId,
14416 /* [out] */ ModuleID *pModuleId);
14418 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
14419 ICorProfilerInfo9 * This,
14420 /* [in] */ FunctionID functionId);
14422 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
14423 ICorProfilerInfo9 * This);
14425 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
14426 ICorProfilerInfo9 * This,
14427 /* [in] */ FunctionID functionId,
14428 /* [in] */ BOOL fStartJit,
14429 /* [in] */ ULONG cILMapEntries,
14430 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
14432 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
14433 ICorProfilerInfo9 * This,
14434 /* [out] */ IUnknown **ppicd);
14436 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
14437 ICorProfilerInfo9 * This,
14438 /* [out] */ IUnknown **ppicd);
14440 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
14441 ICorProfilerInfo9 * This,
14442 /* [in] */ ThreadID threadId,
14443 /* [out] */ ContextID *pContextId);
14445 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
14446 ICorProfilerInfo9 * This,
14447 /* [in] */ BOOL fThisThreadOnly,
14448 /* [out] */ DWORD *pdwProfilerContext);
14450 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
14451 ICorProfilerInfo9 * This,
14452 /* [in] */ DWORD dwProfilerContext);
14454 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
14455 ICorProfilerInfo9 * This,
14456 /* [in] */ FunctionID functionId,
14457 /* [in] */ ULONG32 cMap,
14458 /* [out] */ ULONG32 *pcMap,
14459 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14461 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
14462 ICorProfilerInfo9 * This,
14463 /* [in] */ ThreadID thread,
14464 /* [in] */ StackSnapshotCallback *callback,
14465 /* [in] */ ULONG32 infoFlags,
14466 /* [in] */ void *clientData,
14467 /* [size_is][in] */ BYTE context[ ],
14468 /* [in] */ ULONG32 contextSize);
14470 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
14471 ICorProfilerInfo9 * This,
14472 /* [in] */ FunctionEnter2 *pFuncEnter,
14473 /* [in] */ FunctionLeave2 *pFuncLeave,
14474 /* [in] */ FunctionTailcall2 *pFuncTailcall);
14476 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
14477 ICorProfilerInfo9 * This,
14478 /* [in] */ FunctionID funcId,
14479 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
14480 /* [out] */ ClassID *pClassId,
14481 /* [out] */ ModuleID *pModuleId,
14482 /* [out] */ mdToken *pToken,
14483 /* [in] */ ULONG32 cTypeArgs,
14484 /* [out] */ ULONG32 *pcTypeArgs,
14485 /* [out] */ ClassID typeArgs[ ]);
14487 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
14488 ICorProfilerInfo9 * This,
14489 /* [out] */ ULONG *pBufferLengthOffset,
14490 /* [out] */ ULONG *pStringLengthOffset,
14491 /* [out] */ ULONG *pBufferOffset);
14493 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
14494 ICorProfilerInfo9 * This,
14495 /* [in] */ ClassID classID,
14496 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
14497 /* [in] */ ULONG cFieldOffset,
14498 /* [out] */ ULONG *pcFieldOffset,
14499 /* [out] */ ULONG *pulClassSize);
14501 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
14502 ICorProfilerInfo9 * This,
14503 /* [in] */ ClassID classId,
14504 /* [out] */ ModuleID *pModuleId,
14505 /* [out] */ mdTypeDef *pTypeDefToken,
14506 /* [out] */ ClassID *pParentClassId,
14507 /* [in] */ ULONG32 cNumTypeArgs,
14508 /* [out] */ ULONG32 *pcNumTypeArgs,
14509 /* [out] */ ClassID typeArgs[ ]);
14511 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
14512 ICorProfilerInfo9 * This,
14513 /* [in] */ FunctionID functionID,
14514 /* [in] */ ULONG32 cCodeInfos,
14515 /* [out] */ ULONG32 *pcCodeInfos,
14516 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
14518 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
14519 ICorProfilerInfo9 * This,
14520 /* [in] */ ModuleID moduleID,
14521 /* [in] */ mdTypeDef typeDef,
14522 /* [in] */ ULONG32 cTypeArgs,
14523 /* [size_is][in] */ ClassID typeArgs[ ],
14524 /* [out] */ ClassID *pClassID);
14526 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
14527 ICorProfilerInfo9 * This,
14528 /* [in] */ ModuleID moduleID,
14529 /* [in] */ mdMethodDef funcDef,
14530 /* [in] */ ClassID classId,
14531 /* [in] */ ULONG32 cTypeArgs,
14532 /* [size_is][in] */ ClassID typeArgs[ ],
14533 /* [out] */ FunctionID *pFunctionID);
14535 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
14536 ICorProfilerInfo9 * This,
14537 /* [in] */ ModuleID moduleID,
14538 /* [out] */ ICorProfilerObjectEnum **ppEnum);
14540 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
14541 ICorProfilerInfo9 * This,
14542 /* [in] */ ObjectID objectId,
14543 /* [in] */ ULONG32 cDimensions,
14544 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
14545 /* [size_is][out] */ int pDimensionLowerBounds[ ],
14546 /* [out] */ BYTE **ppData);
14548 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
14549 ICorProfilerInfo9 * This,
14550 /* [in] */ ClassID classId,
14551 /* [out] */ ULONG32 *pBufferOffset);
14553 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
14554 ICorProfilerInfo9 * This,
14555 /* [in] */ ThreadID threadId,
14556 /* [out] */ AppDomainID *pAppDomainId);
14558 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
14559 ICorProfilerInfo9 * This,
14560 /* [in] */ ClassID classId,
14561 /* [in] */ mdFieldDef fieldToken,
14562 /* [out] */ void **ppAddress);
14564 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
14565 ICorProfilerInfo9 * This,
14566 /* [in] */ ClassID classId,
14567 /* [in] */ mdFieldDef fieldToken,
14568 /* [in] */ AppDomainID appDomainId,
14569 /* [out] */ void **ppAddress);
14571 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
14572 ICorProfilerInfo9 * This,
14573 /* [in] */ ClassID classId,
14574 /* [in] */ mdFieldDef fieldToken,
14575 /* [in] */ ThreadID threadId,
14576 /* [out] */ void **ppAddress);
14578 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
14579 ICorProfilerInfo9 * This,
14580 /* [in] */ ClassID classId,
14581 /* [in] */ mdFieldDef fieldToken,
14582 /* [in] */ ContextID contextId,
14583 /* [out] */ void **ppAddress);
14585 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
14586 ICorProfilerInfo9 * This,
14587 /* [in] */ ClassID classId,
14588 /* [in] */ mdFieldDef fieldToken,
14589 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
14591 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
14592 ICorProfilerInfo9 * This,
14593 /* [in] */ ULONG cObjectRanges,
14594 /* [out] */ ULONG *pcObjectRanges,
14595 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
14597 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
14598 ICorProfilerInfo9 * This,
14599 /* [in] */ ObjectID objectId,
14600 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
14602 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
14603 ICorProfilerInfo9 * This,
14604 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
14606 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
14607 ICorProfilerInfo9 * This,
14608 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14610 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
14611 ICorProfilerInfo9 * This,
14612 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
14614 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
14615 ICorProfilerInfo9 * This,
14616 /* [in] */ FunctionIDMapper2 *pFunc,
14617 /* [in] */ void *clientData);
14619 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
14620 ICorProfilerInfo9 * This,
14621 /* [out] */ ULONG *pStringLengthOffset,
14622 /* [out] */ ULONG *pBufferOffset);
14624 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
14625 ICorProfilerInfo9 * This,
14626 /* [in] */ FunctionEnter3 *pFuncEnter3,
14627 /* [in] */ FunctionLeave3 *pFuncLeave3,
14628 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
14630 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
14631 ICorProfilerInfo9 * This,
14632 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
14633 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
14634 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
14636 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
14637 ICorProfilerInfo9 * This,
14638 /* [in] */ FunctionID functionId,
14639 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14640 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14641 /* [out][in] */ ULONG *pcbArgumentInfo,
14642 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
14644 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
14645 ICorProfilerInfo9 * This,
14646 /* [in] */ FunctionID functionId,
14647 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14648 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14649 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
14651 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
14652 ICorProfilerInfo9 * This,
14653 /* [in] */ FunctionID functionId,
14654 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14655 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
14657 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
14658 ICorProfilerInfo9 * This,
14659 /* [out] */ ICorProfilerModuleEnum **ppEnum);
14661 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
14662 ICorProfilerInfo9 * This,
14663 /* [out] */ USHORT *pClrInstanceId,
14664 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
14665 /* [out] */ USHORT *pMajorVersion,
14666 /* [out] */ USHORT *pMinorVersion,
14667 /* [out] */ USHORT *pBuildNumber,
14668 /* [out] */ USHORT *pQFEVersion,
14669 /* [in] */ ULONG cchVersionString,
14670 /* [out] */ ULONG *pcchVersionString,
14671 /* [annotation][out] */
14672 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
14674 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
14675 ICorProfilerInfo9 * This,
14676 /* [in] */ ClassID classId,
14677 /* [in] */ mdFieldDef fieldToken,
14678 /* [in] */ AppDomainID appDomainId,
14679 /* [in] */ ThreadID threadId,
14680 /* [out] */ void **ppAddress);
14682 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
14683 ICorProfilerInfo9 * This,
14684 /* [in] */ ModuleID moduleId,
14685 /* [in] */ ULONG32 cAppDomainIds,
14686 /* [out] */ ULONG32 *pcAppDomainIds,
14687 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
14689 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
14690 ICorProfilerInfo9 * This,
14691 /* [in] */ ModuleID moduleId,
14692 /* [out] */ LPCBYTE *ppBaseLoadAddress,
14693 /* [in] */ ULONG cchName,
14694 /* [out] */ ULONG *pcchName,
14695 /* [annotation][out] */
14696 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14697 /* [out] */ AssemblyID *pAssemblyId,
14698 /* [out] */ DWORD *pdwModuleFlags);
14700 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
14701 ICorProfilerInfo9 * This,
14702 /* [out] */ ICorProfilerThreadEnum **ppEnum);
14704 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
14705 ICorProfilerInfo9 * This);
14707 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
14708 ICorProfilerInfo9 * This,
14709 /* [in] */ ULONG cFunctions,
14710 /* [size_is][in] */ ModuleID moduleIds[ ],
14711 /* [size_is][in] */ mdMethodDef methodIds[ ]);
14713 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
14714 ICorProfilerInfo9 * This,
14715 /* [in] */ ULONG cFunctions,
14716 /* [size_is][in] */ ModuleID moduleIds[ ],
14717 /* [size_is][in] */ mdMethodDef methodIds[ ],
14718 /* [size_is][out] */ HRESULT status[ ]);
14720 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
14721 ICorProfilerInfo9 * This,
14722 /* [in] */ FunctionID functionID,
14723 /* [in] */ ReJITID reJitId,
14724 /* [in] */ ULONG32 cCodeInfos,
14725 /* [out] */ ULONG32 *pcCodeInfos,
14726 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
14728 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
14729 ICorProfilerInfo9 * This,
14730 /* [in] */ LPCBYTE ip,
14731 /* [out] */ FunctionID *pFunctionId,
14732 /* [out] */ ReJITID *pReJitId);
14734 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
14735 ICorProfilerInfo9 * This,
14736 /* [in] */ FunctionID functionId,
14737 /* [in] */ ULONG cReJitIds,
14738 /* [out] */ ULONG *pcReJitIds,
14739 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
14741 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
14742 ICorProfilerInfo9 * This,
14743 /* [in] */ FunctionID functionId,
14744 /* [in] */ ReJITID reJitId,
14745 /* [in] */ ULONG32 cMap,
14746 /* [out] */ ULONG32 *pcMap,
14747 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14749 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
14750 ICorProfilerInfo9 * This,
14751 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14753 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
14754 ICorProfilerInfo9 * This,
14755 /* [in] */ ObjectID objectId,
14756 /* [out] */ SIZE_T *pcSize);
14758 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
14759 ICorProfilerInfo9 * This,
14760 /* [out] */ DWORD *pdwEventsLow,
14761 /* [out] */ DWORD *pdwEventsHigh);
14763 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
14764 ICorProfilerInfo9 * This,
14765 /* [in] */ DWORD dwEventsLow,
14766 /* [in] */ DWORD dwEventsHigh);
14768 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
14769 ICorProfilerInfo9 * This,
14770 /* [in] */ ModuleID inlinersModuleId,
14771 /* [in] */ ModuleID inlineeModuleId,
14772 /* [in] */ mdMethodDef inlineeMethodId,
14773 /* [out] */ BOOL *incompleteData,
14774 /* [out] */ ICorProfilerMethodEnum **ppEnum);
14776 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
14777 ICorProfilerInfo9 * This,
14778 /* [in] */ ModuleID moduleId);
14780 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
14781 ICorProfilerInfo9 * This,
14782 /* [in] */ ModuleID moduleId,
14783 /* [out] */ DWORD *pCountSymbolBytes);
14785 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
14786 ICorProfilerInfo9 * This,
14787 /* [in] */ ModuleID moduleId,
14788 /* [in] */ DWORD symbolsReadOffset,
14789 /* [out] */ BYTE *pSymbolBytes,
14790 /* [in] */ DWORD countSymbolBytes,
14791 /* [out] */ DWORD *pCountSymbolBytesRead);
14793 HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )(
14794 ICorProfilerInfo9 * This,
14795 /* [in] */ FunctionID functionId,
14796 /* [out] */ BOOL *isDynamic);
14798 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )(
14799 ICorProfilerInfo9 * This,
14800 /* [in] */ LPCBYTE ip,
14801 /* [out] */ FunctionID *functionId,
14802 /* [out] */ ReJITID *pReJitId);
14804 HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )(
14805 ICorProfilerInfo9 * This,
14806 /* [in] */ FunctionID functionId,
14807 /* [out] */ ModuleID *moduleId,
14808 /* [out] */ PCCOR_SIGNATURE *ppvSig,
14809 /* [out] */ ULONG *pbSig,
14810 /* [in] */ ULONG cchName,
14811 /* [out] */ ULONG *pcchName,
14812 /* [out] */ WCHAR wszName[ ]);
14814 HRESULT ( STDMETHODCALLTYPE *GetNativeCodeStartAddresses )(
14815 ICorProfilerInfo9 * This,
14816 FunctionID functionID,
14818 ULONG32 cCodeStartAddresses,
14819 ULONG32 *pcCodeStartAddresses,
14820 UINT_PTR codeStartAddresses[ ]);
14822 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping3 )(
14823 ICorProfilerInfo9 * This,
14824 UINT_PTR pNativeCodeStartAddress,
14827 COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14829 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo4 )(
14830 ICorProfilerInfo9 * This,
14831 UINT_PTR pNativeCodeStartAddress,
14832 ULONG32 cCodeInfos,
14833 ULONG32 *pcCodeInfos,
14834 COR_PRF_CODE_INFO codeInfos[ ]);
14837 } ICorProfilerInfo9Vtbl;
14839 interface ICorProfilerInfo9
14841 CONST_VTBL struct ICorProfilerInfo9Vtbl *lpVtbl;
14849 #define ICorProfilerInfo9_QueryInterface(This,riid,ppvObject) \
14850 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14852 #define ICorProfilerInfo9_AddRef(This) \
14853 ( (This)->lpVtbl -> AddRef(This) )
14855 #define ICorProfilerInfo9_Release(This) \
14856 ( (This)->lpVtbl -> Release(This) )
14859 #define ICorProfilerInfo9_GetClassFromObject(This,objectId,pClassId) \
14860 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
14862 #define ICorProfilerInfo9_GetClassFromToken(This,moduleId,typeDef,pClassId) \
14863 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
14865 #define ICorProfilerInfo9_GetCodeInfo(This,functionId,pStart,pcSize) \
14866 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
14868 #define ICorProfilerInfo9_GetEventMask(This,pdwEvents) \
14869 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
14871 #define ICorProfilerInfo9_GetFunctionFromIP(This,ip,pFunctionId) \
14872 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
14874 #define ICorProfilerInfo9_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
14875 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
14877 #define ICorProfilerInfo9_GetHandleFromThread(This,threadId,phThread) \
14878 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
14880 #define ICorProfilerInfo9_GetObjectSize(This,objectId,pcSize) \
14881 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
14883 #define ICorProfilerInfo9_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
14884 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
14886 #define ICorProfilerInfo9_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
14887 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
14889 #define ICorProfilerInfo9_GetCurrentThreadID(This,pThreadId) \
14890 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
14892 #define ICorProfilerInfo9_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
14893 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
14895 #define ICorProfilerInfo9_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
14896 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
14898 #define ICorProfilerInfo9_SetEventMask(This,dwEvents) \
14899 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
14901 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14902 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14904 #define ICorProfilerInfo9_SetFunctionIDMapper(This,pFunc) \
14905 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
14907 #define ICorProfilerInfo9_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
14908 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
14910 #define ICorProfilerInfo9_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
14911 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
14913 #define ICorProfilerInfo9_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
14914 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
14916 #define ICorProfilerInfo9_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
14917 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
14919 #define ICorProfilerInfo9_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
14920 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
14922 #define ICorProfilerInfo9_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14923 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
14925 #define ICorProfilerInfo9_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14926 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
14928 #define ICorProfilerInfo9_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
14929 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
14931 #define ICorProfilerInfo9_SetFunctionReJIT(This,functionId) \
14932 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
14934 #define ICorProfilerInfo9_ForceGC(This) \
14935 ( (This)->lpVtbl -> ForceGC(This) )
14937 #define ICorProfilerInfo9_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
14938 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
14940 #define ICorProfilerInfo9_GetInprocInspectionInterface(This,ppicd) \
14941 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
14943 #define ICorProfilerInfo9_GetInprocInspectionIThisThread(This,ppicd) \
14944 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
14946 #define ICorProfilerInfo9_GetThreadContext(This,threadId,pContextId) \
14947 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
14949 #define ICorProfilerInfo9_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14950 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
14952 #define ICorProfilerInfo9_EndInprocDebugging(This,dwProfilerContext) \
14953 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
14955 #define ICorProfilerInfo9_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
14956 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
14959 #define ICorProfilerInfo9_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
14960 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
14962 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14963 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14965 #define ICorProfilerInfo9_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
14966 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
14968 #define ICorProfilerInfo9_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
14969 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
14971 #define ICorProfilerInfo9_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
14972 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
14974 #define ICorProfilerInfo9_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
14975 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
14977 #define ICorProfilerInfo9_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
14978 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
14980 #define ICorProfilerInfo9_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
14981 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
14983 #define ICorProfilerInfo9_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
14984 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
14986 #define ICorProfilerInfo9_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
14987 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
14989 #define ICorProfilerInfo9_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
14990 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
14992 #define ICorProfilerInfo9_GetBoxClassLayout(This,classId,pBufferOffset) \
14993 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
14995 #define ICorProfilerInfo9_GetThreadAppDomain(This,threadId,pAppDomainId) \
14996 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
14998 #define ICorProfilerInfo9_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
14999 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
15001 #define ICorProfilerInfo9_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
15002 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
15004 #define ICorProfilerInfo9_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
15005 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
15007 #define ICorProfilerInfo9_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
15008 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
15010 #define ICorProfilerInfo9_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
15011 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
15013 #define ICorProfilerInfo9_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
15014 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
15016 #define ICorProfilerInfo9_GetObjectGeneration(This,objectId,range) \
15017 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
15019 #define ICorProfilerInfo9_GetNotifiedExceptionClauseInfo(This,pinfo) \
15020 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
15023 #define ICorProfilerInfo9_EnumJITedFunctions(This,ppEnum) \
15024 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
15026 #define ICorProfilerInfo9_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
15027 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
15029 #define ICorProfilerInfo9_SetFunctionIDMapper2(This,pFunc,clientData) \
15030 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
15032 #define ICorProfilerInfo9_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
15033 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
15035 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
15036 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
15038 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
15039 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
15041 #define ICorProfilerInfo9_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
15042 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
15044 #define ICorProfilerInfo9_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
15045 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
15047 #define ICorProfilerInfo9_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
15048 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
15050 #define ICorProfilerInfo9_EnumModules(This,ppEnum) \
15051 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
15053 #define ICorProfilerInfo9_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
15054 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
15056 #define ICorProfilerInfo9_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
15057 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
15059 #define ICorProfilerInfo9_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
15060 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
15062 #define ICorProfilerInfo9_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
15063 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
15066 #define ICorProfilerInfo9_EnumThreads(This,ppEnum) \
15067 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
15069 #define ICorProfilerInfo9_InitializeCurrentThread(This) \
15070 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
15072 #define ICorProfilerInfo9_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
15073 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
15075 #define ICorProfilerInfo9_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
15076 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
15078 #define ICorProfilerInfo9_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
15079 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
15081 #define ICorProfilerInfo9_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
15082 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
15084 #define ICorProfilerInfo9_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
15085 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
15087 #define ICorProfilerInfo9_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
15088 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
15090 #define ICorProfilerInfo9_EnumJITedFunctions2(This,ppEnum) \
15091 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
15093 #define ICorProfilerInfo9_GetObjectSize2(This,objectId,pcSize) \
15094 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
15097 #define ICorProfilerInfo9_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
15098 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
15100 #define ICorProfilerInfo9_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
15101 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
15104 #define ICorProfilerInfo9_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
15105 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
15108 #define ICorProfilerInfo9_ApplyMetaData(This,moduleId) \
15109 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
15111 #define ICorProfilerInfo9_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
15112 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
15114 #define ICorProfilerInfo9_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
15115 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
15118 #define ICorProfilerInfo9_IsFunctionDynamic(This,functionId,isDynamic) \
15119 ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) )
15121 #define ICorProfilerInfo9_GetFunctionFromIP3(This,ip,functionId,pReJitId) \
15122 ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) )
15124 #define ICorProfilerInfo9_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \
15125 ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) )
15128 #define ICorProfilerInfo9_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \
15129 ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) )
15131 #define ICorProfilerInfo9_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \
15132 ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) )
15134 #define ICorProfilerInfo9_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \
15135 ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) )
15137 #endif /* COBJMACROS */
15140 #endif /* C style interface */
15145 #endif /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */
15148 #ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15149 #define __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15151 /* interface ICorProfilerMethodEnum */
15152 /* [local][unique][uuid][object] */
15155 EXTERN_C const IID IID_ICorProfilerMethodEnum;
15157 #if defined(__cplusplus) && !defined(CINTERFACE)
15159 MIDL_INTERFACE("FCCEE788-0088-454B-A811-C99F298D1942")
15160 ICorProfilerMethodEnum : public IUnknown
15163 virtual HRESULT STDMETHODCALLTYPE Skip(
15164 /* [in] */ ULONG celt) = 0;
15166 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15168 virtual HRESULT STDMETHODCALLTYPE Clone(
15169 /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
15171 virtual HRESULT STDMETHODCALLTYPE GetCount(
15172 /* [out] */ ULONG *pcelt) = 0;
15174 virtual HRESULT STDMETHODCALLTYPE Next(
15175 /* [in] */ ULONG celt,
15176 /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ],
15177 /* [out] */ ULONG *pceltFetched) = 0;
15182 #else /* C style interface */
15184 typedef struct ICorProfilerMethodEnumVtbl
15188 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15189 ICorProfilerMethodEnum * This,
15190 /* [in] */ REFIID riid,
15191 /* [annotation][iid_is][out] */
15192 _COM_Outptr_ void **ppvObject);
15194 ULONG ( STDMETHODCALLTYPE *AddRef )(
15195 ICorProfilerMethodEnum * This);
15197 ULONG ( STDMETHODCALLTYPE *Release )(
15198 ICorProfilerMethodEnum * This);
15200 HRESULT ( STDMETHODCALLTYPE *Skip )(
15201 ICorProfilerMethodEnum * This,
15202 /* [in] */ ULONG celt);
15204 HRESULT ( STDMETHODCALLTYPE *Reset )(
15205 ICorProfilerMethodEnum * This);
15207 HRESULT ( STDMETHODCALLTYPE *Clone )(
15208 ICorProfilerMethodEnum * This,
15209 /* [out] */ ICorProfilerMethodEnum **ppEnum);
15211 HRESULT ( STDMETHODCALLTYPE *GetCount )(
15212 ICorProfilerMethodEnum * This,
15213 /* [out] */ ULONG *pcelt);
15215 HRESULT ( STDMETHODCALLTYPE *Next )(
15216 ICorProfilerMethodEnum * This,
15217 /* [in] */ ULONG celt,
15218 /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ],
15219 /* [out] */ ULONG *pceltFetched);
15222 } ICorProfilerMethodEnumVtbl;
15224 interface ICorProfilerMethodEnum
15226 CONST_VTBL struct ICorProfilerMethodEnumVtbl *lpVtbl;
15234 #define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \
15235 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15237 #define ICorProfilerMethodEnum_AddRef(This) \
15238 ( (This)->lpVtbl -> AddRef(This) )
15240 #define ICorProfilerMethodEnum_Release(This) \
15241 ( (This)->lpVtbl -> Release(This) )
15244 #define ICorProfilerMethodEnum_Skip(This,celt) \
15245 ( (This)->lpVtbl -> Skip(This,celt) )
15247 #define ICorProfilerMethodEnum_Reset(This) \
15248 ( (This)->lpVtbl -> Reset(This) )
15250 #define ICorProfilerMethodEnum_Clone(This,ppEnum) \
15251 ( (This)->lpVtbl -> Clone(This,ppEnum) )
15253 #define ICorProfilerMethodEnum_GetCount(This,pcelt) \
15254 ( (This)->lpVtbl -> GetCount(This,pcelt) )
15256 #define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \
15257 ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) )
15259 #endif /* COBJMACROS */
15262 #endif /* C style interface */
15267 #endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */
15270 #ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15271 #define __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15273 /* interface ICorProfilerThreadEnum */
15274 /* [local][unique][uuid][object] */
15277 EXTERN_C const IID IID_ICorProfilerThreadEnum;
15279 #if defined(__cplusplus) && !defined(CINTERFACE)
15281 MIDL_INTERFACE("571194f7-25ed-419f-aa8b-7016b3159701")
15282 ICorProfilerThreadEnum : public IUnknown
15285 virtual HRESULT STDMETHODCALLTYPE Skip(
15286 /* [in] */ ULONG celt) = 0;
15288 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15290 virtual HRESULT STDMETHODCALLTYPE Clone(
15291 /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
15293 virtual HRESULT STDMETHODCALLTYPE GetCount(
15294 /* [out] */ ULONG *pcelt) = 0;
15296 virtual HRESULT STDMETHODCALLTYPE Next(
15297 /* [in] */ ULONG celt,
15298 /* [length_is][size_is][out] */ ThreadID ids[ ],
15299 /* [out] */ ULONG *pceltFetched) = 0;
15304 #else /* C style interface */
15306 typedef struct ICorProfilerThreadEnumVtbl
15310 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15311 ICorProfilerThreadEnum * This,
15312 /* [in] */ REFIID riid,
15313 /* [annotation][iid_is][out] */
15314 _COM_Outptr_ void **ppvObject);
15316 ULONG ( STDMETHODCALLTYPE *AddRef )(
15317 ICorProfilerThreadEnum * This);
15319 ULONG ( STDMETHODCALLTYPE *Release )(
15320 ICorProfilerThreadEnum * This);
15322 HRESULT ( STDMETHODCALLTYPE *Skip )(
15323 ICorProfilerThreadEnum * This,
15324 /* [in] */ ULONG celt);
15326 HRESULT ( STDMETHODCALLTYPE *Reset )(
15327 ICorProfilerThreadEnum * This);
15329 HRESULT ( STDMETHODCALLTYPE *Clone )(
15330 ICorProfilerThreadEnum * This,
15331 /* [out] */ ICorProfilerThreadEnum **ppEnum);
15333 HRESULT ( STDMETHODCALLTYPE *GetCount )(
15334 ICorProfilerThreadEnum * This,
15335 /* [out] */ ULONG *pcelt);
15337 HRESULT ( STDMETHODCALLTYPE *Next )(
15338 ICorProfilerThreadEnum * This,
15339 /* [in] */ ULONG celt,
15340 /* [length_is][size_is][out] */ ThreadID ids[ ],
15341 /* [out] */ ULONG *pceltFetched);
15344 } ICorProfilerThreadEnumVtbl;
15346 interface ICorProfilerThreadEnum
15348 CONST_VTBL struct ICorProfilerThreadEnumVtbl *lpVtbl;
15356 #define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \
15357 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15359 #define ICorProfilerThreadEnum_AddRef(This) \
15360 ( (This)->lpVtbl -> AddRef(This) )
15362 #define ICorProfilerThreadEnum_Release(This) \
15363 ( (This)->lpVtbl -> Release(This) )
15366 #define ICorProfilerThreadEnum_Skip(This,celt) \
15367 ( (This)->lpVtbl -> Skip(This,celt) )
15369 #define ICorProfilerThreadEnum_Reset(This) \
15370 ( (This)->lpVtbl -> Reset(This) )
15372 #define ICorProfilerThreadEnum_Clone(This,ppEnum) \
15373 ( (This)->lpVtbl -> Clone(This,ppEnum) )
15375 #define ICorProfilerThreadEnum_GetCount(This,pcelt) \
15376 ( (This)->lpVtbl -> GetCount(This,pcelt) )
15378 #define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \
15379 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
15381 #endif /* COBJMACROS */
15384 #endif /* C style interface */
15389 #endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */
15392 #ifndef __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15393 #define __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15395 /* interface ICorProfilerAssemblyReferenceProvider */
15396 /* [local][unique][uuid][object] */
15399 EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider;
15401 #if defined(__cplusplus) && !defined(CINTERFACE)
15403 MIDL_INTERFACE("66A78C24-2EEF-4F65-B45F-DD1D8038BF3C")
15404 ICorProfilerAssemblyReferenceProvider : public IUnknown
15407 virtual HRESULT STDMETHODCALLTYPE AddAssemblyReference(
15408 const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo) = 0;
15413 #else /* C style interface */
15415 typedef struct ICorProfilerAssemblyReferenceProviderVtbl
15419 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15420 ICorProfilerAssemblyReferenceProvider * This,
15421 /* [in] */ REFIID riid,
15422 /* [annotation][iid_is][out] */
15423 _COM_Outptr_ void **ppvObject);
15425 ULONG ( STDMETHODCALLTYPE *AddRef )(
15426 ICorProfilerAssemblyReferenceProvider * This);
15428 ULONG ( STDMETHODCALLTYPE *Release )(
15429 ICorProfilerAssemblyReferenceProvider * This);
15431 HRESULT ( STDMETHODCALLTYPE *AddAssemblyReference )(
15432 ICorProfilerAssemblyReferenceProvider * This,
15433 const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo);
15436 } ICorProfilerAssemblyReferenceProviderVtbl;
15438 interface ICorProfilerAssemblyReferenceProvider
15440 CONST_VTBL struct ICorProfilerAssemblyReferenceProviderVtbl *lpVtbl;
15448 #define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \
15449 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15451 #define ICorProfilerAssemblyReferenceProvider_AddRef(This) \
15452 ( (This)->lpVtbl -> AddRef(This) )
15454 #define ICorProfilerAssemblyReferenceProvider_Release(This) \
15455 ( (This)->lpVtbl -> Release(This) )
15458 #define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \
15459 ( (This)->lpVtbl -> AddAssemblyReference(This,pAssemblyRefInfo) )
15461 #endif /* COBJMACROS */
15464 #endif /* C style interface */
15469 #endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */
15472 /* Additional Prototypes for ALL interfaces */
15474 /* end of Additional Prototypes */