1
2
3/* this ALWAYS GENERATED file contains the definitions for the interfaces */
4
5
6 /* File created by MIDL compiler version 8.01.0622 */
7/* at Mon Jan 18 19:14:07 2038
8 */
9/* Compiler settings for D:/git/coreclr-profattach/src/inc/corprof.idl:
10 Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622
11 protocol : dce , ms_ext, c_ext, robust
12 error checks: allocation ref bounds_check enum stub_data
13 VC __declspec() decoration level:
14 __declspec(uuid()), __declspec(selectany), __declspec(novtable)
15 DECLSPEC_UUID(), MIDL_INTERFACE()
16*/
17/* @@MIDL_FILE_HEADING( ) */
18
19#pragma warning( disable: 4049 ) /* more than 64k source lines */
20
21
22/* verify that the <rpcndr.h> version is high enough to compile this file*/
23#ifndef __REQUIRED_RPCNDR_H_VERSION__
24#define __REQUIRED_RPCNDR_H_VERSION__ 475
25#endif
26
27#include "rpc.h"
28#include "rpcndr.h"
29
30#ifndef __RPCNDR_H_VERSION__
31#error this stub requires an updated version of <rpcndr.h>
32#endif /* __RPCNDR_H_VERSION__ */
33
34#ifndef COM_NO_WINDOWS_H
35#include "windows.h"
36#include "ole2.h"
37#endif /*COM_NO_WINDOWS_H*/
38
39#ifndef __corprof_h__
40#define __corprof_h__
41
42#if defined(_MSC_VER) && (_MSC_VER >= 1020)
43#pragma once
44#endif
45
46/* Forward Declarations */
47
48#ifndef __ICorProfilerCallback_FWD_DEFINED__
49#define __ICorProfilerCallback_FWD_DEFINED__
50typedef interface ICorProfilerCallback ICorProfilerCallback;
51
52#endif /* __ICorProfilerCallback_FWD_DEFINED__ */
53
54
55#ifndef __ICorProfilerCallback2_FWD_DEFINED__
56#define __ICorProfilerCallback2_FWD_DEFINED__
57typedef interface ICorProfilerCallback2 ICorProfilerCallback2;
58
59#endif /* __ICorProfilerCallback2_FWD_DEFINED__ */
60
61
62#ifndef __ICorProfilerCallback3_FWD_DEFINED__
63#define __ICorProfilerCallback3_FWD_DEFINED__
64typedef interface ICorProfilerCallback3 ICorProfilerCallback3;
65
66#endif /* __ICorProfilerCallback3_FWD_DEFINED__ */
67
68
69#ifndef __ICorProfilerCallback4_FWD_DEFINED__
70#define __ICorProfilerCallback4_FWD_DEFINED__
71typedef interface ICorProfilerCallback4 ICorProfilerCallback4;
72
73#endif /* __ICorProfilerCallback4_FWD_DEFINED__ */
74
75
76#ifndef __ICorProfilerCallback5_FWD_DEFINED__
77#define __ICorProfilerCallback5_FWD_DEFINED__
78typedef interface ICorProfilerCallback5 ICorProfilerCallback5;
79
80#endif /* __ICorProfilerCallback5_FWD_DEFINED__ */
81
82
83#ifndef __ICorProfilerCallback6_FWD_DEFINED__
84#define __ICorProfilerCallback6_FWD_DEFINED__
85typedef interface ICorProfilerCallback6 ICorProfilerCallback6;
86
87#endif /* __ICorProfilerCallback6_FWD_DEFINED__ */
88
89
90#ifndef __ICorProfilerCallback7_FWD_DEFINED__
91#define __ICorProfilerCallback7_FWD_DEFINED__
92typedef interface ICorProfilerCallback7 ICorProfilerCallback7;
93
94#endif /* __ICorProfilerCallback7_FWD_DEFINED__ */
95
96
97#ifndef __ICorProfilerCallback8_FWD_DEFINED__
98#define __ICorProfilerCallback8_FWD_DEFINED__
99typedef interface ICorProfilerCallback8 ICorProfilerCallback8;
100
101#endif /* __ICorProfilerCallback8_FWD_DEFINED__ */
102
103
104#ifndef __ICorProfilerCallback9_FWD_DEFINED__
105#define __ICorProfilerCallback9_FWD_DEFINED__
106typedef interface ICorProfilerCallback9 ICorProfilerCallback9;
107
108#endif /* __ICorProfilerCallback9_FWD_DEFINED__ */
109
110
111#ifndef __ICorProfilerInfo_FWD_DEFINED__
112#define __ICorProfilerInfo_FWD_DEFINED__
113typedef interface ICorProfilerInfo ICorProfilerInfo;
114
115#endif /* __ICorProfilerInfo_FWD_DEFINED__ */
116
117
118#ifndef __ICorProfilerInfo2_FWD_DEFINED__
119#define __ICorProfilerInfo2_FWD_DEFINED__
120typedef interface ICorProfilerInfo2 ICorProfilerInfo2;
121
122#endif /* __ICorProfilerInfo2_FWD_DEFINED__ */
123
124
125#ifndef __ICorProfilerInfo3_FWD_DEFINED__
126#define __ICorProfilerInfo3_FWD_DEFINED__
127typedef interface ICorProfilerInfo3 ICorProfilerInfo3;
128
129#endif /* __ICorProfilerInfo3_FWD_DEFINED__ */
130
131
132#ifndef __ICorProfilerObjectEnum_FWD_DEFINED__
133#define __ICorProfilerObjectEnum_FWD_DEFINED__
134typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum;
135
136#endif /* __ICorProfilerObjectEnum_FWD_DEFINED__ */
137
138
139#ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__
140#define __ICorProfilerFunctionEnum_FWD_DEFINED__
141typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum;
142
143#endif /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */
144
145
146#ifndef __ICorProfilerModuleEnum_FWD_DEFINED__
147#define __ICorProfilerModuleEnum_FWD_DEFINED__
148typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum;
149
150#endif /* __ICorProfilerModuleEnum_FWD_DEFINED__ */
151
152
153#ifndef __IMethodMalloc_FWD_DEFINED__
154#define __IMethodMalloc_FWD_DEFINED__
155typedef interface IMethodMalloc IMethodMalloc;
156
157#endif /* __IMethodMalloc_FWD_DEFINED__ */
158
159
160#ifndef __ICorProfilerFunctionControl_FWD_DEFINED__
161#define __ICorProfilerFunctionControl_FWD_DEFINED__
162typedef interface ICorProfilerFunctionControl ICorProfilerFunctionControl;
163
164#endif /* __ICorProfilerFunctionControl_FWD_DEFINED__ */
165
166
167#ifndef __ICorProfilerInfo4_FWD_DEFINED__
168#define __ICorProfilerInfo4_FWD_DEFINED__
169typedef interface ICorProfilerInfo4 ICorProfilerInfo4;
170
171#endif /* __ICorProfilerInfo4_FWD_DEFINED__ */
172
173
174#ifndef __ICorProfilerInfo5_FWD_DEFINED__
175#define __ICorProfilerInfo5_FWD_DEFINED__
176typedef interface ICorProfilerInfo5 ICorProfilerInfo5;
177
178#endif /* __ICorProfilerInfo5_FWD_DEFINED__ */
179
180
181#ifndef __ICorProfilerInfo6_FWD_DEFINED__
182#define __ICorProfilerInfo6_FWD_DEFINED__
183typedef interface ICorProfilerInfo6 ICorProfilerInfo6;
184
185#endif /* __ICorProfilerInfo6_FWD_DEFINED__ */
186
187
188#ifndef __ICorProfilerInfo7_FWD_DEFINED__
189#define __ICorProfilerInfo7_FWD_DEFINED__
190typedef interface ICorProfilerInfo7 ICorProfilerInfo7;
191
192#endif /* __ICorProfilerInfo7_FWD_DEFINED__ */
193
194
195#ifndef __ICorProfilerInfo8_FWD_DEFINED__
196#define __ICorProfilerInfo8_FWD_DEFINED__
197typedef interface ICorProfilerInfo8 ICorProfilerInfo8;
198
199#endif /* __ICorProfilerInfo8_FWD_DEFINED__ */
200
201
202#ifndef __ICorProfilerInfo9_FWD_DEFINED__
203#define __ICorProfilerInfo9_FWD_DEFINED__
204typedef interface ICorProfilerInfo9 ICorProfilerInfo9;
205
206#endif /* __ICorProfilerInfo9_FWD_DEFINED__ */
207
208
209#ifndef __ICorProfilerMethodEnum_FWD_DEFINED__
210#define __ICorProfilerMethodEnum_FWD_DEFINED__
211typedef interface ICorProfilerMethodEnum ICorProfilerMethodEnum;
212
213#endif /* __ICorProfilerMethodEnum_FWD_DEFINED__ */
214
215
216#ifndef __ICorProfilerThreadEnum_FWD_DEFINED__
217#define __ICorProfilerThreadEnum_FWD_DEFINED__
218typedef interface ICorProfilerThreadEnum ICorProfilerThreadEnum;
219
220#endif /* __ICorProfilerThreadEnum_FWD_DEFINED__ */
221
222
223#ifndef __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
224#define __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
225typedef interface ICorProfilerAssemblyReferenceProvider ICorProfilerAssemblyReferenceProvider;
226
227#endif /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */
228
229
230#ifndef __ICLRProfiling_FWD_DEFINED__
231#define __ICLRProfiling_FWD_DEFINED__
232typedef interface ICLRProfiling ICLRProfiling;
233
234#endif /* __ICLRProfiling_FWD_DEFINED__ */
235
236
237#ifndef __ICLRProfiling_FWD_DEFINED__
238#define __ICLRProfiling_FWD_DEFINED__
239typedef interface ICLRProfiling ICLRProfiling;
240
241#endif /* __ICLRProfiling_FWD_DEFINED__ */
242
243
244/* header files for imported files */
245#include "unknwn.h"
246
247#ifdef __cplusplus
248extern "C"{
249#endif
250
251
252/* interface __MIDL_itf_corprof_0000_0000 */
253/* [local] */
254
255#define CorDB_CONTROL_Profiling "Cor_Enable_Profiling"
256#define CorDB_CONTROL_ProfilingL L"Cor_Enable_Profiling"
257#if 0
258typedef LONG32 mdToken;
259
260typedef mdToken mdModule;
261
262typedef mdToken mdTypeDef;
263
264typedef mdToken mdMethodDef;
265
266typedef mdToken mdFieldDef;
267
268typedef ULONG CorElementType;
269
270
271typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0001
272 {
273 DWORD dwOSPlatformId;
274 DWORD dwOSMajorVersion;
275 DWORD dwOSMinorVersion;
276 } OSINFO;
277
278typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0002
279 {
280 USHORT usMajorVersion;
281 USHORT usMinorVersion;
282 USHORT usBuildNumber;
283 USHORT usRevisionNumber;
284 LPWSTR szLocale;
285 ULONG cbLocale;
286 DWORD *rProcessor;
287 ULONG ulProcessor;
288 OSINFO *rOS;
289 ULONG ulOS;
290 } ASSEMBLYMETADATA;
291
292#endif
293typedef const BYTE *LPCBYTE;
294
295typedef BYTE *LPBYTE;
296
297typedef BYTE COR_SIGNATURE;
298
299typedef COR_SIGNATURE *PCOR_SIGNATURE;
300
301typedef const COR_SIGNATURE *PCCOR_SIGNATURE;
302
303#ifndef _COR_IL_MAP
304#define _COR_IL_MAP
305typedef struct _COR_IL_MAP
306 {
307 ULONG32 oldOffset;
308 ULONG32 newOffset;
309 BOOL fAccurate;
310 } COR_IL_MAP;
311
312#endif //_COR_IL_MAP
313#ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_
314#define _COR_DEBUG_IL_TO_NATIVE_MAP_
315typedef
316enum CorDebugIlToNativeMappingTypes
317 {
318 NO_MAPPING = -1,
319 PROLOG = -2,
320 EPILOG = -3
321 } CorDebugIlToNativeMappingTypes;
322
323typedef struct COR_DEBUG_IL_TO_NATIVE_MAP
324 {
325 ULONG32 ilOffset;
326 ULONG32 nativeStartOffset;
327 ULONG32 nativeEndOffset;
328 } COR_DEBUG_IL_TO_NATIVE_MAP;
329
330#endif // _COR_DEBUG_IL_TO_NATIVE_MAP_
331#ifndef _COR_FIELD_OFFSET_
332#define _COR_FIELD_OFFSET_
333typedef struct _COR_FIELD_OFFSET
334 {
335 mdFieldDef ridOfField;
336 ULONG ulOffset;
337 } COR_FIELD_OFFSET;
338
339#endif // _COR_FIELD_OFFSET_
340typedef UINT_PTR ProcessID;
341
342typedef UINT_PTR AssemblyID;
343
344typedef UINT_PTR AppDomainID;
345
346typedef UINT_PTR ModuleID;
347
348typedef UINT_PTR ClassID;
349
350typedef UINT_PTR ThreadID;
351
352typedef UINT_PTR ContextID;
353
354typedef UINT_PTR FunctionID;
355
356typedef UINT_PTR ObjectID;
357
358typedef UINT_PTR GCHandleID;
359
360typedef UINT_PTR COR_PRF_ELT_INFO;
361
362typedef UINT_PTR ReJITID;
363
364typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public] */ union __MIDL___MIDL_itf_corprof_0000_0000_0003
365 {
366 FunctionID functionID;
367 UINT_PTR clientID;
368 } FunctionIDOrClientID;
369
370typedef UINT_PTR __stdcall __stdcall FunctionIDMapper(
371 FunctionID funcId,
372 BOOL *pbHookFunction);
373
374typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2(
375 FunctionID funcId,
376 void *clientData,
377 BOOL *pbHookFunction);
378
379typedef
380enum _COR_PRF_SNAPSHOT_INFO
381 {
382 COR_PRF_SNAPSHOT_DEFAULT = 0,
383 COR_PRF_SNAPSHOT_REGISTER_CONTEXT = 0x1,
384 COR_PRF_SNAPSHOT_X86_OPTIMIZED = 0x2
385 } COR_PRF_SNAPSHOT_INFO;
386
387typedef UINT_PTR COR_PRF_FRAME_INFO;
388
389typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE
390 {
391 UINT_PTR startAddress;
392 ULONG length;
393 } COR_PRF_FUNCTION_ARGUMENT_RANGE;
394
395typedef struct _COR_PRF_FUNCTION_ARGUMENT_INFO
396 {
397 ULONG numRanges;
398 ULONG totalArgumentSize;
399 COR_PRF_FUNCTION_ARGUMENT_RANGE ranges[ 1 ];
400 } COR_PRF_FUNCTION_ARGUMENT_INFO;
401
402typedef struct _COR_PRF_CODE_INFO
403 {
404 UINT_PTR startAddress;
405 SIZE_T size;
406 } COR_PRF_CODE_INFO;
407
408typedef /* [public][public] */
409enum __MIDL___MIDL_itf_corprof_0000_0000_0004
410 {
411 COR_PRF_FIELD_NOT_A_STATIC = 0,
412 COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1,
413 COR_PRF_FIELD_THREAD_STATIC = 0x2,
414 COR_PRF_FIELD_CONTEXT_STATIC = 0x4,
415 COR_PRF_FIELD_RVA_STATIC = 0x8
416 } COR_PRF_STATIC_TYPE;
417
418typedef struct _COR_PRF_FUNCTION
419 {
420 FunctionID functionId;
421 ReJITID reJitId;
422 } COR_PRF_FUNCTION;
423
424typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO
425 {
426 void *pbPublicKeyOrToken;
427 ULONG cbPublicKeyOrToken;
428 LPCWSTR szName;
429 ASSEMBLYMETADATA *pMetaData;
430 void *pbHashValue;
431 ULONG cbHashValue;
432 DWORD dwAssemblyRefFlags;
433 } COR_PRF_ASSEMBLY_REFERENCE_INFO;
434
435typedef struct _COR_PRF_METHOD
436 {
437 ModuleID moduleId;
438 mdMethodDef methodId;
439 } COR_PRF_METHOD;
440
441typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionEnter(
442 FunctionID funcID);
443
444typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionLeave(
445 FunctionID funcID);
446
447typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionTailcall(
448 FunctionID funcID);
449
450typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionEnter2(
451 FunctionID funcId,
452 UINT_PTR clientData,
453 COR_PRF_FRAME_INFO func,
454 COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo);
455
456typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionLeave2(
457 FunctionID funcId,
458 UINT_PTR clientData,
459 COR_PRF_FRAME_INFO func,
460 COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange);
461
462typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionTailcall2(
463 FunctionID funcId,
464 UINT_PTR clientData,
465 COR_PRF_FRAME_INFO func);
466
467typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionEnter3(
468 FunctionIDOrClientID functionIDOrClientID);
469
470typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionLeave3(
471 FunctionIDOrClientID functionIDOrClientID);
472
473typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionTailcall3(
474 FunctionIDOrClientID functionIDOrClientID);
475
476typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionEnter3WithInfo(
477 FunctionIDOrClientID functionIDOrClientID,
478 COR_PRF_ELT_INFO eltInfo);
479
480typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionLeave3WithInfo(
481 FunctionIDOrClientID functionIDOrClientID,
482 COR_PRF_ELT_INFO eltInfo);
483
484typedef void STDMETHODCALLTYPE STDMETHODCALLTYPE FunctionTailcall3WithInfo(
485 FunctionIDOrClientID functionIDOrClientID,
486 COR_PRF_ELT_INFO eltInfo);
487
488typedef HRESULT __stdcall __stdcall StackSnapshotCallback(
489 FunctionID funcId,
490 UINT_PTR ip,
491 COR_PRF_FRAME_INFO frameInfo,
492 ULONG32 contextSize,
493 BYTE context[ ],
494 void *clientData);
495
496typedef /* [public] */
497enum __MIDL___MIDL_itf_corprof_0000_0000_0005
498 {
499 COR_PRF_MONITOR_NONE = 0,
500 COR_PRF_MONITOR_FUNCTION_UNLOADS = 0x1,
501 COR_PRF_MONITOR_CLASS_LOADS = 0x2,
502 COR_PRF_MONITOR_MODULE_LOADS = 0x4,
503 COR_PRF_MONITOR_ASSEMBLY_LOADS = 0x8,
504 COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10,
505 COR_PRF_MONITOR_JIT_COMPILATION = 0x20,
506 COR_PRF_MONITOR_EXCEPTIONS = 0x40,
507 COR_PRF_MONITOR_GC = 0x80,
508 COR_PRF_MONITOR_OBJECT_ALLOCATED = 0x100,
509 COR_PRF_MONITOR_THREADS = 0x200,
510 COR_PRF_MONITOR_REMOTING = 0x400,
511 COR_PRF_MONITOR_CODE_TRANSITIONS = 0x800,
512 COR_PRF_MONITOR_ENTERLEAVE = 0x1000,
513 COR_PRF_MONITOR_CCW = 0x2000,
514 COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) ,
515 COR_PRF_MONITOR_REMOTING_ASYNC = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) ,
516 COR_PRF_MONITOR_SUSPENDS = 0x10000,
517 COR_PRF_MONITOR_CACHE_SEARCHES = 0x20000,
518 COR_PRF_ENABLE_REJIT = 0x40000,
519 COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000,
520 COR_PRF_ENABLE_JIT_MAPS = 0x100000,
521 COR_PRF_DISABLE_INLINING = 0x200000,
522 COR_PRF_DISABLE_OPTIMIZATIONS = 0x400000,
523 COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000,
524 COR_PRF_MONITOR_CLR_EXCEPTIONS = 0x1000000,
525 COR_PRF_MONITOR_ALL = 0x107ffff,
526 COR_PRF_ENABLE_FUNCTION_ARGS = 0x2000000,
527 COR_PRF_ENABLE_FUNCTION_RETVAL = 0x4000000,
528 COR_PRF_ENABLE_FRAME_INFO = 0x8000000,
529 COR_PRF_ENABLE_STACK_SNAPSHOT = 0x10000000,
530 COR_PRF_USE_PROFILE_IMAGES = 0x20000000,
531 COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST = 0x40000000,
532 COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
533 COR_PRF_ALL = 0x8fffffff,
534 COR_PRF_REQUIRE_PROFILE_IMAGE = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS ) | COR_PRF_MONITOR_ENTERLEAVE ) ,
535 COR_PRF_ALLOWABLE_AFTER_ATTACH = ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_THREADS | COR_PRF_MONITOR_MODULE_LOADS ) | COR_PRF_MONITOR_ASSEMBLY_LOADS ) | COR_PRF_MONITOR_APPDOMAIN_LOADS ) | COR_PRF_ENABLE_STACK_SNAPSHOT ) | COR_PRF_MONITOR_GC ) | COR_PRF_MONITOR_SUSPENDS ) | COR_PRF_MONITOR_CLASS_LOADS ) | COR_PRF_MONITOR_EXCEPTIONS ) | COR_PRF_MONITOR_JIT_COMPILATION ) | COR_PRF_ENABLE_REJIT ) ,
536 COR_PRF_MONITOR_IMMUTABLE = ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING ) | COR_PRF_MONITOR_REMOTING_COOKIE ) | COR_PRF_MONITOR_REMOTING_ASYNC ) | COR_PRF_ENABLE_INPROC_DEBUGGING ) | COR_PRF_ENABLE_JIT_MAPS ) | COR_PRF_DISABLE_OPTIMIZATIONS ) | COR_PRF_DISABLE_INLINING ) | COR_PRF_ENABLE_OBJECT_ALLOCATED ) | COR_PRF_ENABLE_FUNCTION_ARGS ) | COR_PRF_ENABLE_FUNCTION_RETVAL ) | COR_PRF_ENABLE_FRAME_INFO ) | COR_PRF_USE_PROFILE_IMAGES ) | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST ) | COR_PRF_DISABLE_ALL_NGEN_IMAGES )
537 } COR_PRF_MONITOR;
538
539typedef /* [public] */
540enum __MIDL___MIDL_itf_corprof_0000_0000_0006
541 {
542 COR_PRF_HIGH_MONITOR_NONE = 0,
543 COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES = 0x1,
544 COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED = 0x2,
545 COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS = 0x4,
546 COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8,
547 COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE = 0,
548 COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH = ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) ,
549 COR_PRF_HIGH_MONITOR_IMMUTABLE = COR_PRF_HIGH_DISABLE_TIERED_COMPILATION
550 } COR_PRF_HIGH_MONITOR;
551
552typedef /* [public] */
553enum __MIDL___MIDL_itf_corprof_0000_0000_0007
554 {
555 PROFILER_PARENT_UNKNOWN = 0xfffffffd,
556 PROFILER_GLOBAL_CLASS = 0xfffffffe,
557 PROFILER_GLOBAL_MODULE = 0xffffffff
558 } COR_PRF_MISC;
559
560typedef /* [public][public] */
561enum __MIDL___MIDL_itf_corprof_0000_0000_0008
562 {
563 COR_PRF_CACHED_FUNCTION_FOUND = 0,
564 COR_PRF_CACHED_FUNCTION_NOT_FOUND = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 )
565 } COR_PRF_JIT_CACHE;
566
567typedef /* [public][public][public] */
568enum __MIDL___MIDL_itf_corprof_0000_0000_0009
569 {
570 COR_PRF_TRANSITION_CALL = 0,
571 COR_PRF_TRANSITION_RETURN = ( COR_PRF_TRANSITION_CALL + 1 )
572 } COR_PRF_TRANSITION_REASON;
573
574typedef /* [public][public] */
575enum __MIDL___MIDL_itf_corprof_0000_0000_0010
576 {
577 COR_PRF_SUSPEND_OTHER = 0,
578 COR_PRF_SUSPEND_FOR_GC = 1,
579 COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN = 2,
580 COR_PRF_SUSPEND_FOR_CODE_PITCHING = 3,
581 COR_PRF_SUSPEND_FOR_SHUTDOWN = 4,
582 COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER = 6,
583 COR_PRF_SUSPEND_FOR_GC_PREP = 7,
584 COR_PRF_SUSPEND_FOR_REJIT = 8
585 } COR_PRF_SUSPEND_REASON;
586
587typedef /* [public][public] */
588enum __MIDL___MIDL_itf_corprof_0000_0000_0011
589 {
590 COR_PRF_DESKTOP_CLR = 0x1,
591 COR_PRF_CORE_CLR = 0x2
592 } COR_PRF_RUNTIME_TYPE;
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_c_ifspec;
613extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_s_ifspec;
614
615#ifndef __ICorProfilerCallback_INTERFACE_DEFINED__
616#define __ICorProfilerCallback_INTERFACE_DEFINED__
617
618/* interface ICorProfilerCallback */
619/* [local][unique][uuid][object] */
620
621
622EXTERN_C const IID IID_ICorProfilerCallback;
623
624#if defined(__cplusplus) && !defined(CINTERFACE)
625
626 MIDL_INTERFACE("176FBED1-A55C-4796-98CA-A9DA0EF883E7")
627 ICorProfilerCallback : public IUnknown
628 {
629 public:
630 virtual HRESULT STDMETHODCALLTYPE Initialize(
631 /* [in] */ IUnknown *pICorProfilerInfoUnk) = 0;
632
633 virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
634
635 virtual HRESULT STDMETHODCALLTYPE AppDomainCreationStarted(
636 /* [in] */ AppDomainID appDomainId) = 0;
637
638 virtual HRESULT STDMETHODCALLTYPE AppDomainCreationFinished(
639 /* [in] */ AppDomainID appDomainId,
640 /* [in] */ HRESULT hrStatus) = 0;
641
642 virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownStarted(
643 /* [in] */ AppDomainID appDomainId) = 0;
644
645 virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownFinished(
646 /* [in] */ AppDomainID appDomainId,
647 /* [in] */ HRESULT hrStatus) = 0;
648
649 virtual HRESULT STDMETHODCALLTYPE AssemblyLoadStarted(
650 /* [in] */ AssemblyID assemblyId) = 0;
651
652 virtual HRESULT STDMETHODCALLTYPE AssemblyLoadFinished(
653 /* [in] */ AssemblyID assemblyId,
654 /* [in] */ HRESULT hrStatus) = 0;
655
656 virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadStarted(
657 /* [in] */ AssemblyID assemblyId) = 0;
658
659 virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished(
660 /* [in] */ AssemblyID assemblyId,
661 /* [in] */ HRESULT hrStatus) = 0;
662
663 virtual HRESULT STDMETHODCALLTYPE ModuleLoadStarted(
664 /* [in] */ ModuleID moduleId) = 0;
665
666 virtual HRESULT STDMETHODCALLTYPE ModuleLoadFinished(
667 /* [in] */ ModuleID moduleId,
668 /* [in] */ HRESULT hrStatus) = 0;
669
670 virtual HRESULT STDMETHODCALLTYPE ModuleUnloadStarted(
671 /* [in] */ ModuleID moduleId) = 0;
672
673 virtual HRESULT STDMETHODCALLTYPE ModuleUnloadFinished(
674 /* [in] */ ModuleID moduleId,
675 /* [in] */ HRESULT hrStatus) = 0;
676
677 virtual HRESULT STDMETHODCALLTYPE ModuleAttachedToAssembly(
678 /* [in] */ ModuleID moduleId,
679 /* [in] */ AssemblyID AssemblyId) = 0;
680
681 virtual HRESULT STDMETHODCALLTYPE ClassLoadStarted(
682 /* [in] */ ClassID classId) = 0;
683
684 virtual HRESULT STDMETHODCALLTYPE ClassLoadFinished(
685 /* [in] */ ClassID classId,
686 /* [in] */ HRESULT hrStatus) = 0;
687
688 virtual HRESULT STDMETHODCALLTYPE ClassUnloadStarted(
689 /* [in] */ ClassID classId) = 0;
690
691 virtual HRESULT STDMETHODCALLTYPE ClassUnloadFinished(
692 /* [in] */ ClassID classId,
693 /* [in] */ HRESULT hrStatus) = 0;
694
695 virtual HRESULT STDMETHODCALLTYPE FunctionUnloadStarted(
696 /* [in] */ FunctionID functionId) = 0;
697
698 virtual HRESULT STDMETHODCALLTYPE JITCompilationStarted(
699 /* [in] */ FunctionID functionId,
700 /* [in] */ BOOL fIsSafeToBlock) = 0;
701
702 virtual HRESULT STDMETHODCALLTYPE JITCompilationFinished(
703 /* [in] */ FunctionID functionId,
704 /* [in] */ HRESULT hrStatus,
705 /* [in] */ BOOL fIsSafeToBlock) = 0;
706
707 virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted(
708 /* [in] */ FunctionID functionId,
709 /* [out] */ BOOL *pbUseCachedFunction) = 0;
710
711 virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished(
712 /* [in] */ FunctionID functionId,
713 /* [in] */ COR_PRF_JIT_CACHE result) = 0;
714
715 virtual HRESULT STDMETHODCALLTYPE JITFunctionPitched(
716 /* [in] */ FunctionID functionId) = 0;
717
718 virtual HRESULT STDMETHODCALLTYPE JITInlining(
719 /* [in] */ FunctionID callerId,
720 /* [in] */ FunctionID calleeId,
721 /* [out] */ BOOL *pfShouldInline) = 0;
722
723 virtual HRESULT STDMETHODCALLTYPE ThreadCreated(
724 /* [in] */ ThreadID threadId) = 0;
725
726 virtual HRESULT STDMETHODCALLTYPE ThreadDestroyed(
727 /* [in] */ ThreadID threadId) = 0;
728
729 virtual HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread(
730 /* [in] */ ThreadID managedThreadId,
731 /* [in] */ DWORD osThreadId) = 0;
732
733 virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted( void) = 0;
734
735 virtual HRESULT STDMETHODCALLTYPE RemotingClientSendingMessage(
736 /* [in] */ GUID *pCookie,
737 /* [in] */ BOOL fIsAsync) = 0;
738
739 virtual HRESULT STDMETHODCALLTYPE RemotingClientReceivingReply(
740 /* [in] */ GUID *pCookie,
741 /* [in] */ BOOL fIsAsync) = 0;
742
743 virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished( void) = 0;
744
745 virtual HRESULT STDMETHODCALLTYPE RemotingServerReceivingMessage(
746 /* [in] */ GUID *pCookie,
747 /* [in] */ BOOL fIsAsync) = 0;
748
749 virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted( void) = 0;
750
751 virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned( void) = 0;
752
753 virtual HRESULT STDMETHODCALLTYPE RemotingServerSendingReply(
754 /* [in] */ GUID *pCookie,
755 /* [in] */ BOOL fIsAsync) = 0;
756
757 virtual HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition(
758 /* [in] */ FunctionID functionId,
759 /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
760
761 virtual HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition(
762 /* [in] */ FunctionID functionId,
763 /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
764
765 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendStarted(
766 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason) = 0;
767
768 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished( void) = 0;
769
770 virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted( void) = 0;
771
772 virtual HRESULT STDMETHODCALLTYPE RuntimeResumeStarted( void) = 0;
773
774 virtual HRESULT STDMETHODCALLTYPE RuntimeResumeFinished( void) = 0;
775
776 virtual HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended(
777 /* [in] */ ThreadID threadId) = 0;
778
779 virtual HRESULT STDMETHODCALLTYPE RuntimeThreadResumed(
780 /* [in] */ ThreadID threadId) = 0;
781
782 virtual HRESULT STDMETHODCALLTYPE MovedReferences(
783 /* [in] */ ULONG cMovedObjectIDRanges,
784 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
785 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
786 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
787
788 virtual HRESULT STDMETHODCALLTYPE ObjectAllocated(
789 /* [in] */ ObjectID objectId,
790 /* [in] */ ClassID classId) = 0;
791
792 virtual HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass(
793 /* [in] */ ULONG cClassCount,
794 /* [size_is][in] */ ClassID classIds[ ],
795 /* [size_is][in] */ ULONG cObjects[ ]) = 0;
796
797 virtual HRESULT STDMETHODCALLTYPE ObjectReferences(
798 /* [in] */ ObjectID objectId,
799 /* [in] */ ClassID classId,
800 /* [in] */ ULONG cObjectRefs,
801 /* [size_is][in] */ ObjectID objectRefIds[ ]) = 0;
802
803 virtual HRESULT STDMETHODCALLTYPE RootReferences(
804 /* [in] */ ULONG cRootRefs,
805 /* [size_is][in] */ ObjectID rootRefIds[ ]) = 0;
806
807 virtual HRESULT STDMETHODCALLTYPE ExceptionThrown(
808 /* [in] */ ObjectID thrownObjectId) = 0;
809
810 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionEnter(
811 /* [in] */ FunctionID functionId) = 0;
812
813 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave( void) = 0;
814
815 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterEnter(
816 /* [in] */ FunctionID functionId) = 0;
817
818 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave( void) = 0;
819
820 virtual HRESULT STDMETHODCALLTYPE ExceptionSearchCatcherFound(
821 /* [in] */ FunctionID functionId) = 0;
822
823 virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter(
824 /* [in] */ UINT_PTR __unused) = 0;
825
826 virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave(
827 /* [in] */ UINT_PTR __unused) = 0;
828
829 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionEnter(
830 /* [in] */ FunctionID functionId) = 0;
831
832 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave( void) = 0;
833
834 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyEnter(
835 /* [in] */ FunctionID functionId) = 0;
836
837 virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave( void) = 0;
838
839 virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter(
840 /* [in] */ FunctionID functionId,
841 /* [in] */ ObjectID objectId) = 0;
842
843 virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave( void) = 0;
844
845 virtual HRESULT STDMETHODCALLTYPE COMClassicVTableCreated(
846 /* [in] */ ClassID wrappedClassId,
847 /* [in] */ REFGUID implementedIID,
848 /* [in] */ void *pVTable,
849 /* [in] */ ULONG cSlots) = 0;
850
851 virtual HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed(
852 /* [in] */ ClassID wrappedClassId,
853 /* [in] */ REFGUID implementedIID,
854 /* [in] */ void *pVTable) = 0;
855
856 virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound( void) = 0;
857
858 virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute( void) = 0;
859
860 };
861
862
863#else /* C style interface */
864
865 typedef struct ICorProfilerCallbackVtbl
866 {
867 BEGIN_INTERFACE
868
869 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
870 ICorProfilerCallback * This,
871 /* [in] */ REFIID riid,
872 /* [annotation][iid_is][out] */
873 _COM_Outptr_ void **ppvObject);
874
875 ULONG ( STDMETHODCALLTYPE *AddRef )(
876 ICorProfilerCallback * This);
877
878 ULONG ( STDMETHODCALLTYPE *Release )(
879 ICorProfilerCallback * This);
880
881 HRESULT ( STDMETHODCALLTYPE *Initialize )(
882 ICorProfilerCallback * This,
883 /* [in] */ IUnknown *pICorProfilerInfoUnk);
884
885 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
886 ICorProfilerCallback * This);
887
888 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
889 ICorProfilerCallback * This,
890 /* [in] */ AppDomainID appDomainId);
891
892 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
893 ICorProfilerCallback * This,
894 /* [in] */ AppDomainID appDomainId,
895 /* [in] */ HRESULT hrStatus);
896
897 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
898 ICorProfilerCallback * This,
899 /* [in] */ AppDomainID appDomainId);
900
901 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
902 ICorProfilerCallback * This,
903 /* [in] */ AppDomainID appDomainId,
904 /* [in] */ HRESULT hrStatus);
905
906 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
907 ICorProfilerCallback * This,
908 /* [in] */ AssemblyID assemblyId);
909
910 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
911 ICorProfilerCallback * This,
912 /* [in] */ AssemblyID assemblyId,
913 /* [in] */ HRESULT hrStatus);
914
915 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
916 ICorProfilerCallback * This,
917 /* [in] */ AssemblyID assemblyId);
918
919 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
920 ICorProfilerCallback * This,
921 /* [in] */ AssemblyID assemblyId,
922 /* [in] */ HRESULT hrStatus);
923
924 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
925 ICorProfilerCallback * This,
926 /* [in] */ ModuleID moduleId);
927
928 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
929 ICorProfilerCallback * This,
930 /* [in] */ ModuleID moduleId,
931 /* [in] */ HRESULT hrStatus);
932
933 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
934 ICorProfilerCallback * This,
935 /* [in] */ ModuleID moduleId);
936
937 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
938 ICorProfilerCallback * This,
939 /* [in] */ ModuleID moduleId,
940 /* [in] */ HRESULT hrStatus);
941
942 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
943 ICorProfilerCallback * This,
944 /* [in] */ ModuleID moduleId,
945 /* [in] */ AssemblyID AssemblyId);
946
947 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
948 ICorProfilerCallback * This,
949 /* [in] */ ClassID classId);
950
951 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
952 ICorProfilerCallback * This,
953 /* [in] */ ClassID classId,
954 /* [in] */ HRESULT hrStatus);
955
956 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
957 ICorProfilerCallback * This,
958 /* [in] */ ClassID classId);
959
960 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
961 ICorProfilerCallback * This,
962 /* [in] */ ClassID classId,
963 /* [in] */ HRESULT hrStatus);
964
965 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
966 ICorProfilerCallback * This,
967 /* [in] */ FunctionID functionId);
968
969 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
970 ICorProfilerCallback * This,
971 /* [in] */ FunctionID functionId,
972 /* [in] */ BOOL fIsSafeToBlock);
973
974 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
975 ICorProfilerCallback * This,
976 /* [in] */ FunctionID functionId,
977 /* [in] */ HRESULT hrStatus,
978 /* [in] */ BOOL fIsSafeToBlock);
979
980 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
981 ICorProfilerCallback * This,
982 /* [in] */ FunctionID functionId,
983 /* [out] */ BOOL *pbUseCachedFunction);
984
985 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
986 ICorProfilerCallback * This,
987 /* [in] */ FunctionID functionId,
988 /* [in] */ COR_PRF_JIT_CACHE result);
989
990 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
991 ICorProfilerCallback * This,
992 /* [in] */ FunctionID functionId);
993
994 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
995 ICorProfilerCallback * This,
996 /* [in] */ FunctionID callerId,
997 /* [in] */ FunctionID calleeId,
998 /* [out] */ BOOL *pfShouldInline);
999
1000 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
1001 ICorProfilerCallback * This,
1002 /* [in] */ ThreadID threadId);
1003
1004 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
1005 ICorProfilerCallback * This,
1006 /* [in] */ ThreadID threadId);
1007
1008 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
1009 ICorProfilerCallback * This,
1010 /* [in] */ ThreadID managedThreadId,
1011 /* [in] */ DWORD osThreadId);
1012
1013 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
1014 ICorProfilerCallback * This);
1015
1016 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
1017 ICorProfilerCallback * This,
1018 /* [in] */ GUID *pCookie,
1019 /* [in] */ BOOL fIsAsync);
1020
1021 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
1022 ICorProfilerCallback * This,
1023 /* [in] */ GUID *pCookie,
1024 /* [in] */ BOOL fIsAsync);
1025
1026 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
1027 ICorProfilerCallback * This);
1028
1029 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
1030 ICorProfilerCallback * This,
1031 /* [in] */ GUID *pCookie,
1032 /* [in] */ BOOL fIsAsync);
1033
1034 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
1035 ICorProfilerCallback * This);
1036
1037 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
1038 ICorProfilerCallback * This);
1039
1040 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
1041 ICorProfilerCallback * This,
1042 /* [in] */ GUID *pCookie,
1043 /* [in] */ BOOL fIsAsync);
1044
1045 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
1046 ICorProfilerCallback * This,
1047 /* [in] */ FunctionID functionId,
1048 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1049
1050 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
1051 ICorProfilerCallback * This,
1052 /* [in] */ FunctionID functionId,
1053 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1054
1055 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
1056 ICorProfilerCallback * This,
1057 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1058
1059 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
1060 ICorProfilerCallback * This);
1061
1062 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
1063 ICorProfilerCallback * This);
1064
1065 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
1066 ICorProfilerCallback * This);
1067
1068 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
1069 ICorProfilerCallback * This);
1070
1071 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
1072 ICorProfilerCallback * This,
1073 /* [in] */ ThreadID threadId);
1074
1075 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
1076 ICorProfilerCallback * This,
1077 /* [in] */ ThreadID threadId);
1078
1079 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
1080 ICorProfilerCallback * This,
1081 /* [in] */ ULONG cMovedObjectIDRanges,
1082 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
1083 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
1084 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1085
1086 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
1087 ICorProfilerCallback * This,
1088 /* [in] */ ObjectID objectId,
1089 /* [in] */ ClassID classId);
1090
1091 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
1092 ICorProfilerCallback * This,
1093 /* [in] */ ULONG cClassCount,
1094 /* [size_is][in] */ ClassID classIds[ ],
1095 /* [size_is][in] */ ULONG cObjects[ ]);
1096
1097 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
1098 ICorProfilerCallback * This,
1099 /* [in] */ ObjectID objectId,
1100 /* [in] */ ClassID classId,
1101 /* [in] */ ULONG cObjectRefs,
1102 /* [size_is][in] */ ObjectID objectRefIds[ ]);
1103
1104 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
1105 ICorProfilerCallback * This,
1106 /* [in] */ ULONG cRootRefs,
1107 /* [size_is][in] */ ObjectID rootRefIds[ ]);
1108
1109 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
1110 ICorProfilerCallback * This,
1111 /* [in] */ ObjectID thrownObjectId);
1112
1113 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
1114 ICorProfilerCallback * This,
1115 /* [in] */ FunctionID functionId);
1116
1117 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
1118 ICorProfilerCallback * This);
1119
1120 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
1121 ICorProfilerCallback * This,
1122 /* [in] */ FunctionID functionId);
1123
1124 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
1125 ICorProfilerCallback * This);
1126
1127 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
1128 ICorProfilerCallback * This,
1129 /* [in] */ FunctionID functionId);
1130
1131 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
1132 ICorProfilerCallback * This,
1133 /* [in] */ UINT_PTR __unused);
1134
1135 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
1136 ICorProfilerCallback * This,
1137 /* [in] */ UINT_PTR __unused);
1138
1139 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
1140 ICorProfilerCallback * This,
1141 /* [in] */ FunctionID functionId);
1142
1143 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
1144 ICorProfilerCallback * This);
1145
1146 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
1147 ICorProfilerCallback * This,
1148 /* [in] */ FunctionID functionId);
1149
1150 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
1151 ICorProfilerCallback * This);
1152
1153 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
1154 ICorProfilerCallback * This,
1155 /* [in] */ FunctionID functionId,
1156 /* [in] */ ObjectID objectId);
1157
1158 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
1159 ICorProfilerCallback * This);
1160
1161 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
1162 ICorProfilerCallback * This,
1163 /* [in] */ ClassID wrappedClassId,
1164 /* [in] */ REFGUID implementedIID,
1165 /* [in] */ void *pVTable,
1166 /* [in] */ ULONG cSlots);
1167
1168 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
1169 ICorProfilerCallback * This,
1170 /* [in] */ ClassID wrappedClassId,
1171 /* [in] */ REFGUID implementedIID,
1172 /* [in] */ void *pVTable);
1173
1174 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
1175 ICorProfilerCallback * This);
1176
1177 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
1178 ICorProfilerCallback * This);
1179
1180 END_INTERFACE
1181 } ICorProfilerCallbackVtbl;
1182
1183 interface ICorProfilerCallback
1184 {
1185 CONST_VTBL struct ICorProfilerCallbackVtbl *lpVtbl;
1186 };
1187
1188
1189
1190#ifdef COBJMACROS
1191
1192
1193#define ICorProfilerCallback_QueryInterface(This,riid,ppvObject) \
1194 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1195
1196#define ICorProfilerCallback_AddRef(This) \
1197 ( (This)->lpVtbl -> AddRef(This) )
1198
1199#define ICorProfilerCallback_Release(This) \
1200 ( (This)->lpVtbl -> Release(This) )
1201
1202
1203#define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk) \
1204 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
1205
1206#define ICorProfilerCallback_Shutdown(This) \
1207 ( (This)->lpVtbl -> Shutdown(This) )
1208
1209#define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \
1210 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
1211
1212#define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus) \
1213 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
1214
1215#define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \
1216 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
1217
1218#define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
1219 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
1220
1221#define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId) \
1222 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
1223
1224#define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus) \
1225 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
1226
1227#define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId) \
1228 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
1229
1230#define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
1231 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
1232
1233#define ICorProfilerCallback_ModuleLoadStarted(This,moduleId) \
1234 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
1235
1236#define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \
1237 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
1238
1239#define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \
1240 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
1241
1242#define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus) \
1243 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
1244
1245#define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
1246 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
1247
1248#define ICorProfilerCallback_ClassLoadStarted(This,classId) \
1249 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
1250
1251#define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus) \
1252 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
1253
1254#define ICorProfilerCallback_ClassUnloadStarted(This,classId) \
1255 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
1256
1257#define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \
1258 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
1259
1260#define ICorProfilerCallback_FunctionUnloadStarted(This,functionId) \
1261 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
1262
1263#define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
1264 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
1265
1266#define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
1267 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
1268
1269#define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
1270 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
1271
1272#define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result) \
1273 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
1274
1275#define ICorProfilerCallback_JITFunctionPitched(This,functionId) \
1276 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
1277
1278#define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \
1279 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
1280
1281#define ICorProfilerCallback_ThreadCreated(This,threadId) \
1282 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
1283
1284#define ICorProfilerCallback_ThreadDestroyed(This,threadId) \
1285 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
1286
1287#define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
1288 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
1289
1290#define ICorProfilerCallback_RemotingClientInvocationStarted(This) \
1291 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
1292
1293#define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
1294 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
1295
1296#define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
1297 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
1298
1299#define ICorProfilerCallback_RemotingClientInvocationFinished(This) \
1300 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
1301
1302#define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
1303 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
1304
1305#define ICorProfilerCallback_RemotingServerInvocationStarted(This) \
1306 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
1307
1308#define ICorProfilerCallback_RemotingServerInvocationReturned(This) \
1309 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
1310
1311#define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync) \
1312 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
1313
1314#define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason) \
1315 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
1316
1317#define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason) \
1318 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
1319
1320#define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason) \
1321 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
1322
1323#define ICorProfilerCallback_RuntimeSuspendFinished(This) \
1324 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
1325
1326#define ICorProfilerCallback_RuntimeSuspendAborted(This) \
1327 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
1328
1329#define ICorProfilerCallback_RuntimeResumeStarted(This) \
1330 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
1331
1332#define ICorProfilerCallback_RuntimeResumeFinished(This) \
1333 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
1334
1335#define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId) \
1336 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
1337
1338#define ICorProfilerCallback_RuntimeThreadResumed(This,threadId) \
1339 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
1340
1341#define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
1342 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
1343
1344#define ICorProfilerCallback_ObjectAllocated(This,objectId,classId) \
1345 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
1346
1347#define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
1348 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
1349
1350#define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
1351 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
1352
1353#define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds) \
1354 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
1355
1356#define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId) \
1357 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
1358
1359#define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId) \
1360 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
1361
1362#define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \
1363 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
1364
1365#define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId) \
1366 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
1367
1368#define ICorProfilerCallback_ExceptionSearchFilterLeave(This) \
1369 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
1370
1371#define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId) \
1372 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
1373
1374#define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused) \
1375 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
1376
1377#define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused) \
1378 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
1379
1380#define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId) \
1381 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
1382
1383#define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \
1384 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
1385
1386#define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId) \
1387 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
1388
1389#define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This) \
1390 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
1391
1392#define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId) \
1393 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
1394
1395#define ICorProfilerCallback_ExceptionCatcherLeave(This) \
1396 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
1397
1398#define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
1399 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
1400
1401#define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
1402 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
1403
1404#define ICorProfilerCallback_ExceptionCLRCatcherFound(This) \
1405 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
1406
1407#define ICorProfilerCallback_ExceptionCLRCatcherExecute(This) \
1408 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
1409
1410#endif /* COBJMACROS */
1411
1412
1413#endif /* C style interface */
1414
1415
1416
1417
1418#endif /* __ICorProfilerCallback_INTERFACE_DEFINED__ */
1419
1420
1421/* interface __MIDL_itf_corprof_0000_0001 */
1422/* [local] */
1423
1424typedef /* [public][public] */
1425enum __MIDL___MIDL_itf_corprof_0000_0001_0001
1426 {
1427 COR_PRF_GC_ROOT_STACK = 1,
1428 COR_PRF_GC_ROOT_FINALIZER = 2,
1429 COR_PRF_GC_ROOT_HANDLE = 3,
1430 COR_PRF_GC_ROOT_OTHER = 0
1431 } COR_PRF_GC_ROOT_KIND;
1432
1433typedef /* [public][public] */
1434enum __MIDL___MIDL_itf_corprof_0000_0001_0002
1435 {
1436 COR_PRF_GC_ROOT_PINNING = 0x1,
1437 COR_PRF_GC_ROOT_WEAKREF = 0x2,
1438 COR_PRF_GC_ROOT_INTERIOR = 0x4,
1439 COR_PRF_GC_ROOT_REFCOUNTED = 0x8
1440 } COR_PRF_GC_ROOT_FLAGS;
1441
1442typedef /* [public] */
1443enum __MIDL___MIDL_itf_corprof_0000_0001_0003
1444 {
1445 COR_PRF_FINALIZER_CRITICAL = 0x1
1446 } COR_PRF_FINALIZER_FLAGS;
1447
1448typedef /* [public][public][public][public] */
1449enum __MIDL___MIDL_itf_corprof_0000_0001_0004
1450 {
1451 COR_PRF_GC_GEN_0 = 0,
1452 COR_PRF_GC_GEN_1 = 1,
1453 COR_PRF_GC_GEN_2 = 2,
1454 COR_PRF_GC_LARGE_OBJECT_HEAP = 3
1455 } COR_PRF_GC_GENERATION;
1456
1457typedef struct COR_PRF_GC_GENERATION_RANGE
1458 {
1459 COR_PRF_GC_GENERATION generation;
1460 ObjectID rangeStart;
1461 UINT_PTR rangeLength;
1462 UINT_PTR rangeLengthReserved;
1463 } COR_PRF_GC_GENERATION_RANGE;
1464
1465typedef /* [public][public][public] */
1466enum __MIDL___MIDL_itf_corprof_0000_0001_0005
1467 {
1468 COR_PRF_CLAUSE_NONE = 0,
1469 COR_PRF_CLAUSE_FILTER = 1,
1470 COR_PRF_CLAUSE_CATCH = 2,
1471 COR_PRF_CLAUSE_FINALLY = 3
1472 } COR_PRF_CLAUSE_TYPE;
1473
1474typedef struct COR_PRF_EX_CLAUSE_INFO
1475 {
1476 COR_PRF_CLAUSE_TYPE clauseType;
1477 UINT_PTR programCounter;
1478 UINT_PTR framePointer;
1479 UINT_PTR shadowStackPointer;
1480 } COR_PRF_EX_CLAUSE_INFO;
1481
1482typedef /* [public][public] */
1483enum __MIDL___MIDL_itf_corprof_0000_0001_0006
1484 {
1485 COR_PRF_GC_INDUCED = 1,
1486 COR_PRF_GC_OTHER = 0
1487 } COR_PRF_GC_REASON;
1488
1489typedef /* [public] */
1490enum __MIDL___MIDL_itf_corprof_0000_0001_0007
1491 {
1492 COR_PRF_MODULE_DISK = 0x1,
1493 COR_PRF_MODULE_NGEN = 0x2,
1494 COR_PRF_MODULE_DYNAMIC = 0x4,
1495 COR_PRF_MODULE_COLLECTIBLE = 0x8,
1496 COR_PRF_MODULE_RESOURCE = 0x10,
1497 COR_PRF_MODULE_FLAT_LAYOUT = 0x20,
1498 COR_PRF_MODULE_WINDOWS_RUNTIME = 0x40
1499 } COR_PRF_MODULE_FLAGS;
1500
1501
1502
1503extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_c_ifspec;
1504extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_s_ifspec;
1505
1506#ifndef __ICorProfilerCallback2_INTERFACE_DEFINED__
1507#define __ICorProfilerCallback2_INTERFACE_DEFINED__
1508
1509/* interface ICorProfilerCallback2 */
1510/* [local][unique][uuid][object] */
1511
1512
1513EXTERN_C const IID IID_ICorProfilerCallback2;
1514
1515#if defined(__cplusplus) && !defined(CINTERFACE)
1516
1517 MIDL_INTERFACE("8A8CC829-CCF2-49fe-BBAE-0F022228071A")
1518 ICorProfilerCallback2 : public ICorProfilerCallback
1519 {
1520 public:
1521 virtual HRESULT STDMETHODCALLTYPE ThreadNameChanged(
1522 /* [in] */ ThreadID threadId,
1523 /* [in] */ ULONG cchName,
1524 /* [annotation][in] */
1525 _In_reads_opt_(cchName) WCHAR name[ ]) = 0;
1526
1527 virtual HRESULT STDMETHODCALLTYPE GarbageCollectionStarted(
1528 /* [in] */ int cGenerations,
1529 /* [size_is][in] */ BOOL generationCollected[ ],
1530 /* [in] */ COR_PRF_GC_REASON reason) = 0;
1531
1532 virtual HRESULT STDMETHODCALLTYPE SurvivingReferences(
1533 /* [in] */ ULONG cSurvivingObjectIDRanges,
1534 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
1535 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]) = 0;
1536
1537 virtual HRESULT STDMETHODCALLTYPE GarbageCollectionFinished( void) = 0;
1538
1539 virtual HRESULT STDMETHODCALLTYPE FinalizeableObjectQueued(
1540 /* [in] */ DWORD finalizerFlags,
1541 /* [in] */ ObjectID objectID) = 0;
1542
1543 virtual HRESULT STDMETHODCALLTYPE RootReferences2(
1544 /* [in] */ ULONG cRootRefs,
1545 /* [size_is][in] */ ObjectID rootRefIds[ ],
1546 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
1547 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
1548 /* [size_is][in] */ UINT_PTR rootIds[ ]) = 0;
1549
1550 virtual HRESULT STDMETHODCALLTYPE HandleCreated(
1551 /* [in] */ GCHandleID handleId,
1552 /* [in] */ ObjectID initialObjectId) = 0;
1553
1554 virtual HRESULT STDMETHODCALLTYPE HandleDestroyed(
1555 /* [in] */ GCHandleID handleId) = 0;
1556
1557 };
1558
1559
1560#else /* C style interface */
1561
1562 typedef struct ICorProfilerCallback2Vtbl
1563 {
1564 BEGIN_INTERFACE
1565
1566 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
1567 ICorProfilerCallback2 * This,
1568 /* [in] */ REFIID riid,
1569 /* [annotation][iid_is][out] */
1570 _COM_Outptr_ void **ppvObject);
1571
1572 ULONG ( STDMETHODCALLTYPE *AddRef )(
1573 ICorProfilerCallback2 * This);
1574
1575 ULONG ( STDMETHODCALLTYPE *Release )(
1576 ICorProfilerCallback2 * This);
1577
1578 HRESULT ( STDMETHODCALLTYPE *Initialize )(
1579 ICorProfilerCallback2 * This,
1580 /* [in] */ IUnknown *pICorProfilerInfoUnk);
1581
1582 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
1583 ICorProfilerCallback2 * This);
1584
1585 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
1586 ICorProfilerCallback2 * This,
1587 /* [in] */ AppDomainID appDomainId);
1588
1589 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
1590 ICorProfilerCallback2 * This,
1591 /* [in] */ AppDomainID appDomainId,
1592 /* [in] */ HRESULT hrStatus);
1593
1594 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
1595 ICorProfilerCallback2 * This,
1596 /* [in] */ AppDomainID appDomainId);
1597
1598 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
1599 ICorProfilerCallback2 * This,
1600 /* [in] */ AppDomainID appDomainId,
1601 /* [in] */ HRESULT hrStatus);
1602
1603 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
1604 ICorProfilerCallback2 * This,
1605 /* [in] */ AssemblyID assemblyId);
1606
1607 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
1608 ICorProfilerCallback2 * This,
1609 /* [in] */ AssemblyID assemblyId,
1610 /* [in] */ HRESULT hrStatus);
1611
1612 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
1613 ICorProfilerCallback2 * This,
1614 /* [in] */ AssemblyID assemblyId);
1615
1616 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
1617 ICorProfilerCallback2 * This,
1618 /* [in] */ AssemblyID assemblyId,
1619 /* [in] */ HRESULT hrStatus);
1620
1621 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
1622 ICorProfilerCallback2 * This,
1623 /* [in] */ ModuleID moduleId);
1624
1625 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
1626 ICorProfilerCallback2 * This,
1627 /* [in] */ ModuleID moduleId,
1628 /* [in] */ HRESULT hrStatus);
1629
1630 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
1631 ICorProfilerCallback2 * This,
1632 /* [in] */ ModuleID moduleId);
1633
1634 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
1635 ICorProfilerCallback2 * This,
1636 /* [in] */ ModuleID moduleId,
1637 /* [in] */ HRESULT hrStatus);
1638
1639 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
1640 ICorProfilerCallback2 * This,
1641 /* [in] */ ModuleID moduleId,
1642 /* [in] */ AssemblyID AssemblyId);
1643
1644 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
1645 ICorProfilerCallback2 * This,
1646 /* [in] */ ClassID classId);
1647
1648 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
1649 ICorProfilerCallback2 * This,
1650 /* [in] */ ClassID classId,
1651 /* [in] */ HRESULT hrStatus);
1652
1653 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
1654 ICorProfilerCallback2 * This,
1655 /* [in] */ ClassID classId);
1656
1657 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
1658 ICorProfilerCallback2 * This,
1659 /* [in] */ ClassID classId,
1660 /* [in] */ HRESULT hrStatus);
1661
1662 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
1663 ICorProfilerCallback2 * This,
1664 /* [in] */ FunctionID functionId);
1665
1666 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
1667 ICorProfilerCallback2 * This,
1668 /* [in] */ FunctionID functionId,
1669 /* [in] */ BOOL fIsSafeToBlock);
1670
1671 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
1672 ICorProfilerCallback2 * This,
1673 /* [in] */ FunctionID functionId,
1674 /* [in] */ HRESULT hrStatus,
1675 /* [in] */ BOOL fIsSafeToBlock);
1676
1677 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
1678 ICorProfilerCallback2 * This,
1679 /* [in] */ FunctionID functionId,
1680 /* [out] */ BOOL *pbUseCachedFunction);
1681
1682 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
1683 ICorProfilerCallback2 * This,
1684 /* [in] */ FunctionID functionId,
1685 /* [in] */ COR_PRF_JIT_CACHE result);
1686
1687 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
1688 ICorProfilerCallback2 * This,
1689 /* [in] */ FunctionID functionId);
1690
1691 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
1692 ICorProfilerCallback2 * This,
1693 /* [in] */ FunctionID callerId,
1694 /* [in] */ FunctionID calleeId,
1695 /* [out] */ BOOL *pfShouldInline);
1696
1697 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
1698 ICorProfilerCallback2 * This,
1699 /* [in] */ ThreadID threadId);
1700
1701 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
1702 ICorProfilerCallback2 * This,
1703 /* [in] */ ThreadID threadId);
1704
1705 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
1706 ICorProfilerCallback2 * This,
1707 /* [in] */ ThreadID managedThreadId,
1708 /* [in] */ DWORD osThreadId);
1709
1710 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
1711 ICorProfilerCallback2 * This);
1712
1713 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
1714 ICorProfilerCallback2 * This,
1715 /* [in] */ GUID *pCookie,
1716 /* [in] */ BOOL fIsAsync);
1717
1718 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
1719 ICorProfilerCallback2 * This,
1720 /* [in] */ GUID *pCookie,
1721 /* [in] */ BOOL fIsAsync);
1722
1723 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
1724 ICorProfilerCallback2 * This);
1725
1726 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
1727 ICorProfilerCallback2 * This,
1728 /* [in] */ GUID *pCookie,
1729 /* [in] */ BOOL fIsAsync);
1730
1731 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
1732 ICorProfilerCallback2 * This);
1733
1734 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
1735 ICorProfilerCallback2 * This);
1736
1737 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
1738 ICorProfilerCallback2 * This,
1739 /* [in] */ GUID *pCookie,
1740 /* [in] */ BOOL fIsAsync);
1741
1742 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
1743 ICorProfilerCallback2 * This,
1744 /* [in] */ FunctionID functionId,
1745 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1746
1747 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
1748 ICorProfilerCallback2 * This,
1749 /* [in] */ FunctionID functionId,
1750 /* [in] */ COR_PRF_TRANSITION_REASON reason);
1751
1752 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
1753 ICorProfilerCallback2 * This,
1754 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1755
1756 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
1757 ICorProfilerCallback2 * This);
1758
1759 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
1760 ICorProfilerCallback2 * This);
1761
1762 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
1763 ICorProfilerCallback2 * This);
1764
1765 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
1766 ICorProfilerCallback2 * This);
1767
1768 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
1769 ICorProfilerCallback2 * This,
1770 /* [in] */ ThreadID threadId);
1771
1772 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
1773 ICorProfilerCallback2 * This,
1774 /* [in] */ ThreadID threadId);
1775
1776 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
1777 ICorProfilerCallback2 * This,
1778 /* [in] */ ULONG cMovedObjectIDRanges,
1779 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
1780 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
1781 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1782
1783 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
1784 ICorProfilerCallback2 * This,
1785 /* [in] */ ObjectID objectId,
1786 /* [in] */ ClassID classId);
1787
1788 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
1789 ICorProfilerCallback2 * This,
1790 /* [in] */ ULONG cClassCount,
1791 /* [size_is][in] */ ClassID classIds[ ],
1792 /* [size_is][in] */ ULONG cObjects[ ]);
1793
1794 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
1795 ICorProfilerCallback2 * This,
1796 /* [in] */ ObjectID objectId,
1797 /* [in] */ ClassID classId,
1798 /* [in] */ ULONG cObjectRefs,
1799 /* [size_is][in] */ ObjectID objectRefIds[ ]);
1800
1801 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
1802 ICorProfilerCallback2 * This,
1803 /* [in] */ ULONG cRootRefs,
1804 /* [size_is][in] */ ObjectID rootRefIds[ ]);
1805
1806 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
1807 ICorProfilerCallback2 * This,
1808 /* [in] */ ObjectID thrownObjectId);
1809
1810 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
1811 ICorProfilerCallback2 * This,
1812 /* [in] */ FunctionID functionId);
1813
1814 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
1815 ICorProfilerCallback2 * This);
1816
1817 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
1818 ICorProfilerCallback2 * This,
1819 /* [in] */ FunctionID functionId);
1820
1821 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
1822 ICorProfilerCallback2 * This);
1823
1824 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
1825 ICorProfilerCallback2 * This,
1826 /* [in] */ FunctionID functionId);
1827
1828 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
1829 ICorProfilerCallback2 * This,
1830 /* [in] */ UINT_PTR __unused);
1831
1832 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
1833 ICorProfilerCallback2 * This,
1834 /* [in] */ UINT_PTR __unused);
1835
1836 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
1837 ICorProfilerCallback2 * This,
1838 /* [in] */ FunctionID functionId);
1839
1840 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
1841 ICorProfilerCallback2 * This);
1842
1843 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
1844 ICorProfilerCallback2 * This,
1845 /* [in] */ FunctionID functionId);
1846
1847 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
1848 ICorProfilerCallback2 * This);
1849
1850 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
1851 ICorProfilerCallback2 * This,
1852 /* [in] */ FunctionID functionId,
1853 /* [in] */ ObjectID objectId);
1854
1855 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
1856 ICorProfilerCallback2 * This);
1857
1858 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
1859 ICorProfilerCallback2 * This,
1860 /* [in] */ ClassID wrappedClassId,
1861 /* [in] */ REFGUID implementedIID,
1862 /* [in] */ void *pVTable,
1863 /* [in] */ ULONG cSlots);
1864
1865 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
1866 ICorProfilerCallback2 * This,
1867 /* [in] */ ClassID wrappedClassId,
1868 /* [in] */ REFGUID implementedIID,
1869 /* [in] */ void *pVTable);
1870
1871 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
1872 ICorProfilerCallback2 * This);
1873
1874 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
1875 ICorProfilerCallback2 * This);
1876
1877 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
1878 ICorProfilerCallback2 * This,
1879 /* [in] */ ThreadID threadId,
1880 /* [in] */ ULONG cchName,
1881 /* [annotation][in] */
1882 _In_reads_opt_(cchName) WCHAR name[ ]);
1883
1884 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
1885 ICorProfilerCallback2 * This,
1886 /* [in] */ int cGenerations,
1887 /* [size_is][in] */ BOOL generationCollected[ ],
1888 /* [in] */ COR_PRF_GC_REASON reason);
1889
1890 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
1891 ICorProfilerCallback2 * This,
1892 /* [in] */ ULONG cSurvivingObjectIDRanges,
1893 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
1894 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
1895
1896 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
1897 ICorProfilerCallback2 * This);
1898
1899 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
1900 ICorProfilerCallback2 * This,
1901 /* [in] */ DWORD finalizerFlags,
1902 /* [in] */ ObjectID objectID);
1903
1904 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
1905 ICorProfilerCallback2 * This,
1906 /* [in] */ ULONG cRootRefs,
1907 /* [size_is][in] */ ObjectID rootRefIds[ ],
1908 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
1909 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
1910 /* [size_is][in] */ UINT_PTR rootIds[ ]);
1911
1912 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
1913 ICorProfilerCallback2 * This,
1914 /* [in] */ GCHandleID handleId,
1915 /* [in] */ ObjectID initialObjectId);
1916
1917 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
1918 ICorProfilerCallback2 * This,
1919 /* [in] */ GCHandleID handleId);
1920
1921 END_INTERFACE
1922 } ICorProfilerCallback2Vtbl;
1923
1924 interface ICorProfilerCallback2
1925 {
1926 CONST_VTBL struct ICorProfilerCallback2Vtbl *lpVtbl;
1927 };
1928
1929
1930
1931#ifdef COBJMACROS
1932
1933
1934#define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject) \
1935 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
1936
1937#define ICorProfilerCallback2_AddRef(This) \
1938 ( (This)->lpVtbl -> AddRef(This) )
1939
1940#define ICorProfilerCallback2_Release(This) \
1941 ( (This)->lpVtbl -> Release(This) )
1942
1943
1944#define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk) \
1945 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
1946
1947#define ICorProfilerCallback2_Shutdown(This) \
1948 ( (This)->lpVtbl -> Shutdown(This) )
1949
1950#define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId) \
1951 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
1952
1953#define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus) \
1954 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
1955
1956#define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId) \
1957 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
1958
1959#define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
1960 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
1961
1962#define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId) \
1963 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
1964
1965#define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus) \
1966 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
1967
1968#define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId) \
1969 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
1970
1971#define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
1972 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
1973
1974#define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId) \
1975 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
1976
1977#define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus) \
1978 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
1979
1980#define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId) \
1981 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
1982
1983#define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus) \
1984 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
1985
1986#define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
1987 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
1988
1989#define ICorProfilerCallback2_ClassLoadStarted(This,classId) \
1990 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
1991
1992#define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus) \
1993 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
1994
1995#define ICorProfilerCallback2_ClassUnloadStarted(This,classId) \
1996 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
1997
1998#define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus) \
1999 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
2000
2001#define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId) \
2002 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
2003
2004#define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
2005 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
2006
2007#define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
2008 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
2009
2010#define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
2011 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
2012
2013#define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result) \
2014 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
2015
2016#define ICorProfilerCallback2_JITFunctionPitched(This,functionId) \
2017 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
2018
2019#define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline) \
2020 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
2021
2022#define ICorProfilerCallback2_ThreadCreated(This,threadId) \
2023 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
2024
2025#define ICorProfilerCallback2_ThreadDestroyed(This,threadId) \
2026 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
2027
2028#define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2029 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
2030
2031#define ICorProfilerCallback2_RemotingClientInvocationStarted(This) \
2032 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
2033
2034#define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
2035 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
2036
2037#define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
2038 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
2039
2040#define ICorProfilerCallback2_RemotingClientInvocationFinished(This) \
2041 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
2042
2043#define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
2044 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
2045
2046#define ICorProfilerCallback2_RemotingServerInvocationStarted(This) \
2047 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
2048
2049#define ICorProfilerCallback2_RemotingServerInvocationReturned(This) \
2050 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
2051
2052#define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2053 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
2054
2055#define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason) \
2056 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
2057
2058#define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason) \
2059 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
2060
2061#define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \
2062 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
2063
2064#define ICorProfilerCallback2_RuntimeSuspendFinished(This) \
2065 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
2066
2067#define ICorProfilerCallback2_RuntimeSuspendAborted(This) \
2068 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
2069
2070#define ICorProfilerCallback2_RuntimeResumeStarted(This) \
2071 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
2072
2073#define ICorProfilerCallback2_RuntimeResumeFinished(This) \
2074 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
2075
2076#define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId) \
2077 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
2078
2079#define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId) \
2080 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
2081
2082#define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
2083 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
2084
2085#define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId) \
2086 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
2087
2088#define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
2089 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
2090
2091#define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
2092 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
2093
2094#define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \
2095 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
2096
2097#define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId) \
2098 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
2099
2100#define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId) \
2101 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
2102
2103#define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This) \
2104 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
2105
2106#define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId) \
2107 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
2108
2109#define ICorProfilerCallback2_ExceptionSearchFilterLeave(This) \
2110 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
2111
2112#define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId) \
2113 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
2114
2115#define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused) \
2116 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
2117
2118#define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused) \
2119 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
2120
2121#define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId) \
2122 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
2123
2124#define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This) \
2125 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
2126
2127#define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId) \
2128 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
2129
2130#define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \
2131 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
2132
2133#define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId) \
2134 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
2135
2136#define ICorProfilerCallback2_ExceptionCatcherLeave(This) \
2137 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
2138
2139#define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
2140 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
2141
2142#define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
2143 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
2144
2145#define ICorProfilerCallback2_ExceptionCLRCatcherFound(This) \
2146 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
2147
2148#define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This) \
2149 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
2150
2151
2152#define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name) \
2153 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
2154
2155#define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
2156 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
2157
2158#define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
2159 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
2160
2161#define ICorProfilerCallback2_GarbageCollectionFinished(This) \
2162 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
2163
2164#define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
2165 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
2166
2167#define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
2168 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
2169
2170#define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId) \
2171 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
2172
2173#define ICorProfilerCallback2_HandleDestroyed(This,handleId) \
2174 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
2175
2176#endif /* COBJMACROS */
2177
2178
2179#endif /* C style interface */
2180
2181
2182
2183
2184#endif /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */
2185
2186
2187#ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__
2188#define __ICorProfilerCallback3_INTERFACE_DEFINED__
2189
2190/* interface ICorProfilerCallback3 */
2191/* [local][unique][uuid][object] */
2192
2193
2194EXTERN_C const IID IID_ICorProfilerCallback3;
2195
2196#if defined(__cplusplus) && !defined(CINTERFACE)
2197
2198 MIDL_INTERFACE("4FD2ED52-7731-4b8d-9469-03D2CC3086C5")
2199 ICorProfilerCallback3 : public ICorProfilerCallback2
2200 {
2201 public:
2202 virtual HRESULT STDMETHODCALLTYPE InitializeForAttach(
2203 /* [in] */ IUnknown *pCorProfilerInfoUnk,
2204 /* [in] */ void *pvClientData,
2205 /* [in] */ UINT cbClientData) = 0;
2206
2207 virtual HRESULT STDMETHODCALLTYPE ProfilerAttachComplete( void) = 0;
2208
2209 virtual HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded( void) = 0;
2210
2211 };
2212
2213
2214#else /* C style interface */
2215
2216 typedef struct ICorProfilerCallback3Vtbl
2217 {
2218 BEGIN_INTERFACE
2219
2220 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2221 ICorProfilerCallback3 * This,
2222 /* [in] */ REFIID riid,
2223 /* [annotation][iid_is][out] */
2224 _COM_Outptr_ void **ppvObject);
2225
2226 ULONG ( STDMETHODCALLTYPE *AddRef )(
2227 ICorProfilerCallback3 * This);
2228
2229 ULONG ( STDMETHODCALLTYPE *Release )(
2230 ICorProfilerCallback3 * This);
2231
2232 HRESULT ( STDMETHODCALLTYPE *Initialize )(
2233 ICorProfilerCallback3 * This,
2234 /* [in] */ IUnknown *pICorProfilerInfoUnk);
2235
2236 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
2237 ICorProfilerCallback3 * This);
2238
2239 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
2240 ICorProfilerCallback3 * This,
2241 /* [in] */ AppDomainID appDomainId);
2242
2243 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
2244 ICorProfilerCallback3 * This,
2245 /* [in] */ AppDomainID appDomainId,
2246 /* [in] */ HRESULT hrStatus);
2247
2248 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
2249 ICorProfilerCallback3 * This,
2250 /* [in] */ AppDomainID appDomainId);
2251
2252 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
2253 ICorProfilerCallback3 * This,
2254 /* [in] */ AppDomainID appDomainId,
2255 /* [in] */ HRESULT hrStatus);
2256
2257 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
2258 ICorProfilerCallback3 * This,
2259 /* [in] */ AssemblyID assemblyId);
2260
2261 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
2262 ICorProfilerCallback3 * This,
2263 /* [in] */ AssemblyID assemblyId,
2264 /* [in] */ HRESULT hrStatus);
2265
2266 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
2267 ICorProfilerCallback3 * This,
2268 /* [in] */ AssemblyID assemblyId);
2269
2270 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
2271 ICorProfilerCallback3 * This,
2272 /* [in] */ AssemblyID assemblyId,
2273 /* [in] */ HRESULT hrStatus);
2274
2275 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
2276 ICorProfilerCallback3 * This,
2277 /* [in] */ ModuleID moduleId);
2278
2279 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
2280 ICorProfilerCallback3 * This,
2281 /* [in] */ ModuleID moduleId,
2282 /* [in] */ HRESULT hrStatus);
2283
2284 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
2285 ICorProfilerCallback3 * This,
2286 /* [in] */ ModuleID moduleId);
2287
2288 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
2289 ICorProfilerCallback3 * This,
2290 /* [in] */ ModuleID moduleId,
2291 /* [in] */ HRESULT hrStatus);
2292
2293 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
2294 ICorProfilerCallback3 * This,
2295 /* [in] */ ModuleID moduleId,
2296 /* [in] */ AssemblyID AssemblyId);
2297
2298 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
2299 ICorProfilerCallback3 * This,
2300 /* [in] */ ClassID classId);
2301
2302 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
2303 ICorProfilerCallback3 * This,
2304 /* [in] */ ClassID classId,
2305 /* [in] */ HRESULT hrStatus);
2306
2307 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
2308 ICorProfilerCallback3 * This,
2309 /* [in] */ ClassID classId);
2310
2311 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
2312 ICorProfilerCallback3 * This,
2313 /* [in] */ ClassID classId,
2314 /* [in] */ HRESULT hrStatus);
2315
2316 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
2317 ICorProfilerCallback3 * This,
2318 /* [in] */ FunctionID functionId);
2319
2320 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
2321 ICorProfilerCallback3 * This,
2322 /* [in] */ FunctionID functionId,
2323 /* [in] */ BOOL fIsSafeToBlock);
2324
2325 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
2326 ICorProfilerCallback3 * This,
2327 /* [in] */ FunctionID functionId,
2328 /* [in] */ HRESULT hrStatus,
2329 /* [in] */ BOOL fIsSafeToBlock);
2330
2331 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
2332 ICorProfilerCallback3 * This,
2333 /* [in] */ FunctionID functionId,
2334 /* [out] */ BOOL *pbUseCachedFunction);
2335
2336 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
2337 ICorProfilerCallback3 * This,
2338 /* [in] */ FunctionID functionId,
2339 /* [in] */ COR_PRF_JIT_CACHE result);
2340
2341 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
2342 ICorProfilerCallback3 * This,
2343 /* [in] */ FunctionID functionId);
2344
2345 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
2346 ICorProfilerCallback3 * This,
2347 /* [in] */ FunctionID callerId,
2348 /* [in] */ FunctionID calleeId,
2349 /* [out] */ BOOL *pfShouldInline);
2350
2351 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
2352 ICorProfilerCallback3 * This,
2353 /* [in] */ ThreadID threadId);
2354
2355 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
2356 ICorProfilerCallback3 * This,
2357 /* [in] */ ThreadID threadId);
2358
2359 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
2360 ICorProfilerCallback3 * This,
2361 /* [in] */ ThreadID managedThreadId,
2362 /* [in] */ DWORD osThreadId);
2363
2364 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
2365 ICorProfilerCallback3 * This);
2366
2367 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
2368 ICorProfilerCallback3 * This,
2369 /* [in] */ GUID *pCookie,
2370 /* [in] */ BOOL fIsAsync);
2371
2372 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
2373 ICorProfilerCallback3 * This,
2374 /* [in] */ GUID *pCookie,
2375 /* [in] */ BOOL fIsAsync);
2376
2377 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
2378 ICorProfilerCallback3 * This);
2379
2380 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
2381 ICorProfilerCallback3 * This,
2382 /* [in] */ GUID *pCookie,
2383 /* [in] */ BOOL fIsAsync);
2384
2385 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
2386 ICorProfilerCallback3 * This);
2387
2388 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
2389 ICorProfilerCallback3 * This);
2390
2391 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
2392 ICorProfilerCallback3 * This,
2393 /* [in] */ GUID *pCookie,
2394 /* [in] */ BOOL fIsAsync);
2395
2396 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
2397 ICorProfilerCallback3 * This,
2398 /* [in] */ FunctionID functionId,
2399 /* [in] */ COR_PRF_TRANSITION_REASON reason);
2400
2401 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
2402 ICorProfilerCallback3 * This,
2403 /* [in] */ FunctionID functionId,
2404 /* [in] */ COR_PRF_TRANSITION_REASON reason);
2405
2406 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
2407 ICorProfilerCallback3 * This,
2408 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
2409
2410 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
2411 ICorProfilerCallback3 * This);
2412
2413 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
2414 ICorProfilerCallback3 * This);
2415
2416 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
2417 ICorProfilerCallback3 * This);
2418
2419 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
2420 ICorProfilerCallback3 * This);
2421
2422 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
2423 ICorProfilerCallback3 * This,
2424 /* [in] */ ThreadID threadId);
2425
2426 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
2427 ICorProfilerCallback3 * This,
2428 /* [in] */ ThreadID threadId);
2429
2430 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
2431 ICorProfilerCallback3 * This,
2432 /* [in] */ ULONG cMovedObjectIDRanges,
2433 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
2434 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
2435 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
2436
2437 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
2438 ICorProfilerCallback3 * This,
2439 /* [in] */ ObjectID objectId,
2440 /* [in] */ ClassID classId);
2441
2442 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
2443 ICorProfilerCallback3 * This,
2444 /* [in] */ ULONG cClassCount,
2445 /* [size_is][in] */ ClassID classIds[ ],
2446 /* [size_is][in] */ ULONG cObjects[ ]);
2447
2448 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
2449 ICorProfilerCallback3 * This,
2450 /* [in] */ ObjectID objectId,
2451 /* [in] */ ClassID classId,
2452 /* [in] */ ULONG cObjectRefs,
2453 /* [size_is][in] */ ObjectID objectRefIds[ ]);
2454
2455 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
2456 ICorProfilerCallback3 * This,
2457 /* [in] */ ULONG cRootRefs,
2458 /* [size_is][in] */ ObjectID rootRefIds[ ]);
2459
2460 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
2461 ICorProfilerCallback3 * This,
2462 /* [in] */ ObjectID thrownObjectId);
2463
2464 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
2465 ICorProfilerCallback3 * This,
2466 /* [in] */ FunctionID functionId);
2467
2468 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
2469 ICorProfilerCallback3 * This);
2470
2471 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
2472 ICorProfilerCallback3 * This,
2473 /* [in] */ FunctionID functionId);
2474
2475 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
2476 ICorProfilerCallback3 * This);
2477
2478 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
2479 ICorProfilerCallback3 * This,
2480 /* [in] */ FunctionID functionId);
2481
2482 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
2483 ICorProfilerCallback3 * This,
2484 /* [in] */ UINT_PTR __unused);
2485
2486 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
2487 ICorProfilerCallback3 * This,
2488 /* [in] */ UINT_PTR __unused);
2489
2490 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
2491 ICorProfilerCallback3 * This,
2492 /* [in] */ FunctionID functionId);
2493
2494 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
2495 ICorProfilerCallback3 * This);
2496
2497 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
2498 ICorProfilerCallback3 * This,
2499 /* [in] */ FunctionID functionId);
2500
2501 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
2502 ICorProfilerCallback3 * This);
2503
2504 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
2505 ICorProfilerCallback3 * This,
2506 /* [in] */ FunctionID functionId,
2507 /* [in] */ ObjectID objectId);
2508
2509 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
2510 ICorProfilerCallback3 * This);
2511
2512 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
2513 ICorProfilerCallback3 * This,
2514 /* [in] */ ClassID wrappedClassId,
2515 /* [in] */ REFGUID implementedIID,
2516 /* [in] */ void *pVTable,
2517 /* [in] */ ULONG cSlots);
2518
2519 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
2520 ICorProfilerCallback3 * This,
2521 /* [in] */ ClassID wrappedClassId,
2522 /* [in] */ REFGUID implementedIID,
2523 /* [in] */ void *pVTable);
2524
2525 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
2526 ICorProfilerCallback3 * This);
2527
2528 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
2529 ICorProfilerCallback3 * This);
2530
2531 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
2532 ICorProfilerCallback3 * This,
2533 /* [in] */ ThreadID threadId,
2534 /* [in] */ ULONG cchName,
2535 /* [annotation][in] */
2536 _In_reads_opt_(cchName) WCHAR name[ ]);
2537
2538 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
2539 ICorProfilerCallback3 * This,
2540 /* [in] */ int cGenerations,
2541 /* [size_is][in] */ BOOL generationCollected[ ],
2542 /* [in] */ COR_PRF_GC_REASON reason);
2543
2544 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
2545 ICorProfilerCallback3 * This,
2546 /* [in] */ ULONG cSurvivingObjectIDRanges,
2547 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
2548 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
2549
2550 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
2551 ICorProfilerCallback3 * This);
2552
2553 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
2554 ICorProfilerCallback3 * This,
2555 /* [in] */ DWORD finalizerFlags,
2556 /* [in] */ ObjectID objectID);
2557
2558 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
2559 ICorProfilerCallback3 * This,
2560 /* [in] */ ULONG cRootRefs,
2561 /* [size_is][in] */ ObjectID rootRefIds[ ],
2562 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
2563 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
2564 /* [size_is][in] */ UINT_PTR rootIds[ ]);
2565
2566 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
2567 ICorProfilerCallback3 * This,
2568 /* [in] */ GCHandleID handleId,
2569 /* [in] */ ObjectID initialObjectId);
2570
2571 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
2572 ICorProfilerCallback3 * This,
2573 /* [in] */ GCHandleID handleId);
2574
2575 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
2576 ICorProfilerCallback3 * This,
2577 /* [in] */ IUnknown *pCorProfilerInfoUnk,
2578 /* [in] */ void *pvClientData,
2579 /* [in] */ UINT cbClientData);
2580
2581 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
2582 ICorProfilerCallback3 * This);
2583
2584 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
2585 ICorProfilerCallback3 * This);
2586
2587 END_INTERFACE
2588 } ICorProfilerCallback3Vtbl;
2589
2590 interface ICorProfilerCallback3
2591 {
2592 CONST_VTBL struct ICorProfilerCallback3Vtbl *lpVtbl;
2593 };
2594
2595
2596
2597#ifdef COBJMACROS
2598
2599
2600#define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject) \
2601 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
2602
2603#define ICorProfilerCallback3_AddRef(This) \
2604 ( (This)->lpVtbl -> AddRef(This) )
2605
2606#define ICorProfilerCallback3_Release(This) \
2607 ( (This)->lpVtbl -> Release(This) )
2608
2609
2610#define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk) \
2611 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
2612
2613#define ICorProfilerCallback3_Shutdown(This) \
2614 ( (This)->lpVtbl -> Shutdown(This) )
2615
2616#define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId) \
2617 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
2618
2619#define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus) \
2620 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
2621
2622#define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId) \
2623 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
2624
2625#define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
2626 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
2627
2628#define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId) \
2629 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
2630
2631#define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus) \
2632 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
2633
2634#define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId) \
2635 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
2636
2637#define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
2638 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
2639
2640#define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId) \
2641 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
2642
2643#define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus) \
2644 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
2645
2646#define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId) \
2647 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
2648
2649#define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus) \
2650 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
2651
2652#define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
2653 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
2654
2655#define ICorProfilerCallback3_ClassLoadStarted(This,classId) \
2656 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
2657
2658#define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus) \
2659 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
2660
2661#define ICorProfilerCallback3_ClassUnloadStarted(This,classId) \
2662 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
2663
2664#define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus) \
2665 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
2666
2667#define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId) \
2668 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
2669
2670#define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
2671 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
2672
2673#define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
2674 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
2675
2676#define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
2677 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
2678
2679#define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result) \
2680 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
2681
2682#define ICorProfilerCallback3_JITFunctionPitched(This,functionId) \
2683 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
2684
2685#define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline) \
2686 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
2687
2688#define ICorProfilerCallback3_ThreadCreated(This,threadId) \
2689 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
2690
2691#define ICorProfilerCallback3_ThreadDestroyed(This,threadId) \
2692 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
2693
2694#define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2695 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
2696
2697#define ICorProfilerCallback3_RemotingClientInvocationStarted(This) \
2698 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
2699
2700#define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
2701 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
2702
2703#define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
2704 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
2705
2706#define ICorProfilerCallback3_RemotingClientInvocationFinished(This) \
2707 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
2708
2709#define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
2710 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
2711
2712#define ICorProfilerCallback3_RemotingServerInvocationStarted(This) \
2713 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
2714
2715#define ICorProfilerCallback3_RemotingServerInvocationReturned(This) \
2716 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
2717
2718#define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2719 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
2720
2721#define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason) \
2722 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
2723
2724#define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason) \
2725 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
2726
2727#define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \
2728 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
2729
2730#define ICorProfilerCallback3_RuntimeSuspendFinished(This) \
2731 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
2732
2733#define ICorProfilerCallback3_RuntimeSuspendAborted(This) \
2734 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
2735
2736#define ICorProfilerCallback3_RuntimeResumeStarted(This) \
2737 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
2738
2739#define ICorProfilerCallback3_RuntimeResumeFinished(This) \
2740 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
2741
2742#define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId) \
2743 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
2744
2745#define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId) \
2746 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
2747
2748#define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
2749 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
2750
2751#define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId) \
2752 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
2753
2754#define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
2755 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
2756
2757#define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
2758 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
2759
2760#define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \
2761 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
2762
2763#define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId) \
2764 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
2765
2766#define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId) \
2767 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
2768
2769#define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This) \
2770 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
2771
2772#define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId) \
2773 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
2774
2775#define ICorProfilerCallback3_ExceptionSearchFilterLeave(This) \
2776 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
2777
2778#define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId) \
2779 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
2780
2781#define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused) \
2782 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
2783
2784#define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused) \
2785 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
2786
2787#define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId) \
2788 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
2789
2790#define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This) \
2791 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
2792
2793#define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId) \
2794 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
2795
2796#define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \
2797 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
2798
2799#define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId) \
2800 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
2801
2802#define ICorProfilerCallback3_ExceptionCatcherLeave(This) \
2803 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
2804
2805#define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
2806 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
2807
2808#define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
2809 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
2810
2811#define ICorProfilerCallback3_ExceptionCLRCatcherFound(This) \
2812 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
2813
2814#define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This) \
2815 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
2816
2817
2818#define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name) \
2819 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
2820
2821#define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
2822 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
2823
2824#define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
2825 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
2826
2827#define ICorProfilerCallback3_GarbageCollectionFinished(This) \
2828 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
2829
2830#define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
2831 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
2832
2833#define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
2834 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
2835
2836#define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId) \
2837 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
2838
2839#define ICorProfilerCallback3_HandleDestroyed(This,handleId) \
2840 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
2841
2842
2843#define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
2844 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
2845
2846#define ICorProfilerCallback3_ProfilerAttachComplete(This) \
2847 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
2848
2849#define ICorProfilerCallback3_ProfilerDetachSucceeded(This) \
2850 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
2851
2852#endif /* COBJMACROS */
2853
2854
2855#endif /* C style interface */
2856
2857
2858
2859
2860#endif /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */
2861
2862
2863#ifndef __ICorProfilerCallback4_INTERFACE_DEFINED__
2864#define __ICorProfilerCallback4_INTERFACE_DEFINED__
2865
2866/* interface ICorProfilerCallback4 */
2867/* [local][unique][uuid][object] */
2868
2869
2870EXTERN_C const IID IID_ICorProfilerCallback4;
2871
2872#if defined(__cplusplus) && !defined(CINTERFACE)
2873
2874 MIDL_INTERFACE("7B63B2E3-107D-4d48-B2F6-F61E229470D2")
2875 ICorProfilerCallback4 : public ICorProfilerCallback3
2876 {
2877 public:
2878 virtual HRESULT STDMETHODCALLTYPE ReJITCompilationStarted(
2879 /* [in] */ FunctionID functionId,
2880 /* [in] */ ReJITID rejitId,
2881 /* [in] */ BOOL fIsSafeToBlock) = 0;
2882
2883 virtual HRESULT STDMETHODCALLTYPE GetReJITParameters(
2884 /* [in] */ ModuleID moduleId,
2885 /* [in] */ mdMethodDef methodId,
2886 /* [in] */ ICorProfilerFunctionControl *pFunctionControl) = 0;
2887
2888 virtual HRESULT STDMETHODCALLTYPE ReJITCompilationFinished(
2889 /* [in] */ FunctionID functionId,
2890 /* [in] */ ReJITID rejitId,
2891 /* [in] */ HRESULT hrStatus,
2892 /* [in] */ BOOL fIsSafeToBlock) = 0;
2893
2894 virtual HRESULT STDMETHODCALLTYPE ReJITError(
2895 /* [in] */ ModuleID moduleId,
2896 /* [in] */ mdMethodDef methodId,
2897 /* [in] */ FunctionID functionId,
2898 /* [in] */ HRESULT hrStatus) = 0;
2899
2900 virtual HRESULT STDMETHODCALLTYPE MovedReferences2(
2901 /* [in] */ ULONG cMovedObjectIDRanges,
2902 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
2903 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
2904 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]) = 0;
2905
2906 virtual HRESULT STDMETHODCALLTYPE SurvivingReferences2(
2907 /* [in] */ ULONG cSurvivingObjectIDRanges,
2908 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
2909 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]) = 0;
2910
2911 };
2912
2913
2914#else /* C style interface */
2915
2916 typedef struct ICorProfilerCallback4Vtbl
2917 {
2918 BEGIN_INTERFACE
2919
2920 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
2921 ICorProfilerCallback4 * This,
2922 /* [in] */ REFIID riid,
2923 /* [annotation][iid_is][out] */
2924 _COM_Outptr_ void **ppvObject);
2925
2926 ULONG ( STDMETHODCALLTYPE *AddRef )(
2927 ICorProfilerCallback4 * This);
2928
2929 ULONG ( STDMETHODCALLTYPE *Release )(
2930 ICorProfilerCallback4 * This);
2931
2932 HRESULT ( STDMETHODCALLTYPE *Initialize )(
2933 ICorProfilerCallback4 * This,
2934 /* [in] */ IUnknown *pICorProfilerInfoUnk);
2935
2936 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
2937 ICorProfilerCallback4 * This);
2938
2939 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
2940 ICorProfilerCallback4 * This,
2941 /* [in] */ AppDomainID appDomainId);
2942
2943 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
2944 ICorProfilerCallback4 * This,
2945 /* [in] */ AppDomainID appDomainId,
2946 /* [in] */ HRESULT hrStatus);
2947
2948 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
2949 ICorProfilerCallback4 * This,
2950 /* [in] */ AppDomainID appDomainId);
2951
2952 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
2953 ICorProfilerCallback4 * This,
2954 /* [in] */ AppDomainID appDomainId,
2955 /* [in] */ HRESULT hrStatus);
2956
2957 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
2958 ICorProfilerCallback4 * This,
2959 /* [in] */ AssemblyID assemblyId);
2960
2961 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
2962 ICorProfilerCallback4 * This,
2963 /* [in] */ AssemblyID assemblyId,
2964 /* [in] */ HRESULT hrStatus);
2965
2966 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
2967 ICorProfilerCallback4 * This,
2968 /* [in] */ AssemblyID assemblyId);
2969
2970 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
2971 ICorProfilerCallback4 * This,
2972 /* [in] */ AssemblyID assemblyId,
2973 /* [in] */ HRESULT hrStatus);
2974
2975 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
2976 ICorProfilerCallback4 * This,
2977 /* [in] */ ModuleID moduleId);
2978
2979 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
2980 ICorProfilerCallback4 * This,
2981 /* [in] */ ModuleID moduleId,
2982 /* [in] */ HRESULT hrStatus);
2983
2984 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
2985 ICorProfilerCallback4 * This,
2986 /* [in] */ ModuleID moduleId);
2987
2988 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
2989 ICorProfilerCallback4 * This,
2990 /* [in] */ ModuleID moduleId,
2991 /* [in] */ HRESULT hrStatus);
2992
2993 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
2994 ICorProfilerCallback4 * This,
2995 /* [in] */ ModuleID moduleId,
2996 /* [in] */ AssemblyID AssemblyId);
2997
2998 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
2999 ICorProfilerCallback4 * This,
3000 /* [in] */ ClassID classId);
3001
3002 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
3003 ICorProfilerCallback4 * This,
3004 /* [in] */ ClassID classId,
3005 /* [in] */ HRESULT hrStatus);
3006
3007 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
3008 ICorProfilerCallback4 * This,
3009 /* [in] */ ClassID classId);
3010
3011 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
3012 ICorProfilerCallback4 * This,
3013 /* [in] */ ClassID classId,
3014 /* [in] */ HRESULT hrStatus);
3015
3016 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
3017 ICorProfilerCallback4 * This,
3018 /* [in] */ FunctionID functionId);
3019
3020 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
3021 ICorProfilerCallback4 * This,
3022 /* [in] */ FunctionID functionId,
3023 /* [in] */ BOOL fIsSafeToBlock);
3024
3025 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
3026 ICorProfilerCallback4 * This,
3027 /* [in] */ FunctionID functionId,
3028 /* [in] */ HRESULT hrStatus,
3029 /* [in] */ BOOL fIsSafeToBlock);
3030
3031 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
3032 ICorProfilerCallback4 * This,
3033 /* [in] */ FunctionID functionId,
3034 /* [out] */ BOOL *pbUseCachedFunction);
3035
3036 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
3037 ICorProfilerCallback4 * This,
3038 /* [in] */ FunctionID functionId,
3039 /* [in] */ COR_PRF_JIT_CACHE result);
3040
3041 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
3042 ICorProfilerCallback4 * This,
3043 /* [in] */ FunctionID functionId);
3044
3045 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
3046 ICorProfilerCallback4 * This,
3047 /* [in] */ FunctionID callerId,
3048 /* [in] */ FunctionID calleeId,
3049 /* [out] */ BOOL *pfShouldInline);
3050
3051 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
3052 ICorProfilerCallback4 * This,
3053 /* [in] */ ThreadID threadId);
3054
3055 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
3056 ICorProfilerCallback4 * This,
3057 /* [in] */ ThreadID threadId);
3058
3059 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
3060 ICorProfilerCallback4 * This,
3061 /* [in] */ ThreadID managedThreadId,
3062 /* [in] */ DWORD osThreadId);
3063
3064 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
3065 ICorProfilerCallback4 * This);
3066
3067 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
3068 ICorProfilerCallback4 * This,
3069 /* [in] */ GUID *pCookie,
3070 /* [in] */ BOOL fIsAsync);
3071
3072 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
3073 ICorProfilerCallback4 * This,
3074 /* [in] */ GUID *pCookie,
3075 /* [in] */ BOOL fIsAsync);
3076
3077 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
3078 ICorProfilerCallback4 * This);
3079
3080 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
3081 ICorProfilerCallback4 * This,
3082 /* [in] */ GUID *pCookie,
3083 /* [in] */ BOOL fIsAsync);
3084
3085 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
3086 ICorProfilerCallback4 * This);
3087
3088 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
3089 ICorProfilerCallback4 * This);
3090
3091 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
3092 ICorProfilerCallback4 * This,
3093 /* [in] */ GUID *pCookie,
3094 /* [in] */ BOOL fIsAsync);
3095
3096 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
3097 ICorProfilerCallback4 * This,
3098 /* [in] */ FunctionID functionId,
3099 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3100
3101 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
3102 ICorProfilerCallback4 * This,
3103 /* [in] */ FunctionID functionId,
3104 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3105
3106 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
3107 ICorProfilerCallback4 * This,
3108 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3109
3110 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
3111 ICorProfilerCallback4 * This);
3112
3113 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
3114 ICorProfilerCallback4 * This);
3115
3116 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
3117 ICorProfilerCallback4 * This);
3118
3119 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
3120 ICorProfilerCallback4 * This);
3121
3122 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
3123 ICorProfilerCallback4 * This,
3124 /* [in] */ ThreadID threadId);
3125
3126 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
3127 ICorProfilerCallback4 * This,
3128 /* [in] */ ThreadID threadId);
3129
3130 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
3131 ICorProfilerCallback4 * This,
3132 /* [in] */ ULONG cMovedObjectIDRanges,
3133 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3134 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3135 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3136
3137 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
3138 ICorProfilerCallback4 * This,
3139 /* [in] */ ObjectID objectId,
3140 /* [in] */ ClassID classId);
3141
3142 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
3143 ICorProfilerCallback4 * This,
3144 /* [in] */ ULONG cClassCount,
3145 /* [size_is][in] */ ClassID classIds[ ],
3146 /* [size_is][in] */ ULONG cObjects[ ]);
3147
3148 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
3149 ICorProfilerCallback4 * This,
3150 /* [in] */ ObjectID objectId,
3151 /* [in] */ ClassID classId,
3152 /* [in] */ ULONG cObjectRefs,
3153 /* [size_is][in] */ ObjectID objectRefIds[ ]);
3154
3155 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
3156 ICorProfilerCallback4 * This,
3157 /* [in] */ ULONG cRootRefs,
3158 /* [size_is][in] */ ObjectID rootRefIds[ ]);
3159
3160 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
3161 ICorProfilerCallback4 * This,
3162 /* [in] */ ObjectID thrownObjectId);
3163
3164 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
3165 ICorProfilerCallback4 * This,
3166 /* [in] */ FunctionID functionId);
3167
3168 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
3169 ICorProfilerCallback4 * This);
3170
3171 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
3172 ICorProfilerCallback4 * This,
3173 /* [in] */ FunctionID functionId);
3174
3175 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
3176 ICorProfilerCallback4 * This);
3177
3178 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
3179 ICorProfilerCallback4 * This,
3180 /* [in] */ FunctionID functionId);
3181
3182 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
3183 ICorProfilerCallback4 * This,
3184 /* [in] */ UINT_PTR __unused);
3185
3186 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
3187 ICorProfilerCallback4 * This,
3188 /* [in] */ UINT_PTR __unused);
3189
3190 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
3191 ICorProfilerCallback4 * This,
3192 /* [in] */ FunctionID functionId);
3193
3194 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
3195 ICorProfilerCallback4 * This);
3196
3197 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
3198 ICorProfilerCallback4 * This,
3199 /* [in] */ FunctionID functionId);
3200
3201 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
3202 ICorProfilerCallback4 * This);
3203
3204 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
3205 ICorProfilerCallback4 * This,
3206 /* [in] */ FunctionID functionId,
3207 /* [in] */ ObjectID objectId);
3208
3209 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
3210 ICorProfilerCallback4 * This);
3211
3212 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
3213 ICorProfilerCallback4 * This,
3214 /* [in] */ ClassID wrappedClassId,
3215 /* [in] */ REFGUID implementedIID,
3216 /* [in] */ void *pVTable,
3217 /* [in] */ ULONG cSlots);
3218
3219 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
3220 ICorProfilerCallback4 * This,
3221 /* [in] */ ClassID wrappedClassId,
3222 /* [in] */ REFGUID implementedIID,
3223 /* [in] */ void *pVTable);
3224
3225 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
3226 ICorProfilerCallback4 * This);
3227
3228 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
3229 ICorProfilerCallback4 * This);
3230
3231 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
3232 ICorProfilerCallback4 * This,
3233 /* [in] */ ThreadID threadId,
3234 /* [in] */ ULONG cchName,
3235 /* [annotation][in] */
3236 _In_reads_opt_(cchName) WCHAR name[ ]);
3237
3238 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
3239 ICorProfilerCallback4 * This,
3240 /* [in] */ int cGenerations,
3241 /* [size_is][in] */ BOOL generationCollected[ ],
3242 /* [in] */ COR_PRF_GC_REASON reason);
3243
3244 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
3245 ICorProfilerCallback4 * This,
3246 /* [in] */ ULONG cSurvivingObjectIDRanges,
3247 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3248 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3249
3250 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
3251 ICorProfilerCallback4 * This);
3252
3253 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
3254 ICorProfilerCallback4 * This,
3255 /* [in] */ DWORD finalizerFlags,
3256 /* [in] */ ObjectID objectID);
3257
3258 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
3259 ICorProfilerCallback4 * This,
3260 /* [in] */ ULONG cRootRefs,
3261 /* [size_is][in] */ ObjectID rootRefIds[ ],
3262 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
3263 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
3264 /* [size_is][in] */ UINT_PTR rootIds[ ]);
3265
3266 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
3267 ICorProfilerCallback4 * This,
3268 /* [in] */ GCHandleID handleId,
3269 /* [in] */ ObjectID initialObjectId);
3270
3271 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
3272 ICorProfilerCallback4 * This,
3273 /* [in] */ GCHandleID handleId);
3274
3275 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
3276 ICorProfilerCallback4 * This,
3277 /* [in] */ IUnknown *pCorProfilerInfoUnk,
3278 /* [in] */ void *pvClientData,
3279 /* [in] */ UINT cbClientData);
3280
3281 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
3282 ICorProfilerCallback4 * This);
3283
3284 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
3285 ICorProfilerCallback4 * This);
3286
3287 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
3288 ICorProfilerCallback4 * This,
3289 /* [in] */ FunctionID functionId,
3290 /* [in] */ ReJITID rejitId,
3291 /* [in] */ BOOL fIsSafeToBlock);
3292
3293 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
3294 ICorProfilerCallback4 * This,
3295 /* [in] */ ModuleID moduleId,
3296 /* [in] */ mdMethodDef methodId,
3297 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
3298
3299 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
3300 ICorProfilerCallback4 * This,
3301 /* [in] */ FunctionID functionId,
3302 /* [in] */ ReJITID rejitId,
3303 /* [in] */ HRESULT hrStatus,
3304 /* [in] */ BOOL fIsSafeToBlock);
3305
3306 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
3307 ICorProfilerCallback4 * This,
3308 /* [in] */ ModuleID moduleId,
3309 /* [in] */ mdMethodDef methodId,
3310 /* [in] */ FunctionID functionId,
3311 /* [in] */ HRESULT hrStatus);
3312
3313 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
3314 ICorProfilerCallback4 * This,
3315 /* [in] */ ULONG cMovedObjectIDRanges,
3316 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3317 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3318 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
3319
3320 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
3321 ICorProfilerCallback4 * This,
3322 /* [in] */ ULONG cSurvivingObjectIDRanges,
3323 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3324 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
3325
3326 END_INTERFACE
3327 } ICorProfilerCallback4Vtbl;
3328
3329 interface ICorProfilerCallback4
3330 {
3331 CONST_VTBL struct ICorProfilerCallback4Vtbl *lpVtbl;
3332 };
3333
3334
3335
3336#ifdef COBJMACROS
3337
3338
3339#define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject) \
3340 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
3341
3342#define ICorProfilerCallback4_AddRef(This) \
3343 ( (This)->lpVtbl -> AddRef(This) )
3344
3345#define ICorProfilerCallback4_Release(This) \
3346 ( (This)->lpVtbl -> Release(This) )
3347
3348
3349#define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk) \
3350 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
3351
3352#define ICorProfilerCallback4_Shutdown(This) \
3353 ( (This)->lpVtbl -> Shutdown(This) )
3354
3355#define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId) \
3356 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
3357
3358#define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus) \
3359 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
3360
3361#define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId) \
3362 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
3363
3364#define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
3365 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
3366
3367#define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId) \
3368 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
3369
3370#define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus) \
3371 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
3372
3373#define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId) \
3374 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
3375
3376#define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
3377 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
3378
3379#define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId) \
3380 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
3381
3382#define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus) \
3383 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
3384
3385#define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId) \
3386 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
3387
3388#define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus) \
3389 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
3390
3391#define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
3392 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
3393
3394#define ICorProfilerCallback4_ClassLoadStarted(This,classId) \
3395 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
3396
3397#define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus) \
3398 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
3399
3400#define ICorProfilerCallback4_ClassUnloadStarted(This,classId) \
3401 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
3402
3403#define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus) \
3404 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
3405
3406#define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId) \
3407 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
3408
3409#define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
3410 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
3411
3412#define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
3413 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
3414
3415#define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
3416 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
3417
3418#define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result) \
3419 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
3420
3421#define ICorProfilerCallback4_JITFunctionPitched(This,functionId) \
3422 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
3423
3424#define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline) \
3425 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
3426
3427#define ICorProfilerCallback4_ThreadCreated(This,threadId) \
3428 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
3429
3430#define ICorProfilerCallback4_ThreadDestroyed(This,threadId) \
3431 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
3432
3433#define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
3434 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
3435
3436#define ICorProfilerCallback4_RemotingClientInvocationStarted(This) \
3437 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
3438
3439#define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
3440 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
3441
3442#define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
3443 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
3444
3445#define ICorProfilerCallback4_RemotingClientInvocationFinished(This) \
3446 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
3447
3448#define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
3449 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
3450
3451#define ICorProfilerCallback4_RemotingServerInvocationStarted(This) \
3452 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
3453
3454#define ICorProfilerCallback4_RemotingServerInvocationReturned(This) \
3455 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
3456
3457#define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \
3458 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
3459
3460#define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason) \
3461 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
3462
3463#define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason) \
3464 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
3465
3466#define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \
3467 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
3468
3469#define ICorProfilerCallback4_RuntimeSuspendFinished(This) \
3470 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
3471
3472#define ICorProfilerCallback4_RuntimeSuspendAborted(This) \
3473 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
3474
3475#define ICorProfilerCallback4_RuntimeResumeStarted(This) \
3476 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
3477
3478#define ICorProfilerCallback4_RuntimeResumeFinished(This) \
3479 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
3480
3481#define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId) \
3482 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
3483
3484#define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId) \
3485 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
3486
3487#define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
3488 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
3489
3490#define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId) \
3491 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
3492
3493#define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
3494 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
3495
3496#define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
3497 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
3498
3499#define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \
3500 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
3501
3502#define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId) \
3503 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
3504
3505#define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId) \
3506 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
3507
3508#define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This) \
3509 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
3510
3511#define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId) \
3512 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
3513
3514#define ICorProfilerCallback4_ExceptionSearchFilterLeave(This) \
3515 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
3516
3517#define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId) \
3518 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
3519
3520#define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused) \
3521 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
3522
3523#define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused) \
3524 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
3525
3526#define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId) \
3527 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
3528
3529#define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This) \
3530 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
3531
3532#define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId) \
3533 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
3534
3535#define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \
3536 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
3537
3538#define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId) \
3539 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
3540
3541#define ICorProfilerCallback4_ExceptionCatcherLeave(This) \
3542 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
3543
3544#define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
3545 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
3546
3547#define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
3548 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
3549
3550#define ICorProfilerCallback4_ExceptionCLRCatcherFound(This) \
3551 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
3552
3553#define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This) \
3554 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
3555
3556
3557#define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name) \
3558 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
3559
3560#define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
3561 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
3562
3563#define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
3564 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
3565
3566#define ICorProfilerCallback4_GarbageCollectionFinished(This) \
3567 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
3568
3569#define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
3570 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
3571
3572#define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
3573 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
3574
3575#define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId) \
3576 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
3577
3578#define ICorProfilerCallback4_HandleDestroyed(This,handleId) \
3579 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
3580
3581
3582#define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
3583 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
3584
3585#define ICorProfilerCallback4_ProfilerAttachComplete(This) \
3586 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
3587
3588#define ICorProfilerCallback4_ProfilerDetachSucceeded(This) \
3589 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
3590
3591
3592#define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
3593 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
3594
3595#define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
3596 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
3597
3598#define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
3599 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
3600
3601#define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
3602 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
3603
3604#define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
3605 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
3606
3607#define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
3608 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
3609
3610#endif /* COBJMACROS */
3611
3612
3613#endif /* C style interface */
3614
3615
3616
3617
3618#endif /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */
3619
3620
3621#ifndef __ICorProfilerCallback5_INTERFACE_DEFINED__
3622#define __ICorProfilerCallback5_INTERFACE_DEFINED__
3623
3624/* interface ICorProfilerCallback5 */
3625/* [local][unique][uuid][object] */
3626
3627
3628EXTERN_C const IID IID_ICorProfilerCallback5;
3629
3630#if defined(__cplusplus) && !defined(CINTERFACE)
3631
3632 MIDL_INTERFACE("8DFBA405-8C9F-45F8-BFFA-83B14CEF78B5")
3633 ICorProfilerCallback5 : public ICorProfilerCallback4
3634 {
3635 public:
3636 virtual HRESULT STDMETHODCALLTYPE ConditionalWeakTableElementReferences(
3637 /* [in] */ ULONG cRootRefs,
3638 /* [size_is][in] */ ObjectID keyRefIds[ ],
3639 /* [size_is][in] */ ObjectID valueRefIds[ ],
3640 /* [size_is][in] */ GCHandleID rootIds[ ]) = 0;
3641
3642 };
3643
3644
3645#else /* C style interface */
3646
3647 typedef struct ICorProfilerCallback5Vtbl
3648 {
3649 BEGIN_INTERFACE
3650
3651 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
3652 ICorProfilerCallback5 * This,
3653 /* [in] */ REFIID riid,
3654 /* [annotation][iid_is][out] */
3655 _COM_Outptr_ void **ppvObject);
3656
3657 ULONG ( STDMETHODCALLTYPE *AddRef )(
3658 ICorProfilerCallback5 * This);
3659
3660 ULONG ( STDMETHODCALLTYPE *Release )(
3661 ICorProfilerCallback5 * This);
3662
3663 HRESULT ( STDMETHODCALLTYPE *Initialize )(
3664 ICorProfilerCallback5 * This,
3665 /* [in] */ IUnknown *pICorProfilerInfoUnk);
3666
3667 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
3668 ICorProfilerCallback5 * This);
3669
3670 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
3671 ICorProfilerCallback5 * This,
3672 /* [in] */ AppDomainID appDomainId);
3673
3674 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
3675 ICorProfilerCallback5 * This,
3676 /* [in] */ AppDomainID appDomainId,
3677 /* [in] */ HRESULT hrStatus);
3678
3679 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
3680 ICorProfilerCallback5 * This,
3681 /* [in] */ AppDomainID appDomainId);
3682
3683 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
3684 ICorProfilerCallback5 * This,
3685 /* [in] */ AppDomainID appDomainId,
3686 /* [in] */ HRESULT hrStatus);
3687
3688 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
3689 ICorProfilerCallback5 * This,
3690 /* [in] */ AssemblyID assemblyId);
3691
3692 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
3693 ICorProfilerCallback5 * This,
3694 /* [in] */ AssemblyID assemblyId,
3695 /* [in] */ HRESULT hrStatus);
3696
3697 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
3698 ICorProfilerCallback5 * This,
3699 /* [in] */ AssemblyID assemblyId);
3700
3701 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
3702 ICorProfilerCallback5 * This,
3703 /* [in] */ AssemblyID assemblyId,
3704 /* [in] */ HRESULT hrStatus);
3705
3706 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
3707 ICorProfilerCallback5 * This,
3708 /* [in] */ ModuleID moduleId);
3709
3710 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
3711 ICorProfilerCallback5 * This,
3712 /* [in] */ ModuleID moduleId,
3713 /* [in] */ HRESULT hrStatus);
3714
3715 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
3716 ICorProfilerCallback5 * This,
3717 /* [in] */ ModuleID moduleId);
3718
3719 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
3720 ICorProfilerCallback5 * This,
3721 /* [in] */ ModuleID moduleId,
3722 /* [in] */ HRESULT hrStatus);
3723
3724 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
3725 ICorProfilerCallback5 * This,
3726 /* [in] */ ModuleID moduleId,
3727 /* [in] */ AssemblyID AssemblyId);
3728
3729 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
3730 ICorProfilerCallback5 * This,
3731 /* [in] */ ClassID classId);
3732
3733 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
3734 ICorProfilerCallback5 * This,
3735 /* [in] */ ClassID classId,
3736 /* [in] */ HRESULT hrStatus);
3737
3738 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
3739 ICorProfilerCallback5 * This,
3740 /* [in] */ ClassID classId);
3741
3742 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
3743 ICorProfilerCallback5 * This,
3744 /* [in] */ ClassID classId,
3745 /* [in] */ HRESULT hrStatus);
3746
3747 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
3748 ICorProfilerCallback5 * This,
3749 /* [in] */ FunctionID functionId);
3750
3751 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
3752 ICorProfilerCallback5 * This,
3753 /* [in] */ FunctionID functionId,
3754 /* [in] */ BOOL fIsSafeToBlock);
3755
3756 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
3757 ICorProfilerCallback5 * This,
3758 /* [in] */ FunctionID functionId,
3759 /* [in] */ HRESULT hrStatus,
3760 /* [in] */ BOOL fIsSafeToBlock);
3761
3762 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
3763 ICorProfilerCallback5 * This,
3764 /* [in] */ FunctionID functionId,
3765 /* [out] */ BOOL *pbUseCachedFunction);
3766
3767 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
3768 ICorProfilerCallback5 * This,
3769 /* [in] */ FunctionID functionId,
3770 /* [in] */ COR_PRF_JIT_CACHE result);
3771
3772 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
3773 ICorProfilerCallback5 * This,
3774 /* [in] */ FunctionID functionId);
3775
3776 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
3777 ICorProfilerCallback5 * This,
3778 /* [in] */ FunctionID callerId,
3779 /* [in] */ FunctionID calleeId,
3780 /* [out] */ BOOL *pfShouldInline);
3781
3782 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
3783 ICorProfilerCallback5 * This,
3784 /* [in] */ ThreadID threadId);
3785
3786 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
3787 ICorProfilerCallback5 * This,
3788 /* [in] */ ThreadID threadId);
3789
3790 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
3791 ICorProfilerCallback5 * This,
3792 /* [in] */ ThreadID managedThreadId,
3793 /* [in] */ DWORD osThreadId);
3794
3795 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
3796 ICorProfilerCallback5 * This);
3797
3798 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
3799 ICorProfilerCallback5 * This,
3800 /* [in] */ GUID *pCookie,
3801 /* [in] */ BOOL fIsAsync);
3802
3803 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
3804 ICorProfilerCallback5 * This,
3805 /* [in] */ GUID *pCookie,
3806 /* [in] */ BOOL fIsAsync);
3807
3808 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
3809 ICorProfilerCallback5 * This);
3810
3811 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
3812 ICorProfilerCallback5 * This,
3813 /* [in] */ GUID *pCookie,
3814 /* [in] */ BOOL fIsAsync);
3815
3816 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
3817 ICorProfilerCallback5 * This);
3818
3819 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
3820 ICorProfilerCallback5 * This);
3821
3822 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
3823 ICorProfilerCallback5 * This,
3824 /* [in] */ GUID *pCookie,
3825 /* [in] */ BOOL fIsAsync);
3826
3827 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
3828 ICorProfilerCallback5 * This,
3829 /* [in] */ FunctionID functionId,
3830 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3831
3832 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
3833 ICorProfilerCallback5 * This,
3834 /* [in] */ FunctionID functionId,
3835 /* [in] */ COR_PRF_TRANSITION_REASON reason);
3836
3837 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
3838 ICorProfilerCallback5 * This,
3839 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3840
3841 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
3842 ICorProfilerCallback5 * This);
3843
3844 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
3845 ICorProfilerCallback5 * This);
3846
3847 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
3848 ICorProfilerCallback5 * This);
3849
3850 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
3851 ICorProfilerCallback5 * This);
3852
3853 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
3854 ICorProfilerCallback5 * This,
3855 /* [in] */ ThreadID threadId);
3856
3857 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
3858 ICorProfilerCallback5 * This,
3859 /* [in] */ ThreadID threadId);
3860
3861 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
3862 ICorProfilerCallback5 * This,
3863 /* [in] */ ULONG cMovedObjectIDRanges,
3864 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
3865 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
3866 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3867
3868 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
3869 ICorProfilerCallback5 * This,
3870 /* [in] */ ObjectID objectId,
3871 /* [in] */ ClassID classId);
3872
3873 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
3874 ICorProfilerCallback5 * This,
3875 /* [in] */ ULONG cClassCount,
3876 /* [size_is][in] */ ClassID classIds[ ],
3877 /* [size_is][in] */ ULONG cObjects[ ]);
3878
3879 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
3880 ICorProfilerCallback5 * This,
3881 /* [in] */ ObjectID objectId,
3882 /* [in] */ ClassID classId,
3883 /* [in] */ ULONG cObjectRefs,
3884 /* [size_is][in] */ ObjectID objectRefIds[ ]);
3885
3886 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
3887 ICorProfilerCallback5 * This,
3888 /* [in] */ ULONG cRootRefs,
3889 /* [size_is][in] */ ObjectID rootRefIds[ ]);
3890
3891 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
3892 ICorProfilerCallback5 * This,
3893 /* [in] */ ObjectID thrownObjectId);
3894
3895 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
3896 ICorProfilerCallback5 * This,
3897 /* [in] */ FunctionID functionId);
3898
3899 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
3900 ICorProfilerCallback5 * This);
3901
3902 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
3903 ICorProfilerCallback5 * This,
3904 /* [in] */ FunctionID functionId);
3905
3906 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
3907 ICorProfilerCallback5 * This);
3908
3909 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
3910 ICorProfilerCallback5 * This,
3911 /* [in] */ FunctionID functionId);
3912
3913 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
3914 ICorProfilerCallback5 * This,
3915 /* [in] */ UINT_PTR __unused);
3916
3917 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
3918 ICorProfilerCallback5 * This,
3919 /* [in] */ UINT_PTR __unused);
3920
3921 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
3922 ICorProfilerCallback5 * This,
3923 /* [in] */ FunctionID functionId);
3924
3925 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
3926 ICorProfilerCallback5 * This);
3927
3928 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
3929 ICorProfilerCallback5 * This,
3930 /* [in] */ FunctionID functionId);
3931
3932 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
3933 ICorProfilerCallback5 * This);
3934
3935 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
3936 ICorProfilerCallback5 * This,
3937 /* [in] */ FunctionID functionId,
3938 /* [in] */ ObjectID objectId);
3939
3940 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
3941 ICorProfilerCallback5 * This);
3942
3943 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
3944 ICorProfilerCallback5 * This,
3945 /* [in] */ ClassID wrappedClassId,
3946 /* [in] */ REFGUID implementedIID,
3947 /* [in] */ void *pVTable,
3948 /* [in] */ ULONG cSlots);
3949
3950 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
3951 ICorProfilerCallback5 * This,
3952 /* [in] */ ClassID wrappedClassId,
3953 /* [in] */ REFGUID implementedIID,
3954 /* [in] */ void *pVTable);
3955
3956 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
3957 ICorProfilerCallback5 * This);
3958
3959 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
3960 ICorProfilerCallback5 * This);
3961
3962 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
3963 ICorProfilerCallback5 * This,
3964 /* [in] */ ThreadID threadId,
3965 /* [in] */ ULONG cchName,
3966 /* [annotation][in] */
3967 _In_reads_opt_(cchName) WCHAR name[ ]);
3968
3969 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
3970 ICorProfilerCallback5 * This,
3971 /* [in] */ int cGenerations,
3972 /* [size_is][in] */ BOOL generationCollected[ ],
3973 /* [in] */ COR_PRF_GC_REASON reason);
3974
3975 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
3976 ICorProfilerCallback5 * This,
3977 /* [in] */ ULONG cSurvivingObjectIDRanges,
3978 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
3979 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
3980
3981 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
3982 ICorProfilerCallback5 * This);
3983
3984 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
3985 ICorProfilerCallback5 * This,
3986 /* [in] */ DWORD finalizerFlags,
3987 /* [in] */ ObjectID objectID);
3988
3989 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
3990 ICorProfilerCallback5 * This,
3991 /* [in] */ ULONG cRootRefs,
3992 /* [size_is][in] */ ObjectID rootRefIds[ ],
3993 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
3994 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
3995 /* [size_is][in] */ UINT_PTR rootIds[ ]);
3996
3997 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
3998 ICorProfilerCallback5 * This,
3999 /* [in] */ GCHandleID handleId,
4000 /* [in] */ ObjectID initialObjectId);
4001
4002 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
4003 ICorProfilerCallback5 * This,
4004 /* [in] */ GCHandleID handleId);
4005
4006 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
4007 ICorProfilerCallback5 * This,
4008 /* [in] */ IUnknown *pCorProfilerInfoUnk,
4009 /* [in] */ void *pvClientData,
4010 /* [in] */ UINT cbClientData);
4011
4012 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
4013 ICorProfilerCallback5 * This);
4014
4015 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
4016 ICorProfilerCallback5 * This);
4017
4018 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
4019 ICorProfilerCallback5 * This,
4020 /* [in] */ FunctionID functionId,
4021 /* [in] */ ReJITID rejitId,
4022 /* [in] */ BOOL fIsSafeToBlock);
4023
4024 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
4025 ICorProfilerCallback5 * This,
4026 /* [in] */ ModuleID moduleId,
4027 /* [in] */ mdMethodDef methodId,
4028 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4029
4030 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
4031 ICorProfilerCallback5 * This,
4032 /* [in] */ FunctionID functionId,
4033 /* [in] */ ReJITID rejitId,
4034 /* [in] */ HRESULT hrStatus,
4035 /* [in] */ BOOL fIsSafeToBlock);
4036
4037 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
4038 ICorProfilerCallback5 * This,
4039 /* [in] */ ModuleID moduleId,
4040 /* [in] */ mdMethodDef methodId,
4041 /* [in] */ FunctionID functionId,
4042 /* [in] */ HRESULT hrStatus);
4043
4044 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
4045 ICorProfilerCallback5 * This,
4046 /* [in] */ ULONG cMovedObjectIDRanges,
4047 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4048 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4049 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4050
4051 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
4052 ICorProfilerCallback5 * This,
4053 /* [in] */ ULONG cSurvivingObjectIDRanges,
4054 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4055 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4056
4057 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
4058 ICorProfilerCallback5 * This,
4059 /* [in] */ ULONG cRootRefs,
4060 /* [size_is][in] */ ObjectID keyRefIds[ ],
4061 /* [size_is][in] */ ObjectID valueRefIds[ ],
4062 /* [size_is][in] */ GCHandleID rootIds[ ]);
4063
4064 END_INTERFACE
4065 } ICorProfilerCallback5Vtbl;
4066
4067 interface ICorProfilerCallback5
4068 {
4069 CONST_VTBL struct ICorProfilerCallback5Vtbl *lpVtbl;
4070 };
4071
4072
4073
4074#ifdef COBJMACROS
4075
4076
4077#define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject) \
4078 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4079
4080#define ICorProfilerCallback5_AddRef(This) \
4081 ( (This)->lpVtbl -> AddRef(This) )
4082
4083#define ICorProfilerCallback5_Release(This) \
4084 ( (This)->lpVtbl -> Release(This) )
4085
4086
4087#define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk) \
4088 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
4089
4090#define ICorProfilerCallback5_Shutdown(This) \
4091 ( (This)->lpVtbl -> Shutdown(This) )
4092
4093#define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId) \
4094 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
4095
4096#define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus) \
4097 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
4098
4099#define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId) \
4100 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
4101
4102#define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
4103 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
4104
4105#define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId) \
4106 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
4107
4108#define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus) \
4109 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
4110
4111#define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId) \
4112 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
4113
4114#define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
4115 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
4116
4117#define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId) \
4118 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
4119
4120#define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus) \
4121 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
4122
4123#define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId) \
4124 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
4125
4126#define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus) \
4127 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
4128
4129#define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
4130 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
4131
4132#define ICorProfilerCallback5_ClassLoadStarted(This,classId) \
4133 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
4134
4135#define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus) \
4136 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
4137
4138#define ICorProfilerCallback5_ClassUnloadStarted(This,classId) \
4139 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
4140
4141#define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus) \
4142 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
4143
4144#define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId) \
4145 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
4146
4147#define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
4148 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
4149
4150#define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
4151 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
4152
4153#define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
4154 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
4155
4156#define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result) \
4157 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
4158
4159#define ICorProfilerCallback5_JITFunctionPitched(This,functionId) \
4160 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
4161
4162#define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline) \
4163 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
4164
4165#define ICorProfilerCallback5_ThreadCreated(This,threadId) \
4166 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
4167
4168#define ICorProfilerCallback5_ThreadDestroyed(This,threadId) \
4169 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
4170
4171#define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4172 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
4173
4174#define ICorProfilerCallback5_RemotingClientInvocationStarted(This) \
4175 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
4176
4177#define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
4178 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
4179
4180#define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
4181 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
4182
4183#define ICorProfilerCallback5_RemotingClientInvocationFinished(This) \
4184 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
4185
4186#define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
4187 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
4188
4189#define ICorProfilerCallback5_RemotingServerInvocationStarted(This) \
4190 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
4191
4192#define ICorProfilerCallback5_RemotingServerInvocationReturned(This) \
4193 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
4194
4195#define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4196 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
4197
4198#define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason) \
4199 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
4200
4201#define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason) \
4202 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
4203
4204#define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \
4205 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
4206
4207#define ICorProfilerCallback5_RuntimeSuspendFinished(This) \
4208 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
4209
4210#define ICorProfilerCallback5_RuntimeSuspendAborted(This) \
4211 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
4212
4213#define ICorProfilerCallback5_RuntimeResumeStarted(This) \
4214 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
4215
4216#define ICorProfilerCallback5_RuntimeResumeFinished(This) \
4217 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
4218
4219#define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId) \
4220 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
4221
4222#define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId) \
4223 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
4224
4225#define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4226 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4227
4228#define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId) \
4229 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
4230
4231#define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
4232 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
4233
4234#define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
4235 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
4236
4237#define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \
4238 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
4239
4240#define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId) \
4241 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
4242
4243#define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId) \
4244 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
4245
4246#define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This) \
4247 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
4248
4249#define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId) \
4250 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
4251
4252#define ICorProfilerCallback5_ExceptionSearchFilterLeave(This) \
4253 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
4254
4255#define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId) \
4256 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
4257
4258#define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused) \
4259 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
4260
4261#define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused) \
4262 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
4263
4264#define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId) \
4265 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
4266
4267#define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This) \
4268 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
4269
4270#define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId) \
4271 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
4272
4273#define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \
4274 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
4275
4276#define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId) \
4277 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
4278
4279#define ICorProfilerCallback5_ExceptionCatcherLeave(This) \
4280 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
4281
4282#define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
4283 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
4284
4285#define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
4286 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
4287
4288#define ICorProfilerCallback5_ExceptionCLRCatcherFound(This) \
4289 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
4290
4291#define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This) \
4292 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
4293
4294
4295#define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name) \
4296 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
4297
4298#define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
4299 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
4300
4301#define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
4302 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
4303
4304#define ICorProfilerCallback5_GarbageCollectionFinished(This) \
4305 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
4306
4307#define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
4308 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
4309
4310#define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
4311 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
4312
4313#define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId) \
4314 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
4315
4316#define ICorProfilerCallback5_HandleDestroyed(This,handleId) \
4317 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
4318
4319
4320#define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
4321 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
4322
4323#define ICorProfilerCallback5_ProfilerAttachComplete(This) \
4324 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
4325
4326#define ICorProfilerCallback5_ProfilerDetachSucceeded(This) \
4327 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
4328
4329
4330#define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
4331 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
4332
4333#define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
4334 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
4335
4336#define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
4337 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
4338
4339#define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
4340 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
4341
4342#define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4343 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4344
4345#define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
4346 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
4347
4348
4349#define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
4350 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
4351
4352#endif /* COBJMACROS */
4353
4354
4355#endif /* C style interface */
4356
4357
4358
4359
4360#endif /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */
4361
4362
4363#ifndef __ICorProfilerCallback6_INTERFACE_DEFINED__
4364#define __ICorProfilerCallback6_INTERFACE_DEFINED__
4365
4366/* interface ICorProfilerCallback6 */
4367/* [local][unique][uuid][object] */
4368
4369
4370EXTERN_C const IID IID_ICorProfilerCallback6;
4371
4372#if defined(__cplusplus) && !defined(CINTERFACE)
4373
4374 MIDL_INTERFACE("FC13DF4B-4448-4F4F-950C-BA8D19D00C36")
4375 ICorProfilerCallback6 : public ICorProfilerCallback5
4376 {
4377 public:
4378 virtual HRESULT STDMETHODCALLTYPE GetAssemblyReferences(
4379 /* [string][in] */ const WCHAR *wszAssemblyPath,
4380 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider) = 0;
4381
4382 };
4383
4384
4385#else /* C style interface */
4386
4387 typedef struct ICorProfilerCallback6Vtbl
4388 {
4389 BEGIN_INTERFACE
4390
4391 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
4392 ICorProfilerCallback6 * This,
4393 /* [in] */ REFIID riid,
4394 /* [annotation][iid_is][out] */
4395 _COM_Outptr_ void **ppvObject);
4396
4397 ULONG ( STDMETHODCALLTYPE *AddRef )(
4398 ICorProfilerCallback6 * This);
4399
4400 ULONG ( STDMETHODCALLTYPE *Release )(
4401 ICorProfilerCallback6 * This);
4402
4403 HRESULT ( STDMETHODCALLTYPE *Initialize )(
4404 ICorProfilerCallback6 * This,
4405 /* [in] */ IUnknown *pICorProfilerInfoUnk);
4406
4407 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
4408 ICorProfilerCallback6 * This);
4409
4410 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
4411 ICorProfilerCallback6 * This,
4412 /* [in] */ AppDomainID appDomainId);
4413
4414 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
4415 ICorProfilerCallback6 * This,
4416 /* [in] */ AppDomainID appDomainId,
4417 /* [in] */ HRESULT hrStatus);
4418
4419 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
4420 ICorProfilerCallback6 * This,
4421 /* [in] */ AppDomainID appDomainId);
4422
4423 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
4424 ICorProfilerCallback6 * This,
4425 /* [in] */ AppDomainID appDomainId,
4426 /* [in] */ HRESULT hrStatus);
4427
4428 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
4429 ICorProfilerCallback6 * This,
4430 /* [in] */ AssemblyID assemblyId);
4431
4432 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
4433 ICorProfilerCallback6 * This,
4434 /* [in] */ AssemblyID assemblyId,
4435 /* [in] */ HRESULT hrStatus);
4436
4437 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
4438 ICorProfilerCallback6 * This,
4439 /* [in] */ AssemblyID assemblyId);
4440
4441 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
4442 ICorProfilerCallback6 * This,
4443 /* [in] */ AssemblyID assemblyId,
4444 /* [in] */ HRESULT hrStatus);
4445
4446 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
4447 ICorProfilerCallback6 * This,
4448 /* [in] */ ModuleID moduleId);
4449
4450 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
4451 ICorProfilerCallback6 * This,
4452 /* [in] */ ModuleID moduleId,
4453 /* [in] */ HRESULT hrStatus);
4454
4455 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
4456 ICorProfilerCallback6 * This,
4457 /* [in] */ ModuleID moduleId);
4458
4459 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
4460 ICorProfilerCallback6 * This,
4461 /* [in] */ ModuleID moduleId,
4462 /* [in] */ HRESULT hrStatus);
4463
4464 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
4465 ICorProfilerCallback6 * This,
4466 /* [in] */ ModuleID moduleId,
4467 /* [in] */ AssemblyID AssemblyId);
4468
4469 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
4470 ICorProfilerCallback6 * This,
4471 /* [in] */ ClassID classId);
4472
4473 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
4474 ICorProfilerCallback6 * This,
4475 /* [in] */ ClassID classId,
4476 /* [in] */ HRESULT hrStatus);
4477
4478 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
4479 ICorProfilerCallback6 * This,
4480 /* [in] */ ClassID classId);
4481
4482 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
4483 ICorProfilerCallback6 * This,
4484 /* [in] */ ClassID classId,
4485 /* [in] */ HRESULT hrStatus);
4486
4487 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
4488 ICorProfilerCallback6 * This,
4489 /* [in] */ FunctionID functionId);
4490
4491 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
4492 ICorProfilerCallback6 * This,
4493 /* [in] */ FunctionID functionId,
4494 /* [in] */ BOOL fIsSafeToBlock);
4495
4496 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
4497 ICorProfilerCallback6 * This,
4498 /* [in] */ FunctionID functionId,
4499 /* [in] */ HRESULT hrStatus,
4500 /* [in] */ BOOL fIsSafeToBlock);
4501
4502 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
4503 ICorProfilerCallback6 * This,
4504 /* [in] */ FunctionID functionId,
4505 /* [out] */ BOOL *pbUseCachedFunction);
4506
4507 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
4508 ICorProfilerCallback6 * This,
4509 /* [in] */ FunctionID functionId,
4510 /* [in] */ COR_PRF_JIT_CACHE result);
4511
4512 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
4513 ICorProfilerCallback6 * This,
4514 /* [in] */ FunctionID functionId);
4515
4516 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
4517 ICorProfilerCallback6 * This,
4518 /* [in] */ FunctionID callerId,
4519 /* [in] */ FunctionID calleeId,
4520 /* [out] */ BOOL *pfShouldInline);
4521
4522 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
4523 ICorProfilerCallback6 * This,
4524 /* [in] */ ThreadID threadId);
4525
4526 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
4527 ICorProfilerCallback6 * This,
4528 /* [in] */ ThreadID threadId);
4529
4530 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
4531 ICorProfilerCallback6 * This,
4532 /* [in] */ ThreadID managedThreadId,
4533 /* [in] */ DWORD osThreadId);
4534
4535 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
4536 ICorProfilerCallback6 * This);
4537
4538 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
4539 ICorProfilerCallback6 * This,
4540 /* [in] */ GUID *pCookie,
4541 /* [in] */ BOOL fIsAsync);
4542
4543 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
4544 ICorProfilerCallback6 * This,
4545 /* [in] */ GUID *pCookie,
4546 /* [in] */ BOOL fIsAsync);
4547
4548 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
4549 ICorProfilerCallback6 * This);
4550
4551 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
4552 ICorProfilerCallback6 * This,
4553 /* [in] */ GUID *pCookie,
4554 /* [in] */ BOOL fIsAsync);
4555
4556 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
4557 ICorProfilerCallback6 * This);
4558
4559 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
4560 ICorProfilerCallback6 * This);
4561
4562 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
4563 ICorProfilerCallback6 * This,
4564 /* [in] */ GUID *pCookie,
4565 /* [in] */ BOOL fIsAsync);
4566
4567 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
4568 ICorProfilerCallback6 * This,
4569 /* [in] */ FunctionID functionId,
4570 /* [in] */ COR_PRF_TRANSITION_REASON reason);
4571
4572 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
4573 ICorProfilerCallback6 * This,
4574 /* [in] */ FunctionID functionId,
4575 /* [in] */ COR_PRF_TRANSITION_REASON reason);
4576
4577 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
4578 ICorProfilerCallback6 * This,
4579 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
4580
4581 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
4582 ICorProfilerCallback6 * This);
4583
4584 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
4585 ICorProfilerCallback6 * This);
4586
4587 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
4588 ICorProfilerCallback6 * This);
4589
4590 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
4591 ICorProfilerCallback6 * This);
4592
4593 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
4594 ICorProfilerCallback6 * This,
4595 /* [in] */ ThreadID threadId);
4596
4597 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
4598 ICorProfilerCallback6 * This,
4599 /* [in] */ ThreadID threadId);
4600
4601 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
4602 ICorProfilerCallback6 * This,
4603 /* [in] */ ULONG cMovedObjectIDRanges,
4604 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4605 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4606 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
4607
4608 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
4609 ICorProfilerCallback6 * This,
4610 /* [in] */ ObjectID objectId,
4611 /* [in] */ ClassID classId);
4612
4613 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
4614 ICorProfilerCallback6 * This,
4615 /* [in] */ ULONG cClassCount,
4616 /* [size_is][in] */ ClassID classIds[ ],
4617 /* [size_is][in] */ ULONG cObjects[ ]);
4618
4619 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
4620 ICorProfilerCallback6 * This,
4621 /* [in] */ ObjectID objectId,
4622 /* [in] */ ClassID classId,
4623 /* [in] */ ULONG cObjectRefs,
4624 /* [size_is][in] */ ObjectID objectRefIds[ ]);
4625
4626 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
4627 ICorProfilerCallback6 * This,
4628 /* [in] */ ULONG cRootRefs,
4629 /* [size_is][in] */ ObjectID rootRefIds[ ]);
4630
4631 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
4632 ICorProfilerCallback6 * This,
4633 /* [in] */ ObjectID thrownObjectId);
4634
4635 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
4636 ICorProfilerCallback6 * This,
4637 /* [in] */ FunctionID functionId);
4638
4639 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
4640 ICorProfilerCallback6 * This);
4641
4642 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
4643 ICorProfilerCallback6 * This,
4644 /* [in] */ FunctionID functionId);
4645
4646 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
4647 ICorProfilerCallback6 * This);
4648
4649 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
4650 ICorProfilerCallback6 * This,
4651 /* [in] */ FunctionID functionId);
4652
4653 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
4654 ICorProfilerCallback6 * This,
4655 /* [in] */ UINT_PTR __unused);
4656
4657 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
4658 ICorProfilerCallback6 * This,
4659 /* [in] */ UINT_PTR __unused);
4660
4661 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
4662 ICorProfilerCallback6 * This,
4663 /* [in] */ FunctionID functionId);
4664
4665 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
4666 ICorProfilerCallback6 * This);
4667
4668 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
4669 ICorProfilerCallback6 * This,
4670 /* [in] */ FunctionID functionId);
4671
4672 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
4673 ICorProfilerCallback6 * This);
4674
4675 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
4676 ICorProfilerCallback6 * This,
4677 /* [in] */ FunctionID functionId,
4678 /* [in] */ ObjectID objectId);
4679
4680 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
4681 ICorProfilerCallback6 * This);
4682
4683 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
4684 ICorProfilerCallback6 * This,
4685 /* [in] */ ClassID wrappedClassId,
4686 /* [in] */ REFGUID implementedIID,
4687 /* [in] */ void *pVTable,
4688 /* [in] */ ULONG cSlots);
4689
4690 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
4691 ICorProfilerCallback6 * This,
4692 /* [in] */ ClassID wrappedClassId,
4693 /* [in] */ REFGUID implementedIID,
4694 /* [in] */ void *pVTable);
4695
4696 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
4697 ICorProfilerCallback6 * This);
4698
4699 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
4700 ICorProfilerCallback6 * This);
4701
4702 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
4703 ICorProfilerCallback6 * This,
4704 /* [in] */ ThreadID threadId,
4705 /* [in] */ ULONG cchName,
4706 /* [annotation][in] */
4707 _In_reads_opt_(cchName) WCHAR name[ ]);
4708
4709 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
4710 ICorProfilerCallback6 * This,
4711 /* [in] */ int cGenerations,
4712 /* [size_is][in] */ BOOL generationCollected[ ],
4713 /* [in] */ COR_PRF_GC_REASON reason);
4714
4715 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
4716 ICorProfilerCallback6 * This,
4717 /* [in] */ ULONG cSurvivingObjectIDRanges,
4718 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4719 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
4720
4721 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
4722 ICorProfilerCallback6 * This);
4723
4724 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
4725 ICorProfilerCallback6 * This,
4726 /* [in] */ DWORD finalizerFlags,
4727 /* [in] */ ObjectID objectID);
4728
4729 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
4730 ICorProfilerCallback6 * This,
4731 /* [in] */ ULONG cRootRefs,
4732 /* [size_is][in] */ ObjectID rootRefIds[ ],
4733 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
4734 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
4735 /* [size_is][in] */ UINT_PTR rootIds[ ]);
4736
4737 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
4738 ICorProfilerCallback6 * This,
4739 /* [in] */ GCHandleID handleId,
4740 /* [in] */ ObjectID initialObjectId);
4741
4742 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
4743 ICorProfilerCallback6 * This,
4744 /* [in] */ GCHandleID handleId);
4745
4746 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
4747 ICorProfilerCallback6 * This,
4748 /* [in] */ IUnknown *pCorProfilerInfoUnk,
4749 /* [in] */ void *pvClientData,
4750 /* [in] */ UINT cbClientData);
4751
4752 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
4753 ICorProfilerCallback6 * This);
4754
4755 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
4756 ICorProfilerCallback6 * This);
4757
4758 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
4759 ICorProfilerCallback6 * This,
4760 /* [in] */ FunctionID functionId,
4761 /* [in] */ ReJITID rejitId,
4762 /* [in] */ BOOL fIsSafeToBlock);
4763
4764 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
4765 ICorProfilerCallback6 * This,
4766 /* [in] */ ModuleID moduleId,
4767 /* [in] */ mdMethodDef methodId,
4768 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4769
4770 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
4771 ICorProfilerCallback6 * This,
4772 /* [in] */ FunctionID functionId,
4773 /* [in] */ ReJITID rejitId,
4774 /* [in] */ HRESULT hrStatus,
4775 /* [in] */ BOOL fIsSafeToBlock);
4776
4777 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
4778 ICorProfilerCallback6 * This,
4779 /* [in] */ ModuleID moduleId,
4780 /* [in] */ mdMethodDef methodId,
4781 /* [in] */ FunctionID functionId,
4782 /* [in] */ HRESULT hrStatus);
4783
4784 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
4785 ICorProfilerCallback6 * This,
4786 /* [in] */ ULONG cMovedObjectIDRanges,
4787 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
4788 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
4789 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4790
4791 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
4792 ICorProfilerCallback6 * This,
4793 /* [in] */ ULONG cSurvivingObjectIDRanges,
4794 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
4795 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
4796
4797 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
4798 ICorProfilerCallback6 * This,
4799 /* [in] */ ULONG cRootRefs,
4800 /* [size_is][in] */ ObjectID keyRefIds[ ],
4801 /* [size_is][in] */ ObjectID valueRefIds[ ],
4802 /* [size_is][in] */ GCHandleID rootIds[ ]);
4803
4804 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
4805 ICorProfilerCallback6 * This,
4806 /* [string][in] */ const WCHAR *wszAssemblyPath,
4807 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
4808
4809 END_INTERFACE
4810 } ICorProfilerCallback6Vtbl;
4811
4812 interface ICorProfilerCallback6
4813 {
4814 CONST_VTBL struct ICorProfilerCallback6Vtbl *lpVtbl;
4815 };
4816
4817
4818
4819#ifdef COBJMACROS
4820
4821
4822#define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject) \
4823 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
4824
4825#define ICorProfilerCallback6_AddRef(This) \
4826 ( (This)->lpVtbl -> AddRef(This) )
4827
4828#define ICorProfilerCallback6_Release(This) \
4829 ( (This)->lpVtbl -> Release(This) )
4830
4831
4832#define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk) \
4833 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
4834
4835#define ICorProfilerCallback6_Shutdown(This) \
4836 ( (This)->lpVtbl -> Shutdown(This) )
4837
4838#define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId) \
4839 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
4840
4841#define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus) \
4842 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
4843
4844#define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId) \
4845 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
4846
4847#define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
4848 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
4849
4850#define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId) \
4851 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
4852
4853#define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus) \
4854 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
4855
4856#define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId) \
4857 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
4858
4859#define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
4860 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
4861
4862#define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId) \
4863 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
4864
4865#define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus) \
4866 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
4867
4868#define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId) \
4869 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
4870
4871#define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus) \
4872 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
4873
4874#define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
4875 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
4876
4877#define ICorProfilerCallback6_ClassLoadStarted(This,classId) \
4878 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
4879
4880#define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus) \
4881 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
4882
4883#define ICorProfilerCallback6_ClassUnloadStarted(This,classId) \
4884 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
4885
4886#define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus) \
4887 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
4888
4889#define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId) \
4890 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
4891
4892#define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
4893 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
4894
4895#define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
4896 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
4897
4898#define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
4899 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
4900
4901#define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result) \
4902 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
4903
4904#define ICorProfilerCallback6_JITFunctionPitched(This,functionId) \
4905 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
4906
4907#define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline) \
4908 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
4909
4910#define ICorProfilerCallback6_ThreadCreated(This,threadId) \
4911 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
4912
4913#define ICorProfilerCallback6_ThreadDestroyed(This,threadId) \
4914 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
4915
4916#define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4917 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
4918
4919#define ICorProfilerCallback6_RemotingClientInvocationStarted(This) \
4920 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
4921
4922#define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
4923 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
4924
4925#define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
4926 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
4927
4928#define ICorProfilerCallback6_RemotingClientInvocationFinished(This) \
4929 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
4930
4931#define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
4932 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
4933
4934#define ICorProfilerCallback6_RemotingServerInvocationStarted(This) \
4935 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
4936
4937#define ICorProfilerCallback6_RemotingServerInvocationReturned(This) \
4938 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
4939
4940#define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4941 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
4942
4943#define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason) \
4944 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
4945
4946#define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason) \
4947 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
4948
4949#define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \
4950 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
4951
4952#define ICorProfilerCallback6_RuntimeSuspendFinished(This) \
4953 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
4954
4955#define ICorProfilerCallback6_RuntimeSuspendAborted(This) \
4956 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
4957
4958#define ICorProfilerCallback6_RuntimeResumeStarted(This) \
4959 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
4960
4961#define ICorProfilerCallback6_RuntimeResumeFinished(This) \
4962 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
4963
4964#define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId) \
4965 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
4966
4967#define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId) \
4968 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
4969
4970#define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
4971 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
4972
4973#define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId) \
4974 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
4975
4976#define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
4977 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
4978
4979#define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
4980 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
4981
4982#define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \
4983 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
4984
4985#define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId) \
4986 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
4987
4988#define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId) \
4989 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
4990
4991#define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This) \
4992 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
4993
4994#define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId) \
4995 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
4996
4997#define ICorProfilerCallback6_ExceptionSearchFilterLeave(This) \
4998 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
4999
5000#define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId) \
5001 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
5002
5003#define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused) \
5004 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
5005
5006#define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused) \
5007 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
5008
5009#define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId) \
5010 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
5011
5012#define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This) \
5013 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
5014
5015#define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId) \
5016 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
5017
5018#define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \
5019 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
5020
5021#define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId) \
5022 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
5023
5024#define ICorProfilerCallback6_ExceptionCatcherLeave(This) \
5025 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
5026
5027#define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
5028 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
5029
5030#define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
5031 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
5032
5033#define ICorProfilerCallback6_ExceptionCLRCatcherFound(This) \
5034 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
5035
5036#define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This) \
5037 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
5038
5039
5040#define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name) \
5041 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
5042
5043#define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
5044 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
5045
5046#define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5047 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5048
5049#define ICorProfilerCallback6_GarbageCollectionFinished(This) \
5050 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
5051
5052#define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
5053 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
5054
5055#define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
5056 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
5057
5058#define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId) \
5059 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
5060
5061#define ICorProfilerCallback6_HandleDestroyed(This,handleId) \
5062 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
5063
5064
5065#define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
5066 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
5067
5068#define ICorProfilerCallback6_ProfilerAttachComplete(This) \
5069 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
5070
5071#define ICorProfilerCallback6_ProfilerDetachSucceeded(This) \
5072 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
5073
5074
5075#define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
5076 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
5077
5078#define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
5079 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
5080
5081#define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5082 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
5083
5084#define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
5085 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
5086
5087#define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5088 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5089
5090#define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5091 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5092
5093
5094#define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
5095 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
5096
5097
5098#define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
5099 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
5100
5101#endif /* COBJMACROS */
5102
5103
5104#endif /* C style interface */
5105
5106
5107
5108
5109#endif /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */
5110
5111
5112#ifndef __ICorProfilerCallback7_INTERFACE_DEFINED__
5113#define __ICorProfilerCallback7_INTERFACE_DEFINED__
5114
5115/* interface ICorProfilerCallback7 */
5116/* [local][unique][uuid][object] */
5117
5118
5119EXTERN_C const IID IID_ICorProfilerCallback7;
5120
5121#if defined(__cplusplus) && !defined(CINTERFACE)
5122
5123 MIDL_INTERFACE("F76A2DBA-1D52-4539-866C-2AA518F9EFC3")
5124 ICorProfilerCallback7 : public ICorProfilerCallback6
5125 {
5126 public:
5127 virtual HRESULT STDMETHODCALLTYPE ModuleInMemorySymbolsUpdated(
5128 ModuleID moduleId) = 0;
5129
5130 };
5131
5132
5133#else /* C style interface */
5134
5135 typedef struct ICorProfilerCallback7Vtbl
5136 {
5137 BEGIN_INTERFACE
5138
5139 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5140 ICorProfilerCallback7 * This,
5141 /* [in] */ REFIID riid,
5142 /* [annotation][iid_is][out] */
5143 _COM_Outptr_ void **ppvObject);
5144
5145 ULONG ( STDMETHODCALLTYPE *AddRef )(
5146 ICorProfilerCallback7 * This);
5147
5148 ULONG ( STDMETHODCALLTYPE *Release )(
5149 ICorProfilerCallback7 * This);
5150
5151 HRESULT ( STDMETHODCALLTYPE *Initialize )(
5152 ICorProfilerCallback7 * This,
5153 /* [in] */ IUnknown *pICorProfilerInfoUnk);
5154
5155 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
5156 ICorProfilerCallback7 * This);
5157
5158 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
5159 ICorProfilerCallback7 * This,
5160 /* [in] */ AppDomainID appDomainId);
5161
5162 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
5163 ICorProfilerCallback7 * This,
5164 /* [in] */ AppDomainID appDomainId,
5165 /* [in] */ HRESULT hrStatus);
5166
5167 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
5168 ICorProfilerCallback7 * This,
5169 /* [in] */ AppDomainID appDomainId);
5170
5171 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
5172 ICorProfilerCallback7 * This,
5173 /* [in] */ AppDomainID appDomainId,
5174 /* [in] */ HRESULT hrStatus);
5175
5176 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
5177 ICorProfilerCallback7 * This,
5178 /* [in] */ AssemblyID assemblyId);
5179
5180 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
5181 ICorProfilerCallback7 * This,
5182 /* [in] */ AssemblyID assemblyId,
5183 /* [in] */ HRESULT hrStatus);
5184
5185 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
5186 ICorProfilerCallback7 * This,
5187 /* [in] */ AssemblyID assemblyId);
5188
5189 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
5190 ICorProfilerCallback7 * This,
5191 /* [in] */ AssemblyID assemblyId,
5192 /* [in] */ HRESULT hrStatus);
5193
5194 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
5195 ICorProfilerCallback7 * This,
5196 /* [in] */ ModuleID moduleId);
5197
5198 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
5199 ICorProfilerCallback7 * This,
5200 /* [in] */ ModuleID moduleId,
5201 /* [in] */ HRESULT hrStatus);
5202
5203 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
5204 ICorProfilerCallback7 * This,
5205 /* [in] */ ModuleID moduleId);
5206
5207 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
5208 ICorProfilerCallback7 * This,
5209 /* [in] */ ModuleID moduleId,
5210 /* [in] */ HRESULT hrStatus);
5211
5212 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
5213 ICorProfilerCallback7 * This,
5214 /* [in] */ ModuleID moduleId,
5215 /* [in] */ AssemblyID AssemblyId);
5216
5217 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
5218 ICorProfilerCallback7 * This,
5219 /* [in] */ ClassID classId);
5220
5221 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
5222 ICorProfilerCallback7 * This,
5223 /* [in] */ ClassID classId,
5224 /* [in] */ HRESULT hrStatus);
5225
5226 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
5227 ICorProfilerCallback7 * This,
5228 /* [in] */ ClassID classId);
5229
5230 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
5231 ICorProfilerCallback7 * This,
5232 /* [in] */ ClassID classId,
5233 /* [in] */ HRESULT hrStatus);
5234
5235 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
5236 ICorProfilerCallback7 * This,
5237 /* [in] */ FunctionID functionId);
5238
5239 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
5240 ICorProfilerCallback7 * This,
5241 /* [in] */ FunctionID functionId,
5242 /* [in] */ BOOL fIsSafeToBlock);
5243
5244 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
5245 ICorProfilerCallback7 * This,
5246 /* [in] */ FunctionID functionId,
5247 /* [in] */ HRESULT hrStatus,
5248 /* [in] */ BOOL fIsSafeToBlock);
5249
5250 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
5251 ICorProfilerCallback7 * This,
5252 /* [in] */ FunctionID functionId,
5253 /* [out] */ BOOL *pbUseCachedFunction);
5254
5255 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
5256 ICorProfilerCallback7 * This,
5257 /* [in] */ FunctionID functionId,
5258 /* [in] */ COR_PRF_JIT_CACHE result);
5259
5260 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
5261 ICorProfilerCallback7 * This,
5262 /* [in] */ FunctionID functionId);
5263
5264 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
5265 ICorProfilerCallback7 * This,
5266 /* [in] */ FunctionID callerId,
5267 /* [in] */ FunctionID calleeId,
5268 /* [out] */ BOOL *pfShouldInline);
5269
5270 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
5271 ICorProfilerCallback7 * This,
5272 /* [in] */ ThreadID threadId);
5273
5274 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
5275 ICorProfilerCallback7 * This,
5276 /* [in] */ ThreadID threadId);
5277
5278 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
5279 ICorProfilerCallback7 * This,
5280 /* [in] */ ThreadID managedThreadId,
5281 /* [in] */ DWORD osThreadId);
5282
5283 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
5284 ICorProfilerCallback7 * This);
5285
5286 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
5287 ICorProfilerCallback7 * This,
5288 /* [in] */ GUID *pCookie,
5289 /* [in] */ BOOL fIsAsync);
5290
5291 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
5292 ICorProfilerCallback7 * This,
5293 /* [in] */ GUID *pCookie,
5294 /* [in] */ BOOL fIsAsync);
5295
5296 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
5297 ICorProfilerCallback7 * This);
5298
5299 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
5300 ICorProfilerCallback7 * This,
5301 /* [in] */ GUID *pCookie,
5302 /* [in] */ BOOL fIsAsync);
5303
5304 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
5305 ICorProfilerCallback7 * This);
5306
5307 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
5308 ICorProfilerCallback7 * This);
5309
5310 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
5311 ICorProfilerCallback7 * This,
5312 /* [in] */ GUID *pCookie,
5313 /* [in] */ BOOL fIsAsync);
5314
5315 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
5316 ICorProfilerCallback7 * This,
5317 /* [in] */ FunctionID functionId,
5318 /* [in] */ COR_PRF_TRANSITION_REASON reason);
5319
5320 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
5321 ICorProfilerCallback7 * This,
5322 /* [in] */ FunctionID functionId,
5323 /* [in] */ COR_PRF_TRANSITION_REASON reason);
5324
5325 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
5326 ICorProfilerCallback7 * This,
5327 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
5328
5329 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
5330 ICorProfilerCallback7 * This);
5331
5332 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
5333 ICorProfilerCallback7 * This);
5334
5335 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
5336 ICorProfilerCallback7 * This);
5337
5338 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
5339 ICorProfilerCallback7 * This);
5340
5341 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
5342 ICorProfilerCallback7 * This,
5343 /* [in] */ ThreadID threadId);
5344
5345 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
5346 ICorProfilerCallback7 * This,
5347 /* [in] */ ThreadID threadId);
5348
5349 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
5350 ICorProfilerCallback7 * This,
5351 /* [in] */ ULONG cMovedObjectIDRanges,
5352 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
5353 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
5354 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
5355
5356 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
5357 ICorProfilerCallback7 * This,
5358 /* [in] */ ObjectID objectId,
5359 /* [in] */ ClassID classId);
5360
5361 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
5362 ICorProfilerCallback7 * This,
5363 /* [in] */ ULONG cClassCount,
5364 /* [size_is][in] */ ClassID classIds[ ],
5365 /* [size_is][in] */ ULONG cObjects[ ]);
5366
5367 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
5368 ICorProfilerCallback7 * This,
5369 /* [in] */ ObjectID objectId,
5370 /* [in] */ ClassID classId,
5371 /* [in] */ ULONG cObjectRefs,
5372 /* [size_is][in] */ ObjectID objectRefIds[ ]);
5373
5374 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
5375 ICorProfilerCallback7 * This,
5376 /* [in] */ ULONG cRootRefs,
5377 /* [size_is][in] */ ObjectID rootRefIds[ ]);
5378
5379 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
5380 ICorProfilerCallback7 * This,
5381 /* [in] */ ObjectID thrownObjectId);
5382
5383 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
5384 ICorProfilerCallback7 * This,
5385 /* [in] */ FunctionID functionId);
5386
5387 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
5388 ICorProfilerCallback7 * This);
5389
5390 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
5391 ICorProfilerCallback7 * This,
5392 /* [in] */ FunctionID functionId);
5393
5394 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
5395 ICorProfilerCallback7 * This);
5396
5397 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
5398 ICorProfilerCallback7 * This,
5399 /* [in] */ FunctionID functionId);
5400
5401 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
5402 ICorProfilerCallback7 * This,
5403 /* [in] */ UINT_PTR __unused);
5404
5405 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
5406 ICorProfilerCallback7 * This,
5407 /* [in] */ UINT_PTR __unused);
5408
5409 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
5410 ICorProfilerCallback7 * This,
5411 /* [in] */ FunctionID functionId);
5412
5413 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
5414 ICorProfilerCallback7 * This);
5415
5416 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
5417 ICorProfilerCallback7 * This,
5418 /* [in] */ FunctionID functionId);
5419
5420 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
5421 ICorProfilerCallback7 * This);
5422
5423 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
5424 ICorProfilerCallback7 * This,
5425 /* [in] */ FunctionID functionId,
5426 /* [in] */ ObjectID objectId);
5427
5428 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
5429 ICorProfilerCallback7 * This);
5430
5431 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
5432 ICorProfilerCallback7 * This,
5433 /* [in] */ ClassID wrappedClassId,
5434 /* [in] */ REFGUID implementedIID,
5435 /* [in] */ void *pVTable,
5436 /* [in] */ ULONG cSlots);
5437
5438 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
5439 ICorProfilerCallback7 * This,
5440 /* [in] */ ClassID wrappedClassId,
5441 /* [in] */ REFGUID implementedIID,
5442 /* [in] */ void *pVTable);
5443
5444 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
5445 ICorProfilerCallback7 * This);
5446
5447 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
5448 ICorProfilerCallback7 * This);
5449
5450 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
5451 ICorProfilerCallback7 * This,
5452 /* [in] */ ThreadID threadId,
5453 /* [in] */ ULONG cchName,
5454 /* [annotation][in] */
5455 _In_reads_opt_(cchName) WCHAR name[ ]);
5456
5457 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
5458 ICorProfilerCallback7 * This,
5459 /* [in] */ int cGenerations,
5460 /* [size_is][in] */ BOOL generationCollected[ ],
5461 /* [in] */ COR_PRF_GC_REASON reason);
5462
5463 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
5464 ICorProfilerCallback7 * This,
5465 /* [in] */ ULONG cSurvivingObjectIDRanges,
5466 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
5467 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
5468
5469 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
5470 ICorProfilerCallback7 * This);
5471
5472 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
5473 ICorProfilerCallback7 * This,
5474 /* [in] */ DWORD finalizerFlags,
5475 /* [in] */ ObjectID objectID);
5476
5477 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
5478 ICorProfilerCallback7 * This,
5479 /* [in] */ ULONG cRootRefs,
5480 /* [size_is][in] */ ObjectID rootRefIds[ ],
5481 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
5482 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
5483 /* [size_is][in] */ UINT_PTR rootIds[ ]);
5484
5485 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
5486 ICorProfilerCallback7 * This,
5487 /* [in] */ GCHandleID handleId,
5488 /* [in] */ ObjectID initialObjectId);
5489
5490 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
5491 ICorProfilerCallback7 * This,
5492 /* [in] */ GCHandleID handleId);
5493
5494 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
5495 ICorProfilerCallback7 * This,
5496 /* [in] */ IUnknown *pCorProfilerInfoUnk,
5497 /* [in] */ void *pvClientData,
5498 /* [in] */ UINT cbClientData);
5499
5500 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
5501 ICorProfilerCallback7 * This);
5502
5503 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
5504 ICorProfilerCallback7 * This);
5505
5506 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
5507 ICorProfilerCallback7 * This,
5508 /* [in] */ FunctionID functionId,
5509 /* [in] */ ReJITID rejitId,
5510 /* [in] */ BOOL fIsSafeToBlock);
5511
5512 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
5513 ICorProfilerCallback7 * This,
5514 /* [in] */ ModuleID moduleId,
5515 /* [in] */ mdMethodDef methodId,
5516 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
5517
5518 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
5519 ICorProfilerCallback7 * This,
5520 /* [in] */ FunctionID functionId,
5521 /* [in] */ ReJITID rejitId,
5522 /* [in] */ HRESULT hrStatus,
5523 /* [in] */ BOOL fIsSafeToBlock);
5524
5525 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
5526 ICorProfilerCallback7 * This,
5527 /* [in] */ ModuleID moduleId,
5528 /* [in] */ mdMethodDef methodId,
5529 /* [in] */ FunctionID functionId,
5530 /* [in] */ HRESULT hrStatus);
5531
5532 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
5533 ICorProfilerCallback7 * This,
5534 /* [in] */ ULONG cMovedObjectIDRanges,
5535 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
5536 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
5537 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
5538
5539 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
5540 ICorProfilerCallback7 * This,
5541 /* [in] */ ULONG cSurvivingObjectIDRanges,
5542 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
5543 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
5544
5545 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
5546 ICorProfilerCallback7 * This,
5547 /* [in] */ ULONG cRootRefs,
5548 /* [size_is][in] */ ObjectID keyRefIds[ ],
5549 /* [size_is][in] */ ObjectID valueRefIds[ ],
5550 /* [size_is][in] */ GCHandleID rootIds[ ]);
5551
5552 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
5553 ICorProfilerCallback7 * This,
5554 /* [string][in] */ const WCHAR *wszAssemblyPath,
5555 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
5556
5557 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
5558 ICorProfilerCallback7 * This,
5559 ModuleID moduleId);
5560
5561 END_INTERFACE
5562 } ICorProfilerCallback7Vtbl;
5563
5564 interface ICorProfilerCallback7
5565 {
5566 CONST_VTBL struct ICorProfilerCallback7Vtbl *lpVtbl;
5567 };
5568
5569
5570
5571#ifdef COBJMACROS
5572
5573
5574#define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject) \
5575 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
5576
5577#define ICorProfilerCallback7_AddRef(This) \
5578 ( (This)->lpVtbl -> AddRef(This) )
5579
5580#define ICorProfilerCallback7_Release(This) \
5581 ( (This)->lpVtbl -> Release(This) )
5582
5583
5584#define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk) \
5585 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
5586
5587#define ICorProfilerCallback7_Shutdown(This) \
5588 ( (This)->lpVtbl -> Shutdown(This) )
5589
5590#define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId) \
5591 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
5592
5593#define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus) \
5594 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
5595
5596#define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId) \
5597 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
5598
5599#define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
5600 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
5601
5602#define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId) \
5603 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
5604
5605#define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus) \
5606 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
5607
5608#define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId) \
5609 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
5610
5611#define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
5612 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
5613
5614#define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId) \
5615 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
5616
5617#define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus) \
5618 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
5619
5620#define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId) \
5621 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
5622
5623#define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus) \
5624 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
5625
5626#define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
5627 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
5628
5629#define ICorProfilerCallback7_ClassLoadStarted(This,classId) \
5630 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
5631
5632#define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus) \
5633 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
5634
5635#define ICorProfilerCallback7_ClassUnloadStarted(This,classId) \
5636 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
5637
5638#define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus) \
5639 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
5640
5641#define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId) \
5642 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
5643
5644#define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
5645 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
5646
5647#define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
5648 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
5649
5650#define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
5651 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
5652
5653#define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result) \
5654 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
5655
5656#define ICorProfilerCallback7_JITFunctionPitched(This,functionId) \
5657 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
5658
5659#define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline) \
5660 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
5661
5662#define ICorProfilerCallback7_ThreadCreated(This,threadId) \
5663 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
5664
5665#define ICorProfilerCallback7_ThreadDestroyed(This,threadId) \
5666 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
5667
5668#define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
5669 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
5670
5671#define ICorProfilerCallback7_RemotingClientInvocationStarted(This) \
5672 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
5673
5674#define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
5675 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
5676
5677#define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
5678 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
5679
5680#define ICorProfilerCallback7_RemotingClientInvocationFinished(This) \
5681 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
5682
5683#define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
5684 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
5685
5686#define ICorProfilerCallback7_RemotingServerInvocationStarted(This) \
5687 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
5688
5689#define ICorProfilerCallback7_RemotingServerInvocationReturned(This) \
5690 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
5691
5692#define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \
5693 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
5694
5695#define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason) \
5696 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
5697
5698#define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason) \
5699 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
5700
5701#define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \
5702 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
5703
5704#define ICorProfilerCallback7_RuntimeSuspendFinished(This) \
5705 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
5706
5707#define ICorProfilerCallback7_RuntimeSuspendAborted(This) \
5708 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
5709
5710#define ICorProfilerCallback7_RuntimeResumeStarted(This) \
5711 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
5712
5713#define ICorProfilerCallback7_RuntimeResumeFinished(This) \
5714 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
5715
5716#define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId) \
5717 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
5718
5719#define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId) \
5720 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
5721
5722#define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5723 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5724
5725#define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId) \
5726 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
5727
5728#define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
5729 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
5730
5731#define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
5732 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
5733
5734#define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \
5735 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
5736
5737#define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId) \
5738 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
5739
5740#define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId) \
5741 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
5742
5743#define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This) \
5744 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
5745
5746#define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId) \
5747 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
5748
5749#define ICorProfilerCallback7_ExceptionSearchFilterLeave(This) \
5750 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
5751
5752#define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId) \
5753 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
5754
5755#define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused) \
5756 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
5757
5758#define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused) \
5759 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
5760
5761#define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId) \
5762 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
5763
5764#define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This) \
5765 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
5766
5767#define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId) \
5768 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
5769
5770#define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \
5771 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
5772
5773#define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId) \
5774 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
5775
5776#define ICorProfilerCallback7_ExceptionCatcherLeave(This) \
5777 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
5778
5779#define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
5780 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
5781
5782#define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
5783 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
5784
5785#define ICorProfilerCallback7_ExceptionCLRCatcherFound(This) \
5786 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
5787
5788#define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This) \
5789 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
5790
5791
5792#define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name) \
5793 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
5794
5795#define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
5796 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
5797
5798#define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5799 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5800
5801#define ICorProfilerCallback7_GarbageCollectionFinished(This) \
5802 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
5803
5804#define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
5805 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
5806
5807#define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
5808 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
5809
5810#define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId) \
5811 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
5812
5813#define ICorProfilerCallback7_HandleDestroyed(This,handleId) \
5814 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
5815
5816
5817#define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
5818 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
5819
5820#define ICorProfilerCallback7_ProfilerAttachComplete(This) \
5821 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
5822
5823#define ICorProfilerCallback7_ProfilerDetachSucceeded(This) \
5824 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
5825
5826
5827#define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
5828 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
5829
5830#define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
5831 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
5832
5833#define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5834 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
5835
5836#define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
5837 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
5838
5839#define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
5840 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
5841
5842#define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
5843 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
5844
5845
5846#define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
5847 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
5848
5849
5850#define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
5851 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
5852
5853
5854#define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId) \
5855 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
5856
5857#endif /* COBJMACROS */
5858
5859
5860#endif /* C style interface */
5861
5862
5863
5864
5865#endif /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */
5866
5867
5868#ifndef __ICorProfilerCallback8_INTERFACE_DEFINED__
5869#define __ICorProfilerCallback8_INTERFACE_DEFINED__
5870
5871/* interface ICorProfilerCallback8 */
5872/* [local][unique][uuid][object] */
5873
5874
5875EXTERN_C const IID IID_ICorProfilerCallback8;
5876
5877#if defined(__cplusplus) && !defined(CINTERFACE)
5878
5879 MIDL_INTERFACE("5BED9B15-C079-4D47-BFE2-215A140C07E0")
5880 ICorProfilerCallback8 : public ICorProfilerCallback7
5881 {
5882 public:
5883 virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationStarted(
5884 /* [in] */ FunctionID functionId,
5885 /* [in] */ BOOL fIsSafeToBlock,
5886 /* [in] */ LPCBYTE pILHeader,
5887 /* [in] */ ULONG cbILHeader) = 0;
5888
5889 virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationFinished(
5890 /* [in] */ FunctionID functionId,
5891 /* [in] */ HRESULT hrStatus,
5892 /* [in] */ BOOL fIsSafeToBlock) = 0;
5893
5894 };
5895
5896
5897#else /* C style interface */
5898
5899 typedef struct ICorProfilerCallback8Vtbl
5900 {
5901 BEGIN_INTERFACE
5902
5903 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
5904 ICorProfilerCallback8 * This,
5905 /* [in] */ REFIID riid,
5906 /* [annotation][iid_is][out] */
5907 _COM_Outptr_ void **ppvObject);
5908
5909 ULONG ( STDMETHODCALLTYPE *AddRef )(
5910 ICorProfilerCallback8 * This);
5911
5912 ULONG ( STDMETHODCALLTYPE *Release )(
5913 ICorProfilerCallback8 * This);
5914
5915 HRESULT ( STDMETHODCALLTYPE *Initialize )(
5916 ICorProfilerCallback8 * This,
5917 /* [in] */ IUnknown *pICorProfilerInfoUnk);
5918
5919 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
5920 ICorProfilerCallback8 * This);
5921
5922 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
5923 ICorProfilerCallback8 * This,
5924 /* [in] */ AppDomainID appDomainId);
5925
5926 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
5927 ICorProfilerCallback8 * This,
5928 /* [in] */ AppDomainID appDomainId,
5929 /* [in] */ HRESULT hrStatus);
5930
5931 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
5932 ICorProfilerCallback8 * This,
5933 /* [in] */ AppDomainID appDomainId);
5934
5935 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
5936 ICorProfilerCallback8 * This,
5937 /* [in] */ AppDomainID appDomainId,
5938 /* [in] */ HRESULT hrStatus);
5939
5940 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
5941 ICorProfilerCallback8 * This,
5942 /* [in] */ AssemblyID assemblyId);
5943
5944 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
5945 ICorProfilerCallback8 * This,
5946 /* [in] */ AssemblyID assemblyId,
5947 /* [in] */ HRESULT hrStatus);
5948
5949 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
5950 ICorProfilerCallback8 * This,
5951 /* [in] */ AssemblyID assemblyId);
5952
5953 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
5954 ICorProfilerCallback8 * This,
5955 /* [in] */ AssemblyID assemblyId,
5956 /* [in] */ HRESULT hrStatus);
5957
5958 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
5959 ICorProfilerCallback8 * This,
5960 /* [in] */ ModuleID moduleId);
5961
5962 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
5963 ICorProfilerCallback8 * This,
5964 /* [in] */ ModuleID moduleId,
5965 /* [in] */ HRESULT hrStatus);
5966
5967 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
5968 ICorProfilerCallback8 * This,
5969 /* [in] */ ModuleID moduleId);
5970
5971 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
5972 ICorProfilerCallback8 * This,
5973 /* [in] */ ModuleID moduleId,
5974 /* [in] */ HRESULT hrStatus);
5975
5976 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
5977 ICorProfilerCallback8 * This,
5978 /* [in] */ ModuleID moduleId,
5979 /* [in] */ AssemblyID AssemblyId);
5980
5981 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
5982 ICorProfilerCallback8 * This,
5983 /* [in] */ ClassID classId);
5984
5985 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
5986 ICorProfilerCallback8 * This,
5987 /* [in] */ ClassID classId,
5988 /* [in] */ HRESULT hrStatus);
5989
5990 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
5991 ICorProfilerCallback8 * This,
5992 /* [in] */ ClassID classId);
5993
5994 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
5995 ICorProfilerCallback8 * This,
5996 /* [in] */ ClassID classId,
5997 /* [in] */ HRESULT hrStatus);
5998
5999 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
6000 ICorProfilerCallback8 * This,
6001 /* [in] */ FunctionID functionId);
6002
6003 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
6004 ICorProfilerCallback8 * This,
6005 /* [in] */ FunctionID functionId,
6006 /* [in] */ BOOL fIsSafeToBlock);
6007
6008 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
6009 ICorProfilerCallback8 * This,
6010 /* [in] */ FunctionID functionId,
6011 /* [in] */ HRESULT hrStatus,
6012 /* [in] */ BOOL fIsSafeToBlock);
6013
6014 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
6015 ICorProfilerCallback8 * This,
6016 /* [in] */ FunctionID functionId,
6017 /* [out] */ BOOL *pbUseCachedFunction);
6018
6019 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
6020 ICorProfilerCallback8 * This,
6021 /* [in] */ FunctionID functionId,
6022 /* [in] */ COR_PRF_JIT_CACHE result);
6023
6024 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
6025 ICorProfilerCallback8 * This,
6026 /* [in] */ FunctionID functionId);
6027
6028 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
6029 ICorProfilerCallback8 * This,
6030 /* [in] */ FunctionID callerId,
6031 /* [in] */ FunctionID calleeId,
6032 /* [out] */ BOOL *pfShouldInline);
6033
6034 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
6035 ICorProfilerCallback8 * This,
6036 /* [in] */ ThreadID threadId);
6037
6038 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
6039 ICorProfilerCallback8 * This,
6040 /* [in] */ ThreadID threadId);
6041
6042 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
6043 ICorProfilerCallback8 * This,
6044 /* [in] */ ThreadID managedThreadId,
6045 /* [in] */ DWORD osThreadId);
6046
6047 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
6048 ICorProfilerCallback8 * This);
6049
6050 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
6051 ICorProfilerCallback8 * This,
6052 /* [in] */ GUID *pCookie,
6053 /* [in] */ BOOL fIsAsync);
6054
6055 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
6056 ICorProfilerCallback8 * This,
6057 /* [in] */ GUID *pCookie,
6058 /* [in] */ BOOL fIsAsync);
6059
6060 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
6061 ICorProfilerCallback8 * This);
6062
6063 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
6064 ICorProfilerCallback8 * This,
6065 /* [in] */ GUID *pCookie,
6066 /* [in] */ BOOL fIsAsync);
6067
6068 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
6069 ICorProfilerCallback8 * This);
6070
6071 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
6072 ICorProfilerCallback8 * This);
6073
6074 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
6075 ICorProfilerCallback8 * This,
6076 /* [in] */ GUID *pCookie,
6077 /* [in] */ BOOL fIsAsync);
6078
6079 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
6080 ICorProfilerCallback8 * This,
6081 /* [in] */ FunctionID functionId,
6082 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6083
6084 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
6085 ICorProfilerCallback8 * This,
6086 /* [in] */ FunctionID functionId,
6087 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6088
6089 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
6090 ICorProfilerCallback8 * This,
6091 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6092
6093 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
6094 ICorProfilerCallback8 * This);
6095
6096 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
6097 ICorProfilerCallback8 * This);
6098
6099 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
6100 ICorProfilerCallback8 * This);
6101
6102 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
6103 ICorProfilerCallback8 * This);
6104
6105 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
6106 ICorProfilerCallback8 * This,
6107 /* [in] */ ThreadID threadId);
6108
6109 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
6110 ICorProfilerCallback8 * This,
6111 /* [in] */ ThreadID threadId);
6112
6113 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
6114 ICorProfilerCallback8 * This,
6115 /* [in] */ ULONG cMovedObjectIDRanges,
6116 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6117 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6118 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6119
6120 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
6121 ICorProfilerCallback8 * This,
6122 /* [in] */ ObjectID objectId,
6123 /* [in] */ ClassID classId);
6124
6125 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
6126 ICorProfilerCallback8 * This,
6127 /* [in] */ ULONG cClassCount,
6128 /* [size_is][in] */ ClassID classIds[ ],
6129 /* [size_is][in] */ ULONG cObjects[ ]);
6130
6131 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
6132 ICorProfilerCallback8 * This,
6133 /* [in] */ ObjectID objectId,
6134 /* [in] */ ClassID classId,
6135 /* [in] */ ULONG cObjectRefs,
6136 /* [size_is][in] */ ObjectID objectRefIds[ ]);
6137
6138 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
6139 ICorProfilerCallback8 * This,
6140 /* [in] */ ULONG cRootRefs,
6141 /* [size_is][in] */ ObjectID rootRefIds[ ]);
6142
6143 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
6144 ICorProfilerCallback8 * This,
6145 /* [in] */ ObjectID thrownObjectId);
6146
6147 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
6148 ICorProfilerCallback8 * This,
6149 /* [in] */ FunctionID functionId);
6150
6151 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
6152 ICorProfilerCallback8 * This);
6153
6154 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
6155 ICorProfilerCallback8 * This,
6156 /* [in] */ FunctionID functionId);
6157
6158 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
6159 ICorProfilerCallback8 * This);
6160
6161 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
6162 ICorProfilerCallback8 * This,
6163 /* [in] */ FunctionID functionId);
6164
6165 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
6166 ICorProfilerCallback8 * This,
6167 /* [in] */ UINT_PTR __unused);
6168
6169 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
6170 ICorProfilerCallback8 * This,
6171 /* [in] */ UINT_PTR __unused);
6172
6173 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
6174 ICorProfilerCallback8 * This,
6175 /* [in] */ FunctionID functionId);
6176
6177 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
6178 ICorProfilerCallback8 * This);
6179
6180 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
6181 ICorProfilerCallback8 * This,
6182 /* [in] */ FunctionID functionId);
6183
6184 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
6185 ICorProfilerCallback8 * This);
6186
6187 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
6188 ICorProfilerCallback8 * This,
6189 /* [in] */ FunctionID functionId,
6190 /* [in] */ ObjectID objectId);
6191
6192 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
6193 ICorProfilerCallback8 * This);
6194
6195 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
6196 ICorProfilerCallback8 * This,
6197 /* [in] */ ClassID wrappedClassId,
6198 /* [in] */ REFGUID implementedIID,
6199 /* [in] */ void *pVTable,
6200 /* [in] */ ULONG cSlots);
6201
6202 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
6203 ICorProfilerCallback8 * This,
6204 /* [in] */ ClassID wrappedClassId,
6205 /* [in] */ REFGUID implementedIID,
6206 /* [in] */ void *pVTable);
6207
6208 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
6209 ICorProfilerCallback8 * This);
6210
6211 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
6212 ICorProfilerCallback8 * This);
6213
6214 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
6215 ICorProfilerCallback8 * This,
6216 /* [in] */ ThreadID threadId,
6217 /* [in] */ ULONG cchName,
6218 /* [annotation][in] */
6219 _In_reads_opt_(cchName) WCHAR name[ ]);
6220
6221 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
6222 ICorProfilerCallback8 * This,
6223 /* [in] */ int cGenerations,
6224 /* [size_is][in] */ BOOL generationCollected[ ],
6225 /* [in] */ COR_PRF_GC_REASON reason);
6226
6227 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
6228 ICorProfilerCallback8 * This,
6229 /* [in] */ ULONG cSurvivingObjectIDRanges,
6230 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
6231 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6232
6233 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
6234 ICorProfilerCallback8 * This);
6235
6236 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
6237 ICorProfilerCallback8 * This,
6238 /* [in] */ DWORD finalizerFlags,
6239 /* [in] */ ObjectID objectID);
6240
6241 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
6242 ICorProfilerCallback8 * This,
6243 /* [in] */ ULONG cRootRefs,
6244 /* [size_is][in] */ ObjectID rootRefIds[ ],
6245 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
6246 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
6247 /* [size_is][in] */ UINT_PTR rootIds[ ]);
6248
6249 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
6250 ICorProfilerCallback8 * This,
6251 /* [in] */ GCHandleID handleId,
6252 /* [in] */ ObjectID initialObjectId);
6253
6254 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
6255 ICorProfilerCallback8 * This,
6256 /* [in] */ GCHandleID handleId);
6257
6258 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
6259 ICorProfilerCallback8 * This,
6260 /* [in] */ IUnknown *pCorProfilerInfoUnk,
6261 /* [in] */ void *pvClientData,
6262 /* [in] */ UINT cbClientData);
6263
6264 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
6265 ICorProfilerCallback8 * This);
6266
6267 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
6268 ICorProfilerCallback8 * This);
6269
6270 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
6271 ICorProfilerCallback8 * This,
6272 /* [in] */ FunctionID functionId,
6273 /* [in] */ ReJITID rejitId,
6274 /* [in] */ BOOL fIsSafeToBlock);
6275
6276 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
6277 ICorProfilerCallback8 * This,
6278 /* [in] */ ModuleID moduleId,
6279 /* [in] */ mdMethodDef methodId,
6280 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
6281
6282 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
6283 ICorProfilerCallback8 * This,
6284 /* [in] */ FunctionID functionId,
6285 /* [in] */ ReJITID rejitId,
6286 /* [in] */ HRESULT hrStatus,
6287 /* [in] */ BOOL fIsSafeToBlock);
6288
6289 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
6290 ICorProfilerCallback8 * This,
6291 /* [in] */ ModuleID moduleId,
6292 /* [in] */ mdMethodDef methodId,
6293 /* [in] */ FunctionID functionId,
6294 /* [in] */ HRESULT hrStatus);
6295
6296 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
6297 ICorProfilerCallback8 * This,
6298 /* [in] */ ULONG cMovedObjectIDRanges,
6299 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6300 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6301 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
6302
6303 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
6304 ICorProfilerCallback8 * This,
6305 /* [in] */ ULONG cSurvivingObjectIDRanges,
6306 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
6307 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
6308
6309 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
6310 ICorProfilerCallback8 * This,
6311 /* [in] */ ULONG cRootRefs,
6312 /* [size_is][in] */ ObjectID keyRefIds[ ],
6313 /* [size_is][in] */ ObjectID valueRefIds[ ],
6314 /* [size_is][in] */ GCHandleID rootIds[ ]);
6315
6316 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
6317 ICorProfilerCallback8 * This,
6318 /* [string][in] */ const WCHAR *wszAssemblyPath,
6319 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
6320
6321 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
6322 ICorProfilerCallback8 * This,
6323 ModuleID moduleId);
6324
6325 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )(
6326 ICorProfilerCallback8 * This,
6327 /* [in] */ FunctionID functionId,
6328 /* [in] */ BOOL fIsSafeToBlock,
6329 /* [in] */ LPCBYTE pILHeader,
6330 /* [in] */ ULONG cbILHeader);
6331
6332 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )(
6333 ICorProfilerCallback8 * This,
6334 /* [in] */ FunctionID functionId,
6335 /* [in] */ HRESULT hrStatus,
6336 /* [in] */ BOOL fIsSafeToBlock);
6337
6338 END_INTERFACE
6339 } ICorProfilerCallback8Vtbl;
6340
6341 interface ICorProfilerCallback8
6342 {
6343 CONST_VTBL struct ICorProfilerCallback8Vtbl *lpVtbl;
6344 };
6345
6346
6347
6348#ifdef COBJMACROS
6349
6350
6351#define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject) \
6352 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
6353
6354#define ICorProfilerCallback8_AddRef(This) \
6355 ( (This)->lpVtbl -> AddRef(This) )
6356
6357#define ICorProfilerCallback8_Release(This) \
6358 ( (This)->lpVtbl -> Release(This) )
6359
6360
6361#define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk) \
6362 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
6363
6364#define ICorProfilerCallback8_Shutdown(This) \
6365 ( (This)->lpVtbl -> Shutdown(This) )
6366
6367#define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId) \
6368 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
6369
6370#define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus) \
6371 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
6372
6373#define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId) \
6374 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
6375
6376#define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
6377 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
6378
6379#define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId) \
6380 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
6381
6382#define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus) \
6383 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
6384
6385#define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId) \
6386 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
6387
6388#define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
6389 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
6390
6391#define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId) \
6392 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
6393
6394#define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus) \
6395 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
6396
6397#define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId) \
6398 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
6399
6400#define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus) \
6401 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
6402
6403#define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
6404 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
6405
6406#define ICorProfilerCallback8_ClassLoadStarted(This,classId) \
6407 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
6408
6409#define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus) \
6410 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
6411
6412#define ICorProfilerCallback8_ClassUnloadStarted(This,classId) \
6413 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
6414
6415#define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus) \
6416 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
6417
6418#define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId) \
6419 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
6420
6421#define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
6422 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
6423
6424#define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
6425 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
6426
6427#define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
6428 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
6429
6430#define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result) \
6431 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
6432
6433#define ICorProfilerCallback8_JITFunctionPitched(This,functionId) \
6434 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
6435
6436#define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline) \
6437 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
6438
6439#define ICorProfilerCallback8_ThreadCreated(This,threadId) \
6440 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
6441
6442#define ICorProfilerCallback8_ThreadDestroyed(This,threadId) \
6443 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
6444
6445#define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
6446 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
6447
6448#define ICorProfilerCallback8_RemotingClientInvocationStarted(This) \
6449 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
6450
6451#define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
6452 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
6453
6454#define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
6455 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
6456
6457#define ICorProfilerCallback8_RemotingClientInvocationFinished(This) \
6458 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
6459
6460#define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
6461 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
6462
6463#define ICorProfilerCallback8_RemotingServerInvocationStarted(This) \
6464 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
6465
6466#define ICorProfilerCallback8_RemotingServerInvocationReturned(This) \
6467 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
6468
6469#define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \
6470 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
6471
6472#define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason) \
6473 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
6474
6475#define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason) \
6476 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
6477
6478#define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \
6479 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
6480
6481#define ICorProfilerCallback8_RuntimeSuspendFinished(This) \
6482 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
6483
6484#define ICorProfilerCallback8_RuntimeSuspendAborted(This) \
6485 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
6486
6487#define ICorProfilerCallback8_RuntimeResumeStarted(This) \
6488 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
6489
6490#define ICorProfilerCallback8_RuntimeResumeFinished(This) \
6491 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
6492
6493#define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId) \
6494 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
6495
6496#define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId) \
6497 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
6498
6499#define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
6500 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
6501
6502#define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId) \
6503 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
6504
6505#define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
6506 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
6507
6508#define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
6509 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
6510
6511#define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \
6512 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
6513
6514#define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId) \
6515 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
6516
6517#define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId) \
6518 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
6519
6520#define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This) \
6521 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
6522
6523#define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId) \
6524 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
6525
6526#define ICorProfilerCallback8_ExceptionSearchFilterLeave(This) \
6527 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
6528
6529#define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId) \
6530 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
6531
6532#define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused) \
6533 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
6534
6535#define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused) \
6536 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
6537
6538#define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId) \
6539 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
6540
6541#define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This) \
6542 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
6543
6544#define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId) \
6545 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
6546
6547#define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \
6548 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
6549
6550#define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId) \
6551 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
6552
6553#define ICorProfilerCallback8_ExceptionCatcherLeave(This) \
6554 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
6555
6556#define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
6557 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
6558
6559#define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
6560 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
6561
6562#define ICorProfilerCallback8_ExceptionCLRCatcherFound(This) \
6563 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
6564
6565#define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This) \
6566 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
6567
6568
6569#define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name) \
6570 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
6571
6572#define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
6573 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
6574
6575#define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
6576 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
6577
6578#define ICorProfilerCallback8_GarbageCollectionFinished(This) \
6579 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
6580
6581#define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
6582 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
6583
6584#define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
6585 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
6586
6587#define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId) \
6588 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
6589
6590#define ICorProfilerCallback8_HandleDestroyed(This,handleId) \
6591 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
6592
6593
6594#define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
6595 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
6596
6597#define ICorProfilerCallback8_ProfilerAttachComplete(This) \
6598 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
6599
6600#define ICorProfilerCallback8_ProfilerDetachSucceeded(This) \
6601 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
6602
6603
6604#define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
6605 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
6606
6607#define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
6608 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
6609
6610#define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
6611 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
6612
6613#define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
6614 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
6615
6616#define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
6617 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
6618
6619#define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
6620 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
6621
6622
6623#define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
6624 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
6625
6626
6627#define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
6628 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
6629
6630
6631#define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId) \
6632 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
6633
6634
6635#define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \
6636 ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) )
6637
6638#define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
6639 ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
6640
6641#endif /* COBJMACROS */
6642
6643
6644#endif /* C style interface */
6645
6646
6647
6648
6649#endif /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */
6650
6651
6652#ifndef __ICorProfilerCallback9_INTERFACE_DEFINED__
6653#define __ICorProfilerCallback9_INTERFACE_DEFINED__
6654
6655/* interface ICorProfilerCallback9 */
6656/* [local][unique][uuid][object] */
6657
6658
6659EXTERN_C const IID IID_ICorProfilerCallback9;
6660
6661#if defined(__cplusplus) && !defined(CINTERFACE)
6662
6663 MIDL_INTERFACE("27583EC3-C8F5-482F-8052-194B8CE4705A")
6664 ICorProfilerCallback9 : public ICorProfilerCallback8
6665 {
6666 public:
6667 virtual HRESULT STDMETHODCALLTYPE DynamicMethodUnloaded(
6668 /* [in] */ FunctionID functionId) = 0;
6669
6670 };
6671
6672
6673#else /* C style interface */
6674
6675 typedef struct ICorProfilerCallback9Vtbl
6676 {
6677 BEGIN_INTERFACE
6678
6679 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
6680 ICorProfilerCallback9 * This,
6681 /* [in] */ REFIID riid,
6682 /* [annotation][iid_is][out] */
6683 _COM_Outptr_ void **ppvObject);
6684
6685 ULONG ( STDMETHODCALLTYPE *AddRef )(
6686 ICorProfilerCallback9 * This);
6687
6688 ULONG ( STDMETHODCALLTYPE *Release )(
6689 ICorProfilerCallback9 * This);
6690
6691 HRESULT ( STDMETHODCALLTYPE *Initialize )(
6692 ICorProfilerCallback9 * This,
6693 /* [in] */ IUnknown *pICorProfilerInfoUnk);
6694
6695 HRESULT ( STDMETHODCALLTYPE *Shutdown )(
6696 ICorProfilerCallback9 * This);
6697
6698 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )(
6699 ICorProfilerCallback9 * This,
6700 /* [in] */ AppDomainID appDomainId);
6701
6702 HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )(
6703 ICorProfilerCallback9 * This,
6704 /* [in] */ AppDomainID appDomainId,
6705 /* [in] */ HRESULT hrStatus);
6706
6707 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )(
6708 ICorProfilerCallback9 * This,
6709 /* [in] */ AppDomainID appDomainId);
6710
6711 HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )(
6712 ICorProfilerCallback9 * This,
6713 /* [in] */ AppDomainID appDomainId,
6714 /* [in] */ HRESULT hrStatus);
6715
6716 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )(
6717 ICorProfilerCallback9 * This,
6718 /* [in] */ AssemblyID assemblyId);
6719
6720 HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )(
6721 ICorProfilerCallback9 * This,
6722 /* [in] */ AssemblyID assemblyId,
6723 /* [in] */ HRESULT hrStatus);
6724
6725 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )(
6726 ICorProfilerCallback9 * This,
6727 /* [in] */ AssemblyID assemblyId);
6728
6729 HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )(
6730 ICorProfilerCallback9 * This,
6731 /* [in] */ AssemblyID assemblyId,
6732 /* [in] */ HRESULT hrStatus);
6733
6734 HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )(
6735 ICorProfilerCallback9 * This,
6736 /* [in] */ ModuleID moduleId);
6737
6738 HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )(
6739 ICorProfilerCallback9 * This,
6740 /* [in] */ ModuleID moduleId,
6741 /* [in] */ HRESULT hrStatus);
6742
6743 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )(
6744 ICorProfilerCallback9 * This,
6745 /* [in] */ ModuleID moduleId);
6746
6747 HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )(
6748 ICorProfilerCallback9 * This,
6749 /* [in] */ ModuleID moduleId,
6750 /* [in] */ HRESULT hrStatus);
6751
6752 HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )(
6753 ICorProfilerCallback9 * This,
6754 /* [in] */ ModuleID moduleId,
6755 /* [in] */ AssemblyID AssemblyId);
6756
6757 HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )(
6758 ICorProfilerCallback9 * This,
6759 /* [in] */ ClassID classId);
6760
6761 HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )(
6762 ICorProfilerCallback9 * This,
6763 /* [in] */ ClassID classId,
6764 /* [in] */ HRESULT hrStatus);
6765
6766 HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )(
6767 ICorProfilerCallback9 * This,
6768 /* [in] */ ClassID classId);
6769
6770 HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )(
6771 ICorProfilerCallback9 * This,
6772 /* [in] */ ClassID classId,
6773 /* [in] */ HRESULT hrStatus);
6774
6775 HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )(
6776 ICorProfilerCallback9 * This,
6777 /* [in] */ FunctionID functionId);
6778
6779 HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )(
6780 ICorProfilerCallback9 * This,
6781 /* [in] */ FunctionID functionId,
6782 /* [in] */ BOOL fIsSafeToBlock);
6783
6784 HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )(
6785 ICorProfilerCallback9 * This,
6786 /* [in] */ FunctionID functionId,
6787 /* [in] */ HRESULT hrStatus,
6788 /* [in] */ BOOL fIsSafeToBlock);
6789
6790 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )(
6791 ICorProfilerCallback9 * This,
6792 /* [in] */ FunctionID functionId,
6793 /* [out] */ BOOL *pbUseCachedFunction);
6794
6795 HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )(
6796 ICorProfilerCallback9 * This,
6797 /* [in] */ FunctionID functionId,
6798 /* [in] */ COR_PRF_JIT_CACHE result);
6799
6800 HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )(
6801 ICorProfilerCallback9 * This,
6802 /* [in] */ FunctionID functionId);
6803
6804 HRESULT ( STDMETHODCALLTYPE *JITInlining )(
6805 ICorProfilerCallback9 * This,
6806 /* [in] */ FunctionID callerId,
6807 /* [in] */ FunctionID calleeId,
6808 /* [out] */ BOOL *pfShouldInline);
6809
6810 HRESULT ( STDMETHODCALLTYPE *ThreadCreated )(
6811 ICorProfilerCallback9 * This,
6812 /* [in] */ ThreadID threadId);
6813
6814 HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )(
6815 ICorProfilerCallback9 * This,
6816 /* [in] */ ThreadID threadId);
6817
6818 HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )(
6819 ICorProfilerCallback9 * This,
6820 /* [in] */ ThreadID managedThreadId,
6821 /* [in] */ DWORD osThreadId);
6822
6823 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )(
6824 ICorProfilerCallback9 * This);
6825
6826 HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )(
6827 ICorProfilerCallback9 * This,
6828 /* [in] */ GUID *pCookie,
6829 /* [in] */ BOOL fIsAsync);
6830
6831 HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )(
6832 ICorProfilerCallback9 * This,
6833 /* [in] */ GUID *pCookie,
6834 /* [in] */ BOOL fIsAsync);
6835
6836 HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )(
6837 ICorProfilerCallback9 * This);
6838
6839 HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )(
6840 ICorProfilerCallback9 * This,
6841 /* [in] */ GUID *pCookie,
6842 /* [in] */ BOOL fIsAsync);
6843
6844 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )(
6845 ICorProfilerCallback9 * This);
6846
6847 HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )(
6848 ICorProfilerCallback9 * This);
6849
6850 HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )(
6851 ICorProfilerCallback9 * This,
6852 /* [in] */ GUID *pCookie,
6853 /* [in] */ BOOL fIsAsync);
6854
6855 HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )(
6856 ICorProfilerCallback9 * This,
6857 /* [in] */ FunctionID functionId,
6858 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6859
6860 HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )(
6861 ICorProfilerCallback9 * This,
6862 /* [in] */ FunctionID functionId,
6863 /* [in] */ COR_PRF_TRANSITION_REASON reason);
6864
6865 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )(
6866 ICorProfilerCallback9 * This,
6867 /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6868
6869 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )(
6870 ICorProfilerCallback9 * This);
6871
6872 HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )(
6873 ICorProfilerCallback9 * This);
6874
6875 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )(
6876 ICorProfilerCallback9 * This);
6877
6878 HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )(
6879 ICorProfilerCallback9 * This);
6880
6881 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )(
6882 ICorProfilerCallback9 * This,
6883 /* [in] */ ThreadID threadId);
6884
6885 HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )(
6886 ICorProfilerCallback9 * This,
6887 /* [in] */ ThreadID threadId);
6888
6889 HRESULT ( STDMETHODCALLTYPE *MovedReferences )(
6890 ICorProfilerCallback9 * This,
6891 /* [in] */ ULONG cMovedObjectIDRanges,
6892 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
6893 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
6894 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
6895
6896 HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )(
6897 ICorProfilerCallback9 * This,
6898 /* [in] */ ObjectID objectId,
6899 /* [in] */ ClassID classId);
6900
6901 HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )(
6902 ICorProfilerCallback9 * This,
6903 /* [in] */ ULONG cClassCount,
6904 /* [size_is][in] */ ClassID classIds[ ],
6905 /* [size_is][in] */ ULONG cObjects[ ]);
6906
6907 HRESULT ( STDMETHODCALLTYPE *ObjectReferences )(
6908 ICorProfilerCallback9 * This,
6909 /* [in] */ ObjectID objectId,
6910 /* [in] */ ClassID classId,
6911 /* [in] */ ULONG cObjectRefs,
6912 /* [size_is][in] */ ObjectID objectRefIds[ ]);
6913
6914 HRESULT ( STDMETHODCALLTYPE *RootReferences )(
6915 ICorProfilerCallback9 * This,
6916 /* [in] */ ULONG cRootRefs,
6917 /* [size_is][in] */ ObjectID rootRefIds[ ]);
6918
6919 HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )(
6920 ICorProfilerCallback9 * This,
6921 /* [in] */ ObjectID thrownObjectId);
6922
6923 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )(
6924 ICorProfilerCallback9 * This,
6925 /* [in] */ FunctionID functionId);
6926
6927 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )(
6928 ICorProfilerCallback9 * This);
6929
6930 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )(
6931 ICorProfilerCallback9 * This,
6932 /* [in] */ FunctionID functionId);
6933
6934 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )(
6935 ICorProfilerCallback9 * This);
6936
6937 HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )(
6938 ICorProfilerCallback9 * This,
6939 /* [in] */ FunctionID functionId);
6940
6941 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )(
6942 ICorProfilerCallback9 * This,
6943 /* [in] */ UINT_PTR __unused);
6944
6945 HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )(
6946 ICorProfilerCallback9 * This,
6947 /* [in] */ UINT_PTR __unused);
6948
6949 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )(
6950 ICorProfilerCallback9 * This,
6951 /* [in] */ FunctionID functionId);
6952
6953 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )(
6954 ICorProfilerCallback9 * This);
6955
6956 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )(
6957 ICorProfilerCallback9 * This,
6958 /* [in] */ FunctionID functionId);
6959
6960 HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )(
6961 ICorProfilerCallback9 * This);
6962
6963 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )(
6964 ICorProfilerCallback9 * This,
6965 /* [in] */ FunctionID functionId,
6966 /* [in] */ ObjectID objectId);
6967
6968 HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )(
6969 ICorProfilerCallback9 * This);
6970
6971 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )(
6972 ICorProfilerCallback9 * This,
6973 /* [in] */ ClassID wrappedClassId,
6974 /* [in] */ REFGUID implementedIID,
6975 /* [in] */ void *pVTable,
6976 /* [in] */ ULONG cSlots);
6977
6978 HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )(
6979 ICorProfilerCallback9 * This,
6980 /* [in] */ ClassID wrappedClassId,
6981 /* [in] */ REFGUID implementedIID,
6982 /* [in] */ void *pVTable);
6983
6984 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )(
6985 ICorProfilerCallback9 * This);
6986
6987 HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )(
6988 ICorProfilerCallback9 * This);
6989
6990 HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )(
6991 ICorProfilerCallback9 * This,
6992 /* [in] */ ThreadID threadId,
6993 /* [in] */ ULONG cchName,
6994 /* [annotation][in] */
6995 _In_reads_opt_(cchName) WCHAR name[ ]);
6996
6997 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )(
6998 ICorProfilerCallback9 * This,
6999 /* [in] */ int cGenerations,
7000 /* [size_is][in] */ BOOL generationCollected[ ],
7001 /* [in] */ COR_PRF_GC_REASON reason);
7002
7003 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )(
7004 ICorProfilerCallback9 * This,
7005 /* [in] */ ULONG cSurvivingObjectIDRanges,
7006 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
7007 /* [size_is][in] */ ULONG cObjectIDRangeLength[ ]);
7008
7009 HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )(
7010 ICorProfilerCallback9 * This);
7011
7012 HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )(
7013 ICorProfilerCallback9 * This,
7014 /* [in] */ DWORD finalizerFlags,
7015 /* [in] */ ObjectID objectID);
7016
7017 HRESULT ( STDMETHODCALLTYPE *RootReferences2 )(
7018 ICorProfilerCallback9 * This,
7019 /* [in] */ ULONG cRootRefs,
7020 /* [size_is][in] */ ObjectID rootRefIds[ ],
7021 /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[ ],
7022 /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[ ],
7023 /* [size_is][in] */ UINT_PTR rootIds[ ]);
7024
7025 HRESULT ( STDMETHODCALLTYPE *HandleCreated )(
7026 ICorProfilerCallback9 * This,
7027 /* [in] */ GCHandleID handleId,
7028 /* [in] */ ObjectID initialObjectId);
7029
7030 HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )(
7031 ICorProfilerCallback9 * This,
7032 /* [in] */ GCHandleID handleId);
7033
7034 HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )(
7035 ICorProfilerCallback9 * This,
7036 /* [in] */ IUnknown *pCorProfilerInfoUnk,
7037 /* [in] */ void *pvClientData,
7038 /* [in] */ UINT cbClientData);
7039
7040 HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )(
7041 ICorProfilerCallback9 * This);
7042
7043 HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )(
7044 ICorProfilerCallback9 * This);
7045
7046 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )(
7047 ICorProfilerCallback9 * This,
7048 /* [in] */ FunctionID functionId,
7049 /* [in] */ ReJITID rejitId,
7050 /* [in] */ BOOL fIsSafeToBlock);
7051
7052 HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )(
7053 ICorProfilerCallback9 * This,
7054 /* [in] */ ModuleID moduleId,
7055 /* [in] */ mdMethodDef methodId,
7056 /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
7057
7058 HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )(
7059 ICorProfilerCallback9 * This,
7060 /* [in] */ FunctionID functionId,
7061 /* [in] */ ReJITID rejitId,
7062 /* [in] */ HRESULT hrStatus,
7063 /* [in] */ BOOL fIsSafeToBlock);
7064
7065 HRESULT ( STDMETHODCALLTYPE *ReJITError )(
7066 ICorProfilerCallback9 * This,
7067 /* [in] */ ModuleID moduleId,
7068 /* [in] */ mdMethodDef methodId,
7069 /* [in] */ FunctionID functionId,
7070 /* [in] */ HRESULT hrStatus);
7071
7072 HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )(
7073 ICorProfilerCallback9 * This,
7074 /* [in] */ ULONG cMovedObjectIDRanges,
7075 /* [size_is][in] */ ObjectID oldObjectIDRangeStart[ ],
7076 /* [size_is][in] */ ObjectID newObjectIDRangeStart[ ],
7077 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
7078
7079 HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )(
7080 ICorProfilerCallback9 * This,
7081 /* [in] */ ULONG cSurvivingObjectIDRanges,
7082 /* [size_is][in] */ ObjectID objectIDRangeStart[ ],
7083 /* [size_is][in] */ SIZE_T cObjectIDRangeLength[ ]);
7084
7085 HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )(
7086 ICorProfilerCallback9 * This,
7087 /* [in] */ ULONG cRootRefs,
7088 /* [size_is][in] */ ObjectID keyRefIds[ ],
7089 /* [size_is][in] */ ObjectID valueRefIds[ ],
7090 /* [size_is][in] */ GCHandleID rootIds[ ]);
7091
7092 HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )(
7093 ICorProfilerCallback9 * This,
7094 /* [string][in] */ const WCHAR *wszAssemblyPath,
7095 /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
7096
7097 HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )(
7098 ICorProfilerCallback9 * This,
7099 ModuleID moduleId);
7100
7101 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )(
7102 ICorProfilerCallback9 * This,
7103 /* [in] */ FunctionID functionId,
7104 /* [in] */ BOOL fIsSafeToBlock,
7105 /* [in] */ LPCBYTE pILHeader,
7106 /* [in] */ ULONG cbILHeader);
7107
7108 HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )(
7109 ICorProfilerCallback9 * This,
7110 /* [in] */ FunctionID functionId,
7111 /* [in] */ HRESULT hrStatus,
7112 /* [in] */ BOOL fIsSafeToBlock);
7113
7114 HRESULT ( STDMETHODCALLTYPE *DynamicMethodUnloaded )(
7115 ICorProfilerCallback9 * This,
7116 /* [in] */ FunctionID functionId);
7117
7118 END_INTERFACE
7119 } ICorProfilerCallback9Vtbl;
7120
7121 interface ICorProfilerCallback9
7122 {
7123 CONST_VTBL struct ICorProfilerCallback9Vtbl *lpVtbl;
7124 };
7125
7126
7127
7128#ifdef COBJMACROS
7129
7130
7131#define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject) \
7132 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7133
7134#define ICorProfilerCallback9_AddRef(This) \
7135 ( (This)->lpVtbl -> AddRef(This) )
7136
7137#define ICorProfilerCallback9_Release(This) \
7138 ( (This)->lpVtbl -> Release(This) )
7139
7140
7141#define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk) \
7142 ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) )
7143
7144#define ICorProfilerCallback9_Shutdown(This) \
7145 ( (This)->lpVtbl -> Shutdown(This) )
7146
7147#define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId) \
7148 ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) )
7149
7150#define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus) \
7151 ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) )
7152
7153#define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId) \
7154 ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) )
7155
7156#define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus) \
7157 ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) )
7158
7159#define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId) \
7160 ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) )
7161
7162#define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus) \
7163 ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) )
7164
7165#define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId) \
7166 ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) )
7167
7168#define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus) \
7169 ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) )
7170
7171#define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId) \
7172 ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) )
7173
7174#define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus) \
7175 ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) )
7176
7177#define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId) \
7178 ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) )
7179
7180#define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus) \
7181 ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) )
7182
7183#define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
7184 ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) )
7185
7186#define ICorProfilerCallback9_ClassLoadStarted(This,classId) \
7187 ( (This)->lpVtbl -> ClassLoadStarted(This,classId) )
7188
7189#define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus) \
7190 ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) )
7191
7192#define ICorProfilerCallback9_ClassUnloadStarted(This,classId) \
7193 ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) )
7194
7195#define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus) \
7196 ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) )
7197
7198#define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId) \
7199 ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) )
7200
7201#define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock) \
7202 ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) )
7203
7204#define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
7205 ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
7206
7207#define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) \
7208 ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) )
7209
7210#define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result) \
7211 ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) )
7212
7213#define ICorProfilerCallback9_JITFunctionPitched(This,functionId) \
7214 ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) )
7215
7216#define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline) \
7217 ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) )
7218
7219#define ICorProfilerCallback9_ThreadCreated(This,threadId) \
7220 ( (This)->lpVtbl -> ThreadCreated(This,threadId) )
7221
7222#define ICorProfilerCallback9_ThreadDestroyed(This,threadId) \
7223 ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) )
7224
7225#define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
7226 ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) )
7227
7228#define ICorProfilerCallback9_RemotingClientInvocationStarted(This) \
7229 ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) )
7230
7231#define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync) \
7232 ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) )
7233
7234#define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync) \
7235 ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) )
7236
7237#define ICorProfilerCallback9_RemotingClientInvocationFinished(This) \
7238 ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) )
7239
7240#define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync) \
7241 ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) )
7242
7243#define ICorProfilerCallback9_RemotingServerInvocationStarted(This) \
7244 ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) )
7245
7246#define ICorProfilerCallback9_RemotingServerInvocationReturned(This) \
7247 ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) )
7248
7249#define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \
7250 ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) )
7251
7252#define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason) \
7253 ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) )
7254
7255#define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason) \
7256 ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) )
7257
7258#define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \
7259 ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) )
7260
7261#define ICorProfilerCallback9_RuntimeSuspendFinished(This) \
7262 ( (This)->lpVtbl -> RuntimeSuspendFinished(This) )
7263
7264#define ICorProfilerCallback9_RuntimeSuspendAborted(This) \
7265 ( (This)->lpVtbl -> RuntimeSuspendAborted(This) )
7266
7267#define ICorProfilerCallback9_RuntimeResumeStarted(This) \
7268 ( (This)->lpVtbl -> RuntimeResumeStarted(This) )
7269
7270#define ICorProfilerCallback9_RuntimeResumeFinished(This) \
7271 ( (This)->lpVtbl -> RuntimeResumeFinished(This) )
7272
7273#define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId) \
7274 ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) )
7275
7276#define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId) \
7277 ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) )
7278
7279#define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
7280 ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
7281
7282#define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId) \
7283 ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) )
7284
7285#define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) \
7286 ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) )
7287
7288#define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) \
7289 ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) )
7290
7291#define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \
7292 ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) )
7293
7294#define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId) \
7295 ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) )
7296
7297#define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId) \
7298 ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) )
7299
7300#define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This) \
7301 ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) )
7302
7303#define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId) \
7304 ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) )
7305
7306#define ICorProfilerCallback9_ExceptionSearchFilterLeave(This) \
7307 ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) )
7308
7309#define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId) \
7310 ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) )
7311
7312#define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused) \
7313 ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) )
7314
7315#define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused) \
7316 ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) )
7317
7318#define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId) \
7319 ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) )
7320
7321#define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This) \
7322 ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) )
7323
7324#define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId) \
7325 ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) )
7326
7327#define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \
7328 ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) )
7329
7330#define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId) \
7331 ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) )
7332
7333#define ICorProfilerCallback9_ExceptionCatcherLeave(This) \
7334 ( (This)->lpVtbl -> ExceptionCatcherLeave(This) )
7335
7336#define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
7337 ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) )
7338
7339#define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) \
7340 ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) )
7341
7342#define ICorProfilerCallback9_ExceptionCLRCatcherFound(This) \
7343 ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) )
7344
7345#define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This) \
7346 ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) )
7347
7348
7349#define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name) \
7350 ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) )
7351
7352#define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason) \
7353 ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) )
7354
7355#define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
7356 ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
7357
7358#define ICorProfilerCallback9_GarbageCollectionFinished(This) \
7359 ( (This)->lpVtbl -> GarbageCollectionFinished(This) )
7360
7361#define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID) \
7362 ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) )
7363
7364#define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) \
7365 ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) )
7366
7367#define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId) \
7368 ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) )
7369
7370#define ICorProfilerCallback9_HandleDestroyed(This,handleId) \
7371 ( (This)->lpVtbl -> HandleDestroyed(This,handleId) )
7372
7373
7374#define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) \
7375 ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) )
7376
7377#define ICorProfilerCallback9_ProfilerAttachComplete(This) \
7378 ( (This)->lpVtbl -> ProfilerAttachComplete(This) )
7379
7380#define ICorProfilerCallback9_ProfilerDetachSucceeded(This) \
7381 ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) )
7382
7383
7384#define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) \
7385 ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) )
7386
7387#define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl) \
7388 ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) )
7389
7390#define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
7391 ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) )
7392
7393#define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus) \
7394 ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) )
7395
7396#define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) \
7397 ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) )
7398
7399#define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) \
7400 ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) )
7401
7402
7403#define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) \
7404 ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) )
7405
7406
7407#define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) \
7408 ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) )
7409
7410
7411#define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId) \
7412 ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) )
7413
7414
7415#define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) \
7416 ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) )
7417
7418#define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) \
7419 ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) )
7420
7421
7422#define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId) \
7423 ( (This)->lpVtbl -> DynamicMethodUnloaded(This,functionId) )
7424
7425#endif /* COBJMACROS */
7426
7427
7428#endif /* C style interface */
7429
7430
7431
7432
7433#endif /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */
7434
7435
7436/* interface __MIDL_itf_corprof_0000_0009 */
7437/* [local] */
7438
7439typedef /* [public] */
7440enum __MIDL___MIDL_itf_corprof_0000_0009_0001
7441 {
7442 COR_PRF_CODEGEN_DISABLE_INLINING = 0x1,
7443 COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS = 0x2
7444 } COR_PRF_CODEGEN_FLAGS;
7445
7446
7447
7448extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_c_ifspec;
7449extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_s_ifspec;
7450
7451#ifndef __ICorProfilerInfo_INTERFACE_DEFINED__
7452#define __ICorProfilerInfo_INTERFACE_DEFINED__
7453
7454/* interface ICorProfilerInfo */
7455/* [local][unique][uuid][object] */
7456
7457
7458EXTERN_C const IID IID_ICorProfilerInfo;
7459
7460#if defined(__cplusplus) && !defined(CINTERFACE)
7461
7462 MIDL_INTERFACE("28B5557D-3F3F-48b4-90B2-5F9EEA2F6C48")
7463 ICorProfilerInfo : public IUnknown
7464 {
7465 public:
7466 virtual HRESULT STDMETHODCALLTYPE GetClassFromObject(
7467 /* [in] */ ObjectID objectId,
7468 /* [out] */ ClassID *pClassId) = 0;
7469
7470 virtual HRESULT STDMETHODCALLTYPE GetClassFromToken(
7471 /* [in] */ ModuleID moduleId,
7472 /* [in] */ mdTypeDef typeDef,
7473 /* [out] */ ClassID *pClassId) = 0;
7474
7475 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo(
7476 /* [in] */ FunctionID functionId,
7477 /* [out] */ LPCBYTE *pStart,
7478 /* [out] */ ULONG *pcSize) = 0;
7479
7480 virtual HRESULT STDMETHODCALLTYPE GetEventMask(
7481 /* [out] */ DWORD *pdwEvents) = 0;
7482
7483 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP(
7484 /* [in] */ LPCBYTE ip,
7485 /* [out] */ FunctionID *pFunctionId) = 0;
7486
7487 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken(
7488 /* [in] */ ModuleID moduleId,
7489 /* [in] */ mdToken token,
7490 /* [out] */ FunctionID *pFunctionId) = 0;
7491
7492 virtual HRESULT STDMETHODCALLTYPE GetHandleFromThread(
7493 /* [in] */ ThreadID threadId,
7494 /* [out] */ HANDLE *phThread) = 0;
7495
7496 virtual HRESULT STDMETHODCALLTYPE GetObjectSize(
7497 /* [in] */ ObjectID objectId,
7498 /* [out] */ ULONG *pcSize) = 0;
7499
7500 virtual HRESULT STDMETHODCALLTYPE IsArrayClass(
7501 /* [in] */ ClassID classId,
7502 /* [out] */ CorElementType *pBaseElemType,
7503 /* [out] */ ClassID *pBaseClassId,
7504 /* [out] */ ULONG *pcRank) = 0;
7505
7506 virtual HRESULT STDMETHODCALLTYPE GetThreadInfo(
7507 /* [in] */ ThreadID threadId,
7508 /* [out] */ DWORD *pdwWin32ThreadId) = 0;
7509
7510 virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadID(
7511 /* [out] */ ThreadID *pThreadId) = 0;
7512
7513 virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo(
7514 /* [in] */ ClassID classId,
7515 /* [out] */ ModuleID *pModuleId,
7516 /* [out] */ mdTypeDef *pTypeDefToken) = 0;
7517
7518 virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo(
7519 /* [in] */ FunctionID functionId,
7520 /* [out] */ ClassID *pClassId,
7521 /* [out] */ ModuleID *pModuleId,
7522 /* [out] */ mdToken *pToken) = 0;
7523
7524 virtual HRESULT STDMETHODCALLTYPE SetEventMask(
7525 /* [in] */ DWORD dwEvents) = 0;
7526
7527 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks(
7528 /* [in] */ FunctionEnter *pFuncEnter,
7529 /* [in] */ FunctionLeave *pFuncLeave,
7530 /* [in] */ FunctionTailcall *pFuncTailcall) = 0;
7531
7532 virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper(
7533 /* [in] */ FunctionIDMapper *pFunc) = 0;
7534
7535 virtual HRESULT STDMETHODCALLTYPE GetTokenAndMetaDataFromFunction(
7536 /* [in] */ FunctionID functionId,
7537 /* [in] */ REFIID riid,
7538 /* [out] */ IUnknown **ppImport,
7539 /* [out] */ mdToken *pToken) = 0;
7540
7541 virtual HRESULT STDMETHODCALLTYPE GetModuleInfo(
7542 /* [in] */ ModuleID moduleId,
7543 /* [out] */ LPCBYTE *ppBaseLoadAddress,
7544 /* [in] */ ULONG cchName,
7545 /* [out] */ ULONG *pcchName,
7546 /* [annotation][out] */
7547 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7548 /* [out] */ AssemblyID *pAssemblyId) = 0;
7549
7550 virtual HRESULT STDMETHODCALLTYPE GetModuleMetaData(
7551 /* [in] */ ModuleID moduleId,
7552 /* [in] */ DWORD dwOpenFlags,
7553 /* [in] */ REFIID riid,
7554 /* [out] */ IUnknown **ppOut) = 0;
7555
7556 virtual HRESULT STDMETHODCALLTYPE GetILFunctionBody(
7557 /* [in] */ ModuleID moduleId,
7558 /* [in] */ mdMethodDef methodId,
7559 /* [out] */ LPCBYTE *ppMethodHeader,
7560 /* [out] */ ULONG *pcbMethodSize) = 0;
7561
7562 virtual HRESULT STDMETHODCALLTYPE GetILFunctionBodyAllocator(
7563 /* [in] */ ModuleID moduleId,
7564 /* [out] */ IMethodMalloc **ppMalloc) = 0;
7565
7566 virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody(
7567 /* [in] */ ModuleID moduleId,
7568 /* [in] */ mdMethodDef methodid,
7569 /* [in] */ LPCBYTE pbNewILMethodHeader) = 0;
7570
7571 virtual HRESULT STDMETHODCALLTYPE GetAppDomainInfo(
7572 /* [in] */ AppDomainID appDomainId,
7573 /* [in] */ ULONG cchName,
7574 /* [out] */ ULONG *pcchName,
7575 /* [annotation][out] */
7576 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7577 /* [out] */ ProcessID *pProcessId) = 0;
7578
7579 virtual HRESULT STDMETHODCALLTYPE GetAssemblyInfo(
7580 /* [in] */ AssemblyID assemblyId,
7581 /* [in] */ ULONG cchName,
7582 /* [out] */ ULONG *pcchName,
7583 /* [annotation][out] */
7584 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7585 /* [out] */ AppDomainID *pAppDomainId,
7586 /* [out] */ ModuleID *pModuleId) = 0;
7587
7588 virtual HRESULT STDMETHODCALLTYPE SetFunctionReJIT(
7589 /* [in] */ FunctionID functionId) = 0;
7590
7591 virtual HRESULT STDMETHODCALLTYPE ForceGC( void) = 0;
7592
7593 virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap(
7594 /* [in] */ FunctionID functionId,
7595 /* [in] */ BOOL fStartJit,
7596 /* [in] */ ULONG cILMapEntries,
7597 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]) = 0;
7598
7599 virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionInterface(
7600 /* [out] */ IUnknown **ppicd) = 0;
7601
7602 virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionIThisThread(
7603 /* [out] */ IUnknown **ppicd) = 0;
7604
7605 virtual HRESULT STDMETHODCALLTYPE GetThreadContext(
7606 /* [in] */ ThreadID threadId,
7607 /* [out] */ ContextID *pContextId) = 0;
7608
7609 virtual HRESULT STDMETHODCALLTYPE BeginInprocDebugging(
7610 /* [in] */ BOOL fThisThreadOnly,
7611 /* [out] */ DWORD *pdwProfilerContext) = 0;
7612
7613 virtual HRESULT STDMETHODCALLTYPE EndInprocDebugging(
7614 /* [in] */ DWORD dwProfilerContext) = 0;
7615
7616 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping(
7617 /* [in] */ FunctionID functionId,
7618 /* [in] */ ULONG32 cMap,
7619 /* [out] */ ULONG32 *pcMap,
7620 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
7621
7622 };
7623
7624
7625#else /* C style interface */
7626
7627 typedef struct ICorProfilerInfoVtbl
7628 {
7629 BEGIN_INTERFACE
7630
7631 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
7632 ICorProfilerInfo * This,
7633 /* [in] */ REFIID riid,
7634 /* [annotation][iid_is][out] */
7635 _COM_Outptr_ void **ppvObject);
7636
7637 ULONG ( STDMETHODCALLTYPE *AddRef )(
7638 ICorProfilerInfo * This);
7639
7640 ULONG ( STDMETHODCALLTYPE *Release )(
7641 ICorProfilerInfo * This);
7642
7643 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
7644 ICorProfilerInfo * This,
7645 /* [in] */ ObjectID objectId,
7646 /* [out] */ ClassID *pClassId);
7647
7648 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
7649 ICorProfilerInfo * This,
7650 /* [in] */ ModuleID moduleId,
7651 /* [in] */ mdTypeDef typeDef,
7652 /* [out] */ ClassID *pClassId);
7653
7654 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
7655 ICorProfilerInfo * This,
7656 /* [in] */ FunctionID functionId,
7657 /* [out] */ LPCBYTE *pStart,
7658 /* [out] */ ULONG *pcSize);
7659
7660 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
7661 ICorProfilerInfo * This,
7662 /* [out] */ DWORD *pdwEvents);
7663
7664 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
7665 ICorProfilerInfo * This,
7666 /* [in] */ LPCBYTE ip,
7667 /* [out] */ FunctionID *pFunctionId);
7668
7669 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
7670 ICorProfilerInfo * This,
7671 /* [in] */ ModuleID moduleId,
7672 /* [in] */ mdToken token,
7673 /* [out] */ FunctionID *pFunctionId);
7674
7675 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
7676 ICorProfilerInfo * This,
7677 /* [in] */ ThreadID threadId,
7678 /* [out] */ HANDLE *phThread);
7679
7680 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
7681 ICorProfilerInfo * This,
7682 /* [in] */ ObjectID objectId,
7683 /* [out] */ ULONG *pcSize);
7684
7685 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
7686 ICorProfilerInfo * This,
7687 /* [in] */ ClassID classId,
7688 /* [out] */ CorElementType *pBaseElemType,
7689 /* [out] */ ClassID *pBaseClassId,
7690 /* [out] */ ULONG *pcRank);
7691
7692 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
7693 ICorProfilerInfo * This,
7694 /* [in] */ ThreadID threadId,
7695 /* [out] */ DWORD *pdwWin32ThreadId);
7696
7697 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
7698 ICorProfilerInfo * This,
7699 /* [out] */ ThreadID *pThreadId);
7700
7701 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
7702 ICorProfilerInfo * This,
7703 /* [in] */ ClassID classId,
7704 /* [out] */ ModuleID *pModuleId,
7705 /* [out] */ mdTypeDef *pTypeDefToken);
7706
7707 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
7708 ICorProfilerInfo * This,
7709 /* [in] */ FunctionID functionId,
7710 /* [out] */ ClassID *pClassId,
7711 /* [out] */ ModuleID *pModuleId,
7712 /* [out] */ mdToken *pToken);
7713
7714 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
7715 ICorProfilerInfo * This,
7716 /* [in] */ DWORD dwEvents);
7717
7718 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
7719 ICorProfilerInfo * This,
7720 /* [in] */ FunctionEnter *pFuncEnter,
7721 /* [in] */ FunctionLeave *pFuncLeave,
7722 /* [in] */ FunctionTailcall *pFuncTailcall);
7723
7724 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
7725 ICorProfilerInfo * This,
7726 /* [in] */ FunctionIDMapper *pFunc);
7727
7728 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
7729 ICorProfilerInfo * This,
7730 /* [in] */ FunctionID functionId,
7731 /* [in] */ REFIID riid,
7732 /* [out] */ IUnknown **ppImport,
7733 /* [out] */ mdToken *pToken);
7734
7735 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
7736 ICorProfilerInfo * This,
7737 /* [in] */ ModuleID moduleId,
7738 /* [out] */ LPCBYTE *ppBaseLoadAddress,
7739 /* [in] */ ULONG cchName,
7740 /* [out] */ ULONG *pcchName,
7741 /* [annotation][out] */
7742 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7743 /* [out] */ AssemblyID *pAssemblyId);
7744
7745 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
7746 ICorProfilerInfo * This,
7747 /* [in] */ ModuleID moduleId,
7748 /* [in] */ DWORD dwOpenFlags,
7749 /* [in] */ REFIID riid,
7750 /* [out] */ IUnknown **ppOut);
7751
7752 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
7753 ICorProfilerInfo * This,
7754 /* [in] */ ModuleID moduleId,
7755 /* [in] */ mdMethodDef methodId,
7756 /* [out] */ LPCBYTE *ppMethodHeader,
7757 /* [out] */ ULONG *pcbMethodSize);
7758
7759 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
7760 ICorProfilerInfo * This,
7761 /* [in] */ ModuleID moduleId,
7762 /* [out] */ IMethodMalloc **ppMalloc);
7763
7764 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
7765 ICorProfilerInfo * This,
7766 /* [in] */ ModuleID moduleId,
7767 /* [in] */ mdMethodDef methodid,
7768 /* [in] */ LPCBYTE pbNewILMethodHeader);
7769
7770 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
7771 ICorProfilerInfo * This,
7772 /* [in] */ AppDomainID appDomainId,
7773 /* [in] */ ULONG cchName,
7774 /* [out] */ ULONG *pcchName,
7775 /* [annotation][out] */
7776 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7777 /* [out] */ ProcessID *pProcessId);
7778
7779 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
7780 ICorProfilerInfo * This,
7781 /* [in] */ AssemblyID assemblyId,
7782 /* [in] */ ULONG cchName,
7783 /* [out] */ ULONG *pcchName,
7784 /* [annotation][out] */
7785 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
7786 /* [out] */ AppDomainID *pAppDomainId,
7787 /* [out] */ ModuleID *pModuleId);
7788
7789 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
7790 ICorProfilerInfo * This,
7791 /* [in] */ FunctionID functionId);
7792
7793 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
7794 ICorProfilerInfo * This);
7795
7796 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
7797 ICorProfilerInfo * This,
7798 /* [in] */ FunctionID functionId,
7799 /* [in] */ BOOL fStartJit,
7800 /* [in] */ ULONG cILMapEntries,
7801 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
7802
7803 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
7804 ICorProfilerInfo * This,
7805 /* [out] */ IUnknown **ppicd);
7806
7807 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
7808 ICorProfilerInfo * This,
7809 /* [out] */ IUnknown **ppicd);
7810
7811 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
7812 ICorProfilerInfo * This,
7813 /* [in] */ ThreadID threadId,
7814 /* [out] */ ContextID *pContextId);
7815
7816 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
7817 ICorProfilerInfo * This,
7818 /* [in] */ BOOL fThisThreadOnly,
7819 /* [out] */ DWORD *pdwProfilerContext);
7820
7821 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
7822 ICorProfilerInfo * This,
7823 /* [in] */ DWORD dwProfilerContext);
7824
7825 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
7826 ICorProfilerInfo * This,
7827 /* [in] */ FunctionID functionId,
7828 /* [in] */ ULONG32 cMap,
7829 /* [out] */ ULONG32 *pcMap,
7830 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
7831
7832 END_INTERFACE
7833 } ICorProfilerInfoVtbl;
7834
7835 interface ICorProfilerInfo
7836 {
7837 CONST_VTBL struct ICorProfilerInfoVtbl *lpVtbl;
7838 };
7839
7840
7841
7842#ifdef COBJMACROS
7843
7844
7845#define ICorProfilerInfo_QueryInterface(This,riid,ppvObject) \
7846 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
7847
7848#define ICorProfilerInfo_AddRef(This) \
7849 ( (This)->lpVtbl -> AddRef(This) )
7850
7851#define ICorProfilerInfo_Release(This) \
7852 ( (This)->lpVtbl -> Release(This) )
7853
7854
7855#define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId) \
7856 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
7857
7858#define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId) \
7859 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
7860
7861#define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize) \
7862 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
7863
7864#define ICorProfilerInfo_GetEventMask(This,pdwEvents) \
7865 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
7866
7867#define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \
7868 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
7869
7870#define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
7871 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
7872
7873#define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread) \
7874 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
7875
7876#define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize) \
7877 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
7878
7879#define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
7880 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
7881
7882#define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
7883 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
7884
7885#define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId) \
7886 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
7887
7888#define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
7889 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
7890
7891#define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
7892 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
7893
7894#define ICorProfilerInfo_SetEventMask(This,dwEvents) \
7895 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
7896
7897#define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
7898 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
7899
7900#define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc) \
7901 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
7902
7903#define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
7904 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
7905
7906#define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
7907 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
7908
7909#define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
7910 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
7911
7912#define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
7913 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
7914
7915#define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
7916 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
7917
7918#define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
7919 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
7920
7921#define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
7922 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
7923
7924#define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
7925 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
7926
7927#define ICorProfilerInfo_SetFunctionReJIT(This,functionId) \
7928 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
7929
7930#define ICorProfilerInfo_ForceGC(This) \
7931 ( (This)->lpVtbl -> ForceGC(This) )
7932
7933#define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
7934 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
7935
7936#define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd) \
7937 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
7938
7939#define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd) \
7940 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
7941
7942#define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId) \
7943 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
7944
7945#define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
7946 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
7947
7948#define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext) \
7949 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
7950
7951#define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
7952 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
7953
7954#endif /* COBJMACROS */
7955
7956
7957#endif /* C style interface */
7958
7959
7960
7961
7962#endif /* __ICorProfilerInfo_INTERFACE_DEFINED__ */
7963
7964
7965#ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__
7966#define __ICorProfilerInfo2_INTERFACE_DEFINED__
7967
7968/* interface ICorProfilerInfo2 */
7969/* [local][unique][uuid][object] */
7970
7971
7972EXTERN_C const IID IID_ICorProfilerInfo2;
7973
7974#if defined(__cplusplus) && !defined(CINTERFACE)
7975
7976 MIDL_INTERFACE("CC0935CD-A518-487d-B0BB-A93214E65478")
7977 ICorProfilerInfo2 : public ICorProfilerInfo
7978 {
7979 public:
7980 virtual HRESULT STDMETHODCALLTYPE DoStackSnapshot(
7981 /* [in] */ ThreadID thread,
7982 /* [in] */ StackSnapshotCallback *callback,
7983 /* [in] */ ULONG32 infoFlags,
7984 /* [in] */ void *clientData,
7985 /* [size_is][in] */ BYTE context[ ],
7986 /* [in] */ ULONG32 contextSize) = 0;
7987
7988 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks2(
7989 /* [in] */ FunctionEnter2 *pFuncEnter,
7990 /* [in] */ FunctionLeave2 *pFuncLeave,
7991 /* [in] */ FunctionTailcall2 *pFuncTailcall) = 0;
7992
7993 virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo2(
7994 /* [in] */ FunctionID funcId,
7995 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
7996 /* [out] */ ClassID *pClassId,
7997 /* [out] */ ModuleID *pModuleId,
7998 /* [out] */ mdToken *pToken,
7999 /* [in] */ ULONG32 cTypeArgs,
8000 /* [out] */ ULONG32 *pcTypeArgs,
8001 /* [out] */ ClassID typeArgs[ ]) = 0;
8002
8003 virtual HRESULT STDMETHODCALLTYPE GetStringLayout(
8004 /* [out] */ ULONG *pBufferLengthOffset,
8005 /* [out] */ ULONG *pStringLengthOffset,
8006 /* [out] */ ULONG *pBufferOffset) = 0;
8007
8008 virtual HRESULT STDMETHODCALLTYPE GetClassLayout(
8009 /* [in] */ ClassID classID,
8010 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
8011 /* [in] */ ULONG cFieldOffset,
8012 /* [out] */ ULONG *pcFieldOffset,
8013 /* [out] */ ULONG *pulClassSize) = 0;
8014
8015 virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo2(
8016 /* [in] */ ClassID classId,
8017 /* [out] */ ModuleID *pModuleId,
8018 /* [out] */ mdTypeDef *pTypeDefToken,
8019 /* [out] */ ClassID *pParentClassId,
8020 /* [in] */ ULONG32 cNumTypeArgs,
8021 /* [out] */ ULONG32 *pcNumTypeArgs,
8022 /* [out] */ ClassID typeArgs[ ]) = 0;
8023
8024 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo2(
8025 /* [in] */ FunctionID functionID,
8026 /* [in] */ ULONG32 cCodeInfos,
8027 /* [out] */ ULONG32 *pcCodeInfos,
8028 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]) = 0;
8029
8030 virtual HRESULT STDMETHODCALLTYPE GetClassFromTokenAndTypeArgs(
8031 /* [in] */ ModuleID moduleID,
8032 /* [in] */ mdTypeDef typeDef,
8033 /* [in] */ ULONG32 cTypeArgs,
8034 /* [size_is][in] */ ClassID typeArgs[ ],
8035 /* [out] */ ClassID *pClassID) = 0;
8036
8037 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromTokenAndTypeArgs(
8038 /* [in] */ ModuleID moduleID,
8039 /* [in] */ mdMethodDef funcDef,
8040 /* [in] */ ClassID classId,
8041 /* [in] */ ULONG32 cTypeArgs,
8042 /* [size_is][in] */ ClassID typeArgs[ ],
8043 /* [out] */ FunctionID *pFunctionID) = 0;
8044
8045 virtual HRESULT STDMETHODCALLTYPE EnumModuleFrozenObjects(
8046 /* [in] */ ModuleID moduleID,
8047 /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
8048
8049 virtual HRESULT STDMETHODCALLTYPE GetArrayObjectInfo(
8050 /* [in] */ ObjectID objectId,
8051 /* [in] */ ULONG32 cDimensions,
8052 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
8053 /* [size_is][out] */ int pDimensionLowerBounds[ ],
8054 /* [out] */ BYTE **ppData) = 0;
8055
8056 virtual HRESULT STDMETHODCALLTYPE GetBoxClassLayout(
8057 /* [in] */ ClassID classId,
8058 /* [out] */ ULONG32 *pBufferOffset) = 0;
8059
8060 virtual HRESULT STDMETHODCALLTYPE GetThreadAppDomain(
8061 /* [in] */ ThreadID threadId,
8062 /* [out] */ AppDomainID *pAppDomainId) = 0;
8063
8064 virtual HRESULT STDMETHODCALLTYPE GetRVAStaticAddress(
8065 /* [in] */ ClassID classId,
8066 /* [in] */ mdFieldDef fieldToken,
8067 /* [out] */ void **ppAddress) = 0;
8068
8069 virtual HRESULT STDMETHODCALLTYPE GetAppDomainStaticAddress(
8070 /* [in] */ ClassID classId,
8071 /* [in] */ mdFieldDef fieldToken,
8072 /* [in] */ AppDomainID appDomainId,
8073 /* [out] */ void **ppAddress) = 0;
8074
8075 virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress(
8076 /* [in] */ ClassID classId,
8077 /* [in] */ mdFieldDef fieldToken,
8078 /* [in] */ ThreadID threadId,
8079 /* [out] */ void **ppAddress) = 0;
8080
8081 virtual HRESULT STDMETHODCALLTYPE GetContextStaticAddress(
8082 /* [in] */ ClassID classId,
8083 /* [in] */ mdFieldDef fieldToken,
8084 /* [in] */ ContextID contextId,
8085 /* [out] */ void **ppAddress) = 0;
8086
8087 virtual HRESULT STDMETHODCALLTYPE GetStaticFieldInfo(
8088 /* [in] */ ClassID classId,
8089 /* [in] */ mdFieldDef fieldToken,
8090 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo) = 0;
8091
8092 virtual HRESULT STDMETHODCALLTYPE GetGenerationBounds(
8093 /* [in] */ ULONG cObjectRanges,
8094 /* [out] */ ULONG *pcObjectRanges,
8095 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]) = 0;
8096
8097 virtual HRESULT STDMETHODCALLTYPE GetObjectGeneration(
8098 /* [in] */ ObjectID objectId,
8099 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range) = 0;
8100
8101 virtual HRESULT STDMETHODCALLTYPE GetNotifiedExceptionClauseInfo(
8102 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo) = 0;
8103
8104 };
8105
8106
8107#else /* C style interface */
8108
8109 typedef struct ICorProfilerInfo2Vtbl
8110 {
8111 BEGIN_INTERFACE
8112
8113 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8114 ICorProfilerInfo2 * This,
8115 /* [in] */ REFIID riid,
8116 /* [annotation][iid_is][out] */
8117 _COM_Outptr_ void **ppvObject);
8118
8119 ULONG ( STDMETHODCALLTYPE *AddRef )(
8120 ICorProfilerInfo2 * This);
8121
8122 ULONG ( STDMETHODCALLTYPE *Release )(
8123 ICorProfilerInfo2 * This);
8124
8125 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
8126 ICorProfilerInfo2 * This,
8127 /* [in] */ ObjectID objectId,
8128 /* [out] */ ClassID *pClassId);
8129
8130 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
8131 ICorProfilerInfo2 * This,
8132 /* [in] */ ModuleID moduleId,
8133 /* [in] */ mdTypeDef typeDef,
8134 /* [out] */ ClassID *pClassId);
8135
8136 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
8137 ICorProfilerInfo2 * This,
8138 /* [in] */ FunctionID functionId,
8139 /* [out] */ LPCBYTE *pStart,
8140 /* [out] */ ULONG *pcSize);
8141
8142 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
8143 ICorProfilerInfo2 * This,
8144 /* [out] */ DWORD *pdwEvents);
8145
8146 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
8147 ICorProfilerInfo2 * This,
8148 /* [in] */ LPCBYTE ip,
8149 /* [out] */ FunctionID *pFunctionId);
8150
8151 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
8152 ICorProfilerInfo2 * This,
8153 /* [in] */ ModuleID moduleId,
8154 /* [in] */ mdToken token,
8155 /* [out] */ FunctionID *pFunctionId);
8156
8157 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
8158 ICorProfilerInfo2 * This,
8159 /* [in] */ ThreadID threadId,
8160 /* [out] */ HANDLE *phThread);
8161
8162 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
8163 ICorProfilerInfo2 * This,
8164 /* [in] */ ObjectID objectId,
8165 /* [out] */ ULONG *pcSize);
8166
8167 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
8168 ICorProfilerInfo2 * This,
8169 /* [in] */ ClassID classId,
8170 /* [out] */ CorElementType *pBaseElemType,
8171 /* [out] */ ClassID *pBaseClassId,
8172 /* [out] */ ULONG *pcRank);
8173
8174 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
8175 ICorProfilerInfo2 * This,
8176 /* [in] */ ThreadID threadId,
8177 /* [out] */ DWORD *pdwWin32ThreadId);
8178
8179 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
8180 ICorProfilerInfo2 * This,
8181 /* [out] */ ThreadID *pThreadId);
8182
8183 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
8184 ICorProfilerInfo2 * This,
8185 /* [in] */ ClassID classId,
8186 /* [out] */ ModuleID *pModuleId,
8187 /* [out] */ mdTypeDef *pTypeDefToken);
8188
8189 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
8190 ICorProfilerInfo2 * This,
8191 /* [in] */ FunctionID functionId,
8192 /* [out] */ ClassID *pClassId,
8193 /* [out] */ ModuleID *pModuleId,
8194 /* [out] */ mdToken *pToken);
8195
8196 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
8197 ICorProfilerInfo2 * This,
8198 /* [in] */ DWORD dwEvents);
8199
8200 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
8201 ICorProfilerInfo2 * This,
8202 /* [in] */ FunctionEnter *pFuncEnter,
8203 /* [in] */ FunctionLeave *pFuncLeave,
8204 /* [in] */ FunctionTailcall *pFuncTailcall);
8205
8206 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
8207 ICorProfilerInfo2 * This,
8208 /* [in] */ FunctionIDMapper *pFunc);
8209
8210 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
8211 ICorProfilerInfo2 * This,
8212 /* [in] */ FunctionID functionId,
8213 /* [in] */ REFIID riid,
8214 /* [out] */ IUnknown **ppImport,
8215 /* [out] */ mdToken *pToken);
8216
8217 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
8218 ICorProfilerInfo2 * This,
8219 /* [in] */ ModuleID moduleId,
8220 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8221 /* [in] */ ULONG cchName,
8222 /* [out] */ ULONG *pcchName,
8223 /* [annotation][out] */
8224 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8225 /* [out] */ AssemblyID *pAssemblyId);
8226
8227 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
8228 ICorProfilerInfo2 * This,
8229 /* [in] */ ModuleID moduleId,
8230 /* [in] */ DWORD dwOpenFlags,
8231 /* [in] */ REFIID riid,
8232 /* [out] */ IUnknown **ppOut);
8233
8234 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
8235 ICorProfilerInfo2 * This,
8236 /* [in] */ ModuleID moduleId,
8237 /* [in] */ mdMethodDef methodId,
8238 /* [out] */ LPCBYTE *ppMethodHeader,
8239 /* [out] */ ULONG *pcbMethodSize);
8240
8241 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
8242 ICorProfilerInfo2 * This,
8243 /* [in] */ ModuleID moduleId,
8244 /* [out] */ IMethodMalloc **ppMalloc);
8245
8246 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
8247 ICorProfilerInfo2 * This,
8248 /* [in] */ ModuleID moduleId,
8249 /* [in] */ mdMethodDef methodid,
8250 /* [in] */ LPCBYTE pbNewILMethodHeader);
8251
8252 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
8253 ICorProfilerInfo2 * This,
8254 /* [in] */ AppDomainID appDomainId,
8255 /* [in] */ ULONG cchName,
8256 /* [out] */ ULONG *pcchName,
8257 /* [annotation][out] */
8258 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8259 /* [out] */ ProcessID *pProcessId);
8260
8261 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
8262 ICorProfilerInfo2 * This,
8263 /* [in] */ AssemblyID assemblyId,
8264 /* [in] */ ULONG cchName,
8265 /* [out] */ ULONG *pcchName,
8266 /* [annotation][out] */
8267 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8268 /* [out] */ AppDomainID *pAppDomainId,
8269 /* [out] */ ModuleID *pModuleId);
8270
8271 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
8272 ICorProfilerInfo2 * This,
8273 /* [in] */ FunctionID functionId);
8274
8275 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
8276 ICorProfilerInfo2 * This);
8277
8278 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
8279 ICorProfilerInfo2 * This,
8280 /* [in] */ FunctionID functionId,
8281 /* [in] */ BOOL fStartJit,
8282 /* [in] */ ULONG cILMapEntries,
8283 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
8284
8285 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
8286 ICorProfilerInfo2 * This,
8287 /* [out] */ IUnknown **ppicd);
8288
8289 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
8290 ICorProfilerInfo2 * This,
8291 /* [out] */ IUnknown **ppicd);
8292
8293 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
8294 ICorProfilerInfo2 * This,
8295 /* [in] */ ThreadID threadId,
8296 /* [out] */ ContextID *pContextId);
8297
8298 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
8299 ICorProfilerInfo2 * This,
8300 /* [in] */ BOOL fThisThreadOnly,
8301 /* [out] */ DWORD *pdwProfilerContext);
8302
8303 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
8304 ICorProfilerInfo2 * This,
8305 /* [in] */ DWORD dwProfilerContext);
8306
8307 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
8308 ICorProfilerInfo2 * This,
8309 /* [in] */ FunctionID functionId,
8310 /* [in] */ ULONG32 cMap,
8311 /* [out] */ ULONG32 *pcMap,
8312 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
8313
8314 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
8315 ICorProfilerInfo2 * This,
8316 /* [in] */ ThreadID thread,
8317 /* [in] */ StackSnapshotCallback *callback,
8318 /* [in] */ ULONG32 infoFlags,
8319 /* [in] */ void *clientData,
8320 /* [size_is][in] */ BYTE context[ ],
8321 /* [in] */ ULONG32 contextSize);
8322
8323 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
8324 ICorProfilerInfo2 * This,
8325 /* [in] */ FunctionEnter2 *pFuncEnter,
8326 /* [in] */ FunctionLeave2 *pFuncLeave,
8327 /* [in] */ FunctionTailcall2 *pFuncTailcall);
8328
8329 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
8330 ICorProfilerInfo2 * This,
8331 /* [in] */ FunctionID funcId,
8332 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8333 /* [out] */ ClassID *pClassId,
8334 /* [out] */ ModuleID *pModuleId,
8335 /* [out] */ mdToken *pToken,
8336 /* [in] */ ULONG32 cTypeArgs,
8337 /* [out] */ ULONG32 *pcTypeArgs,
8338 /* [out] */ ClassID typeArgs[ ]);
8339
8340 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
8341 ICorProfilerInfo2 * This,
8342 /* [out] */ ULONG *pBufferLengthOffset,
8343 /* [out] */ ULONG *pStringLengthOffset,
8344 /* [out] */ ULONG *pBufferOffset);
8345
8346 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
8347 ICorProfilerInfo2 * This,
8348 /* [in] */ ClassID classID,
8349 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
8350 /* [in] */ ULONG cFieldOffset,
8351 /* [out] */ ULONG *pcFieldOffset,
8352 /* [out] */ ULONG *pulClassSize);
8353
8354 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
8355 ICorProfilerInfo2 * This,
8356 /* [in] */ ClassID classId,
8357 /* [out] */ ModuleID *pModuleId,
8358 /* [out] */ mdTypeDef *pTypeDefToken,
8359 /* [out] */ ClassID *pParentClassId,
8360 /* [in] */ ULONG32 cNumTypeArgs,
8361 /* [out] */ ULONG32 *pcNumTypeArgs,
8362 /* [out] */ ClassID typeArgs[ ]);
8363
8364 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
8365 ICorProfilerInfo2 * This,
8366 /* [in] */ FunctionID functionID,
8367 /* [in] */ ULONG32 cCodeInfos,
8368 /* [out] */ ULONG32 *pcCodeInfos,
8369 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
8370
8371 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
8372 ICorProfilerInfo2 * This,
8373 /* [in] */ ModuleID moduleID,
8374 /* [in] */ mdTypeDef typeDef,
8375 /* [in] */ ULONG32 cTypeArgs,
8376 /* [size_is][in] */ ClassID typeArgs[ ],
8377 /* [out] */ ClassID *pClassID);
8378
8379 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
8380 ICorProfilerInfo2 * This,
8381 /* [in] */ ModuleID moduleID,
8382 /* [in] */ mdMethodDef funcDef,
8383 /* [in] */ ClassID classId,
8384 /* [in] */ ULONG32 cTypeArgs,
8385 /* [size_is][in] */ ClassID typeArgs[ ],
8386 /* [out] */ FunctionID *pFunctionID);
8387
8388 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
8389 ICorProfilerInfo2 * This,
8390 /* [in] */ ModuleID moduleID,
8391 /* [out] */ ICorProfilerObjectEnum **ppEnum);
8392
8393 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
8394 ICorProfilerInfo2 * This,
8395 /* [in] */ ObjectID objectId,
8396 /* [in] */ ULONG32 cDimensions,
8397 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
8398 /* [size_is][out] */ int pDimensionLowerBounds[ ],
8399 /* [out] */ BYTE **ppData);
8400
8401 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
8402 ICorProfilerInfo2 * This,
8403 /* [in] */ ClassID classId,
8404 /* [out] */ ULONG32 *pBufferOffset);
8405
8406 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
8407 ICorProfilerInfo2 * This,
8408 /* [in] */ ThreadID threadId,
8409 /* [out] */ AppDomainID *pAppDomainId);
8410
8411 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
8412 ICorProfilerInfo2 * This,
8413 /* [in] */ ClassID classId,
8414 /* [in] */ mdFieldDef fieldToken,
8415 /* [out] */ void **ppAddress);
8416
8417 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
8418 ICorProfilerInfo2 * This,
8419 /* [in] */ ClassID classId,
8420 /* [in] */ mdFieldDef fieldToken,
8421 /* [in] */ AppDomainID appDomainId,
8422 /* [out] */ void **ppAddress);
8423
8424 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
8425 ICorProfilerInfo2 * This,
8426 /* [in] */ ClassID classId,
8427 /* [in] */ mdFieldDef fieldToken,
8428 /* [in] */ ThreadID threadId,
8429 /* [out] */ void **ppAddress);
8430
8431 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
8432 ICorProfilerInfo2 * This,
8433 /* [in] */ ClassID classId,
8434 /* [in] */ mdFieldDef fieldToken,
8435 /* [in] */ ContextID contextId,
8436 /* [out] */ void **ppAddress);
8437
8438 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
8439 ICorProfilerInfo2 * This,
8440 /* [in] */ ClassID classId,
8441 /* [in] */ mdFieldDef fieldToken,
8442 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
8443
8444 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
8445 ICorProfilerInfo2 * This,
8446 /* [in] */ ULONG cObjectRanges,
8447 /* [out] */ ULONG *pcObjectRanges,
8448 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
8449
8450 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
8451 ICorProfilerInfo2 * This,
8452 /* [in] */ ObjectID objectId,
8453 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
8454
8455 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
8456 ICorProfilerInfo2 * This,
8457 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
8458
8459 END_INTERFACE
8460 } ICorProfilerInfo2Vtbl;
8461
8462 interface ICorProfilerInfo2
8463 {
8464 CONST_VTBL struct ICorProfilerInfo2Vtbl *lpVtbl;
8465 };
8466
8467
8468
8469#ifdef COBJMACROS
8470
8471
8472#define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject) \
8473 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
8474
8475#define ICorProfilerInfo2_AddRef(This) \
8476 ( (This)->lpVtbl -> AddRef(This) )
8477
8478#define ICorProfilerInfo2_Release(This) \
8479 ( (This)->lpVtbl -> Release(This) )
8480
8481
8482#define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId) \
8483 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
8484
8485#define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId) \
8486 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
8487
8488#define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize) \
8489 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
8490
8491#define ICorProfilerInfo2_GetEventMask(This,pdwEvents) \
8492 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
8493
8494#define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId) \
8495 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
8496
8497#define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
8498 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
8499
8500#define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread) \
8501 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
8502
8503#define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize) \
8504 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
8505
8506#define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
8507 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
8508
8509#define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
8510 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
8511
8512#define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId) \
8513 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
8514
8515#define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
8516 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
8517
8518#define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
8519 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
8520
8521#define ICorProfilerInfo2_SetEventMask(This,dwEvents) \
8522 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
8523
8524#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
8525 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
8526
8527#define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc) \
8528 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
8529
8530#define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
8531 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
8532
8533#define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
8534 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
8535
8536#define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
8537 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
8538
8539#define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
8540 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
8541
8542#define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
8543 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
8544
8545#define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
8546 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
8547
8548#define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
8549 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
8550
8551#define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
8552 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
8553
8554#define ICorProfilerInfo2_SetFunctionReJIT(This,functionId) \
8555 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
8556
8557#define ICorProfilerInfo2_ForceGC(This) \
8558 ( (This)->lpVtbl -> ForceGC(This) )
8559
8560#define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
8561 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
8562
8563#define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd) \
8564 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
8565
8566#define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd) \
8567 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
8568
8569#define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId) \
8570 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
8571
8572#define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
8573 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
8574
8575#define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext) \
8576 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
8577
8578#define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
8579 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
8580
8581
8582#define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
8583 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
8584
8585#define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
8586 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
8587
8588#define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
8589 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
8590
8591#define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
8592 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
8593
8594#define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
8595 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
8596
8597#define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
8598 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
8599
8600#define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
8601 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
8602
8603#define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
8604 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
8605
8606#define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
8607 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
8608
8609#define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
8610 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
8611
8612#define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
8613 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
8614
8615#define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \
8616 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
8617
8618#define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId) \
8619 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
8620
8621#define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
8622 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
8623
8624#define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
8625 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
8626
8627#define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
8628 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
8629
8630#define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
8631 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
8632
8633#define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
8634 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
8635
8636#define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
8637 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
8638
8639#define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range) \
8640 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
8641
8642#define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo) \
8643 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
8644
8645#endif /* COBJMACROS */
8646
8647
8648#endif /* C style interface */
8649
8650
8651
8652
8653#endif /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */
8654
8655
8656#ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__
8657#define __ICorProfilerInfo3_INTERFACE_DEFINED__
8658
8659/* interface ICorProfilerInfo3 */
8660/* [local][unique][uuid][object] */
8661
8662
8663EXTERN_C const IID IID_ICorProfilerInfo3;
8664
8665#if defined(__cplusplus) && !defined(CINTERFACE)
8666
8667 MIDL_INTERFACE("B555ED4F-452A-4E54-8B39-B5360BAD32A0")
8668 ICorProfilerInfo3 : public ICorProfilerInfo2
8669 {
8670 public:
8671 virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions(
8672 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
8673
8674 virtual HRESULT STDMETHODCALLTYPE RequestProfilerDetach(
8675 /* [in] */ DWORD dwExpectedCompletionMilliseconds) = 0;
8676
8677 virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper2(
8678 /* [in] */ FunctionIDMapper2 *pFunc,
8679 /* [in] */ void *clientData) = 0;
8680
8681 virtual HRESULT STDMETHODCALLTYPE GetStringLayout2(
8682 /* [out] */ ULONG *pStringLengthOffset,
8683 /* [out] */ ULONG *pBufferOffset) = 0;
8684
8685 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3(
8686 /* [in] */ FunctionEnter3 *pFuncEnter3,
8687 /* [in] */ FunctionLeave3 *pFuncLeave3,
8688 /* [in] */ FunctionTailcall3 *pFuncTailcall3) = 0;
8689
8690 virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3WithInfo(
8691 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
8692 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
8693 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo) = 0;
8694
8695 virtual HRESULT STDMETHODCALLTYPE GetFunctionEnter3Info(
8696 /* [in] */ FunctionID functionId,
8697 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8698 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8699 /* [out][in] */ ULONG *pcbArgumentInfo,
8700 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo) = 0;
8701
8702 virtual HRESULT STDMETHODCALLTYPE GetFunctionLeave3Info(
8703 /* [in] */ FunctionID functionId,
8704 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8705 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8706 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange) = 0;
8707
8708 virtual HRESULT STDMETHODCALLTYPE GetFunctionTailcall3Info(
8709 /* [in] */ FunctionID functionId,
8710 /* [in] */ COR_PRF_ELT_INFO eltInfo,
8711 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo) = 0;
8712
8713 virtual HRESULT STDMETHODCALLTYPE EnumModules(
8714 /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
8715
8716 virtual HRESULT STDMETHODCALLTYPE GetRuntimeInformation(
8717 /* [out] */ USHORT *pClrInstanceId,
8718 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
8719 /* [out] */ USHORT *pMajorVersion,
8720 /* [out] */ USHORT *pMinorVersion,
8721 /* [out] */ USHORT *pBuildNumber,
8722 /* [out] */ USHORT *pQFEVersion,
8723 /* [in] */ ULONG cchVersionString,
8724 /* [out] */ ULONG *pcchVersionString,
8725 /* [annotation][out] */
8726 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]) = 0;
8727
8728 virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress2(
8729 /* [in] */ ClassID classId,
8730 /* [in] */ mdFieldDef fieldToken,
8731 /* [in] */ AppDomainID appDomainId,
8732 /* [in] */ ThreadID threadId,
8733 /* [out] */ void **ppAddress) = 0;
8734
8735 virtual HRESULT STDMETHODCALLTYPE GetAppDomainsContainingModule(
8736 /* [in] */ ModuleID moduleId,
8737 /* [in] */ ULONG32 cAppDomainIds,
8738 /* [out] */ ULONG32 *pcAppDomainIds,
8739 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]) = 0;
8740
8741 virtual HRESULT STDMETHODCALLTYPE GetModuleInfo2(
8742 /* [in] */ ModuleID moduleId,
8743 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8744 /* [in] */ ULONG cchName,
8745 /* [out] */ ULONG *pcchName,
8746 /* [annotation][out] */
8747 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8748 /* [out] */ AssemblyID *pAssemblyId,
8749 /* [out] */ DWORD *pdwModuleFlags) = 0;
8750
8751 };
8752
8753
8754#else /* C style interface */
8755
8756 typedef struct ICorProfilerInfo3Vtbl
8757 {
8758 BEGIN_INTERFACE
8759
8760 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
8761 ICorProfilerInfo3 * This,
8762 /* [in] */ REFIID riid,
8763 /* [annotation][iid_is][out] */
8764 _COM_Outptr_ void **ppvObject);
8765
8766 ULONG ( STDMETHODCALLTYPE *AddRef )(
8767 ICorProfilerInfo3 * This);
8768
8769 ULONG ( STDMETHODCALLTYPE *Release )(
8770 ICorProfilerInfo3 * This);
8771
8772 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
8773 ICorProfilerInfo3 * This,
8774 /* [in] */ ObjectID objectId,
8775 /* [out] */ ClassID *pClassId);
8776
8777 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
8778 ICorProfilerInfo3 * This,
8779 /* [in] */ ModuleID moduleId,
8780 /* [in] */ mdTypeDef typeDef,
8781 /* [out] */ ClassID *pClassId);
8782
8783 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
8784 ICorProfilerInfo3 * This,
8785 /* [in] */ FunctionID functionId,
8786 /* [out] */ LPCBYTE *pStart,
8787 /* [out] */ ULONG *pcSize);
8788
8789 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
8790 ICorProfilerInfo3 * This,
8791 /* [out] */ DWORD *pdwEvents);
8792
8793 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
8794 ICorProfilerInfo3 * This,
8795 /* [in] */ LPCBYTE ip,
8796 /* [out] */ FunctionID *pFunctionId);
8797
8798 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
8799 ICorProfilerInfo3 * This,
8800 /* [in] */ ModuleID moduleId,
8801 /* [in] */ mdToken token,
8802 /* [out] */ FunctionID *pFunctionId);
8803
8804 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
8805 ICorProfilerInfo3 * This,
8806 /* [in] */ ThreadID threadId,
8807 /* [out] */ HANDLE *phThread);
8808
8809 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
8810 ICorProfilerInfo3 * This,
8811 /* [in] */ ObjectID objectId,
8812 /* [out] */ ULONG *pcSize);
8813
8814 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
8815 ICorProfilerInfo3 * This,
8816 /* [in] */ ClassID classId,
8817 /* [out] */ CorElementType *pBaseElemType,
8818 /* [out] */ ClassID *pBaseClassId,
8819 /* [out] */ ULONG *pcRank);
8820
8821 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
8822 ICorProfilerInfo3 * This,
8823 /* [in] */ ThreadID threadId,
8824 /* [out] */ DWORD *pdwWin32ThreadId);
8825
8826 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
8827 ICorProfilerInfo3 * This,
8828 /* [out] */ ThreadID *pThreadId);
8829
8830 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
8831 ICorProfilerInfo3 * This,
8832 /* [in] */ ClassID classId,
8833 /* [out] */ ModuleID *pModuleId,
8834 /* [out] */ mdTypeDef *pTypeDefToken);
8835
8836 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
8837 ICorProfilerInfo3 * This,
8838 /* [in] */ FunctionID functionId,
8839 /* [out] */ ClassID *pClassId,
8840 /* [out] */ ModuleID *pModuleId,
8841 /* [out] */ mdToken *pToken);
8842
8843 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
8844 ICorProfilerInfo3 * This,
8845 /* [in] */ DWORD dwEvents);
8846
8847 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
8848 ICorProfilerInfo3 * This,
8849 /* [in] */ FunctionEnter *pFuncEnter,
8850 /* [in] */ FunctionLeave *pFuncLeave,
8851 /* [in] */ FunctionTailcall *pFuncTailcall);
8852
8853 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
8854 ICorProfilerInfo3 * This,
8855 /* [in] */ FunctionIDMapper *pFunc);
8856
8857 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
8858 ICorProfilerInfo3 * This,
8859 /* [in] */ FunctionID functionId,
8860 /* [in] */ REFIID riid,
8861 /* [out] */ IUnknown **ppImport,
8862 /* [out] */ mdToken *pToken);
8863
8864 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
8865 ICorProfilerInfo3 * This,
8866 /* [in] */ ModuleID moduleId,
8867 /* [out] */ LPCBYTE *ppBaseLoadAddress,
8868 /* [in] */ ULONG cchName,
8869 /* [out] */ ULONG *pcchName,
8870 /* [annotation][out] */
8871 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8872 /* [out] */ AssemblyID *pAssemblyId);
8873
8874 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
8875 ICorProfilerInfo3 * This,
8876 /* [in] */ ModuleID moduleId,
8877 /* [in] */ DWORD dwOpenFlags,
8878 /* [in] */ REFIID riid,
8879 /* [out] */ IUnknown **ppOut);
8880
8881 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
8882 ICorProfilerInfo3 * This,
8883 /* [in] */ ModuleID moduleId,
8884 /* [in] */ mdMethodDef methodId,
8885 /* [out] */ LPCBYTE *ppMethodHeader,
8886 /* [out] */ ULONG *pcbMethodSize);
8887
8888 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
8889 ICorProfilerInfo3 * This,
8890 /* [in] */ ModuleID moduleId,
8891 /* [out] */ IMethodMalloc **ppMalloc);
8892
8893 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
8894 ICorProfilerInfo3 * This,
8895 /* [in] */ ModuleID moduleId,
8896 /* [in] */ mdMethodDef methodid,
8897 /* [in] */ LPCBYTE pbNewILMethodHeader);
8898
8899 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
8900 ICorProfilerInfo3 * This,
8901 /* [in] */ AppDomainID appDomainId,
8902 /* [in] */ ULONG cchName,
8903 /* [out] */ ULONG *pcchName,
8904 /* [annotation][out] */
8905 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8906 /* [out] */ ProcessID *pProcessId);
8907
8908 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
8909 ICorProfilerInfo3 * This,
8910 /* [in] */ AssemblyID assemblyId,
8911 /* [in] */ ULONG cchName,
8912 /* [out] */ ULONG *pcchName,
8913 /* [annotation][out] */
8914 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
8915 /* [out] */ AppDomainID *pAppDomainId,
8916 /* [out] */ ModuleID *pModuleId);
8917
8918 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
8919 ICorProfilerInfo3 * This,
8920 /* [in] */ FunctionID functionId);
8921
8922 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
8923 ICorProfilerInfo3 * This);
8924
8925 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
8926 ICorProfilerInfo3 * This,
8927 /* [in] */ FunctionID functionId,
8928 /* [in] */ BOOL fStartJit,
8929 /* [in] */ ULONG cILMapEntries,
8930 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
8931
8932 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
8933 ICorProfilerInfo3 * This,
8934 /* [out] */ IUnknown **ppicd);
8935
8936 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
8937 ICorProfilerInfo3 * This,
8938 /* [out] */ IUnknown **ppicd);
8939
8940 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
8941 ICorProfilerInfo3 * This,
8942 /* [in] */ ThreadID threadId,
8943 /* [out] */ ContextID *pContextId);
8944
8945 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
8946 ICorProfilerInfo3 * This,
8947 /* [in] */ BOOL fThisThreadOnly,
8948 /* [out] */ DWORD *pdwProfilerContext);
8949
8950 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
8951 ICorProfilerInfo3 * This,
8952 /* [in] */ DWORD dwProfilerContext);
8953
8954 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
8955 ICorProfilerInfo3 * This,
8956 /* [in] */ FunctionID functionId,
8957 /* [in] */ ULONG32 cMap,
8958 /* [out] */ ULONG32 *pcMap,
8959 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
8960
8961 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
8962 ICorProfilerInfo3 * This,
8963 /* [in] */ ThreadID thread,
8964 /* [in] */ StackSnapshotCallback *callback,
8965 /* [in] */ ULONG32 infoFlags,
8966 /* [in] */ void *clientData,
8967 /* [size_is][in] */ BYTE context[ ],
8968 /* [in] */ ULONG32 contextSize);
8969
8970 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
8971 ICorProfilerInfo3 * This,
8972 /* [in] */ FunctionEnter2 *pFuncEnter,
8973 /* [in] */ FunctionLeave2 *pFuncLeave,
8974 /* [in] */ FunctionTailcall2 *pFuncTailcall);
8975
8976 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
8977 ICorProfilerInfo3 * This,
8978 /* [in] */ FunctionID funcId,
8979 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8980 /* [out] */ ClassID *pClassId,
8981 /* [out] */ ModuleID *pModuleId,
8982 /* [out] */ mdToken *pToken,
8983 /* [in] */ ULONG32 cTypeArgs,
8984 /* [out] */ ULONG32 *pcTypeArgs,
8985 /* [out] */ ClassID typeArgs[ ]);
8986
8987 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
8988 ICorProfilerInfo3 * This,
8989 /* [out] */ ULONG *pBufferLengthOffset,
8990 /* [out] */ ULONG *pStringLengthOffset,
8991 /* [out] */ ULONG *pBufferOffset);
8992
8993 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
8994 ICorProfilerInfo3 * This,
8995 /* [in] */ ClassID classID,
8996 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
8997 /* [in] */ ULONG cFieldOffset,
8998 /* [out] */ ULONG *pcFieldOffset,
8999 /* [out] */ ULONG *pulClassSize);
9000
9001 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
9002 ICorProfilerInfo3 * This,
9003 /* [in] */ ClassID classId,
9004 /* [out] */ ModuleID *pModuleId,
9005 /* [out] */ mdTypeDef *pTypeDefToken,
9006 /* [out] */ ClassID *pParentClassId,
9007 /* [in] */ ULONG32 cNumTypeArgs,
9008 /* [out] */ ULONG32 *pcNumTypeArgs,
9009 /* [out] */ ClassID typeArgs[ ]);
9010
9011 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
9012 ICorProfilerInfo3 * This,
9013 /* [in] */ FunctionID functionID,
9014 /* [in] */ ULONG32 cCodeInfos,
9015 /* [out] */ ULONG32 *pcCodeInfos,
9016 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
9017
9018 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
9019 ICorProfilerInfo3 * This,
9020 /* [in] */ ModuleID moduleID,
9021 /* [in] */ mdTypeDef typeDef,
9022 /* [in] */ ULONG32 cTypeArgs,
9023 /* [size_is][in] */ ClassID typeArgs[ ],
9024 /* [out] */ ClassID *pClassID);
9025
9026 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
9027 ICorProfilerInfo3 * This,
9028 /* [in] */ ModuleID moduleID,
9029 /* [in] */ mdMethodDef funcDef,
9030 /* [in] */ ClassID classId,
9031 /* [in] */ ULONG32 cTypeArgs,
9032 /* [size_is][in] */ ClassID typeArgs[ ],
9033 /* [out] */ FunctionID *pFunctionID);
9034
9035 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
9036 ICorProfilerInfo3 * This,
9037 /* [in] */ ModuleID moduleID,
9038 /* [out] */ ICorProfilerObjectEnum **ppEnum);
9039
9040 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
9041 ICorProfilerInfo3 * This,
9042 /* [in] */ ObjectID objectId,
9043 /* [in] */ ULONG32 cDimensions,
9044 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
9045 /* [size_is][out] */ int pDimensionLowerBounds[ ],
9046 /* [out] */ BYTE **ppData);
9047
9048 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
9049 ICorProfilerInfo3 * This,
9050 /* [in] */ ClassID classId,
9051 /* [out] */ ULONG32 *pBufferOffset);
9052
9053 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
9054 ICorProfilerInfo3 * This,
9055 /* [in] */ ThreadID threadId,
9056 /* [out] */ AppDomainID *pAppDomainId);
9057
9058 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
9059 ICorProfilerInfo3 * This,
9060 /* [in] */ ClassID classId,
9061 /* [in] */ mdFieldDef fieldToken,
9062 /* [out] */ void **ppAddress);
9063
9064 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
9065 ICorProfilerInfo3 * This,
9066 /* [in] */ ClassID classId,
9067 /* [in] */ mdFieldDef fieldToken,
9068 /* [in] */ AppDomainID appDomainId,
9069 /* [out] */ void **ppAddress);
9070
9071 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
9072 ICorProfilerInfo3 * This,
9073 /* [in] */ ClassID classId,
9074 /* [in] */ mdFieldDef fieldToken,
9075 /* [in] */ ThreadID threadId,
9076 /* [out] */ void **ppAddress);
9077
9078 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
9079 ICorProfilerInfo3 * This,
9080 /* [in] */ ClassID classId,
9081 /* [in] */ mdFieldDef fieldToken,
9082 /* [in] */ ContextID contextId,
9083 /* [out] */ void **ppAddress);
9084
9085 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
9086 ICorProfilerInfo3 * This,
9087 /* [in] */ ClassID classId,
9088 /* [in] */ mdFieldDef fieldToken,
9089 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
9090
9091 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
9092 ICorProfilerInfo3 * This,
9093 /* [in] */ ULONG cObjectRanges,
9094 /* [out] */ ULONG *pcObjectRanges,
9095 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
9096
9097 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
9098 ICorProfilerInfo3 * This,
9099 /* [in] */ ObjectID objectId,
9100 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
9101
9102 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
9103 ICorProfilerInfo3 * This,
9104 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
9105
9106 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
9107 ICorProfilerInfo3 * This,
9108 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9109
9110 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
9111 ICorProfilerInfo3 * This,
9112 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
9113
9114 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
9115 ICorProfilerInfo3 * This,
9116 /* [in] */ FunctionIDMapper2 *pFunc,
9117 /* [in] */ void *clientData);
9118
9119 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
9120 ICorProfilerInfo3 * This,
9121 /* [out] */ ULONG *pStringLengthOffset,
9122 /* [out] */ ULONG *pBufferOffset);
9123
9124 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
9125 ICorProfilerInfo3 * This,
9126 /* [in] */ FunctionEnter3 *pFuncEnter3,
9127 /* [in] */ FunctionLeave3 *pFuncLeave3,
9128 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
9129
9130 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
9131 ICorProfilerInfo3 * This,
9132 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
9133 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
9134 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
9135
9136 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
9137 ICorProfilerInfo3 * This,
9138 /* [in] */ FunctionID functionId,
9139 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9140 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9141 /* [out][in] */ ULONG *pcbArgumentInfo,
9142 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
9143
9144 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
9145 ICorProfilerInfo3 * This,
9146 /* [in] */ FunctionID functionId,
9147 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9148 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9149 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
9150
9151 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
9152 ICorProfilerInfo3 * This,
9153 /* [in] */ FunctionID functionId,
9154 /* [in] */ COR_PRF_ELT_INFO eltInfo,
9155 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
9156
9157 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
9158 ICorProfilerInfo3 * This,
9159 /* [out] */ ICorProfilerModuleEnum **ppEnum);
9160
9161 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
9162 ICorProfilerInfo3 * This,
9163 /* [out] */ USHORT *pClrInstanceId,
9164 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
9165 /* [out] */ USHORT *pMajorVersion,
9166 /* [out] */ USHORT *pMinorVersion,
9167 /* [out] */ USHORT *pBuildNumber,
9168 /* [out] */ USHORT *pQFEVersion,
9169 /* [in] */ ULONG cchVersionString,
9170 /* [out] */ ULONG *pcchVersionString,
9171 /* [annotation][out] */
9172 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
9173
9174 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
9175 ICorProfilerInfo3 * This,
9176 /* [in] */ ClassID classId,
9177 /* [in] */ mdFieldDef fieldToken,
9178 /* [in] */ AppDomainID appDomainId,
9179 /* [in] */ ThreadID threadId,
9180 /* [out] */ void **ppAddress);
9181
9182 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
9183 ICorProfilerInfo3 * This,
9184 /* [in] */ ModuleID moduleId,
9185 /* [in] */ ULONG32 cAppDomainIds,
9186 /* [out] */ ULONG32 *pcAppDomainIds,
9187 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
9188
9189 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
9190 ICorProfilerInfo3 * This,
9191 /* [in] */ ModuleID moduleId,
9192 /* [out] */ LPCBYTE *ppBaseLoadAddress,
9193 /* [in] */ ULONG cchName,
9194 /* [out] */ ULONG *pcchName,
9195 /* [annotation][out] */
9196 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
9197 /* [out] */ AssemblyID *pAssemblyId,
9198 /* [out] */ DWORD *pdwModuleFlags);
9199
9200 END_INTERFACE
9201 } ICorProfilerInfo3Vtbl;
9202
9203 interface ICorProfilerInfo3
9204 {
9205 CONST_VTBL struct ICorProfilerInfo3Vtbl *lpVtbl;
9206 };
9207
9208
9209
9210#ifdef COBJMACROS
9211
9212
9213#define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject) \
9214 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9215
9216#define ICorProfilerInfo3_AddRef(This) \
9217 ( (This)->lpVtbl -> AddRef(This) )
9218
9219#define ICorProfilerInfo3_Release(This) \
9220 ( (This)->lpVtbl -> Release(This) )
9221
9222
9223#define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId) \
9224 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
9225
9226#define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId) \
9227 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
9228
9229#define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize) \
9230 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
9231
9232#define ICorProfilerInfo3_GetEventMask(This,pdwEvents) \
9233 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
9234
9235#define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId) \
9236 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
9237
9238#define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
9239 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
9240
9241#define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread) \
9242 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
9243
9244#define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize) \
9245 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
9246
9247#define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
9248 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
9249
9250#define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
9251 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
9252
9253#define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId) \
9254 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
9255
9256#define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
9257 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
9258
9259#define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
9260 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
9261
9262#define ICorProfilerInfo3_SetEventMask(This,dwEvents) \
9263 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
9264
9265#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
9266 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
9267
9268#define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc) \
9269 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
9270
9271#define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
9272 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
9273
9274#define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
9275 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
9276
9277#define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
9278 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
9279
9280#define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
9281 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
9282
9283#define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
9284 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
9285
9286#define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
9287 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
9288
9289#define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
9290 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
9291
9292#define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
9293 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
9294
9295#define ICorProfilerInfo3_SetFunctionReJIT(This,functionId) \
9296 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
9297
9298#define ICorProfilerInfo3_ForceGC(This) \
9299 ( (This)->lpVtbl -> ForceGC(This) )
9300
9301#define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
9302 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
9303
9304#define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd) \
9305 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
9306
9307#define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd) \
9308 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
9309
9310#define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId) \
9311 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
9312
9313#define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
9314 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
9315
9316#define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext) \
9317 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
9318
9319#define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
9320 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
9321
9322
9323#define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
9324 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
9325
9326#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
9327 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
9328
9329#define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
9330 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
9331
9332#define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
9333 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
9334
9335#define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
9336 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
9337
9338#define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
9339 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
9340
9341#define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
9342 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
9343
9344#define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
9345 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
9346
9347#define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
9348 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
9349
9350#define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
9351 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
9352
9353#define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
9354 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
9355
9356#define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \
9357 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
9358
9359#define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId) \
9360 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
9361
9362#define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
9363 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
9364
9365#define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
9366 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
9367
9368#define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
9369 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
9370
9371#define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
9372 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
9373
9374#define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
9375 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
9376
9377#define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
9378 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
9379
9380#define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range) \
9381 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
9382
9383#define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo) \
9384 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
9385
9386
9387#define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum) \
9388 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
9389
9390#define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
9391 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
9392
9393#define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData) \
9394 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
9395
9396#define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
9397 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
9398
9399#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
9400 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
9401
9402#define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
9403 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
9404
9405#define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
9406 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
9407
9408#define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
9409 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
9410
9411#define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
9412 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
9413
9414#define ICorProfilerInfo3_EnumModules(This,ppEnum) \
9415 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
9416
9417#define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
9418 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
9419
9420#define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
9421 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
9422
9423#define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
9424 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
9425
9426#define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
9427 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
9428
9429#endif /* COBJMACROS */
9430
9431
9432#endif /* C style interface */
9433
9434
9435
9436
9437#endif /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */
9438
9439
9440#ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9441#define __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9442
9443/* interface ICorProfilerObjectEnum */
9444/* [local][unique][uuid][object] */
9445
9446
9447EXTERN_C const IID IID_ICorProfilerObjectEnum;
9448
9449#if defined(__cplusplus) && !defined(CINTERFACE)
9450
9451 MIDL_INTERFACE("2C6269BD-2D13-4321-AE12-6686365FD6AF")
9452 ICorProfilerObjectEnum : public IUnknown
9453 {
9454 public:
9455 virtual HRESULT STDMETHODCALLTYPE Skip(
9456 /* [in] */ ULONG celt) = 0;
9457
9458 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9459
9460 virtual HRESULT STDMETHODCALLTYPE Clone(
9461 /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
9462
9463 virtual HRESULT STDMETHODCALLTYPE GetCount(
9464 /* [out] */ ULONG *pcelt) = 0;
9465
9466 virtual HRESULT STDMETHODCALLTYPE Next(
9467 /* [in] */ ULONG celt,
9468 /* [length_is][size_is][out] */ ObjectID objects[ ],
9469 /* [out] */ ULONG *pceltFetched) = 0;
9470
9471 };
9472
9473
9474#else /* C style interface */
9475
9476 typedef struct ICorProfilerObjectEnumVtbl
9477 {
9478 BEGIN_INTERFACE
9479
9480 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9481 ICorProfilerObjectEnum * This,
9482 /* [in] */ REFIID riid,
9483 /* [annotation][iid_is][out] */
9484 _COM_Outptr_ void **ppvObject);
9485
9486 ULONG ( STDMETHODCALLTYPE *AddRef )(
9487 ICorProfilerObjectEnum * This);
9488
9489 ULONG ( STDMETHODCALLTYPE *Release )(
9490 ICorProfilerObjectEnum * This);
9491
9492 HRESULT ( STDMETHODCALLTYPE *Skip )(
9493 ICorProfilerObjectEnum * This,
9494 /* [in] */ ULONG celt);
9495
9496 HRESULT ( STDMETHODCALLTYPE *Reset )(
9497 ICorProfilerObjectEnum * This);
9498
9499 HRESULT ( STDMETHODCALLTYPE *Clone )(
9500 ICorProfilerObjectEnum * This,
9501 /* [out] */ ICorProfilerObjectEnum **ppEnum);
9502
9503 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9504 ICorProfilerObjectEnum * This,
9505 /* [out] */ ULONG *pcelt);
9506
9507 HRESULT ( STDMETHODCALLTYPE *Next )(
9508 ICorProfilerObjectEnum * This,
9509 /* [in] */ ULONG celt,
9510 /* [length_is][size_is][out] */ ObjectID objects[ ],
9511 /* [out] */ ULONG *pceltFetched);
9512
9513 END_INTERFACE
9514 } ICorProfilerObjectEnumVtbl;
9515
9516 interface ICorProfilerObjectEnum
9517 {
9518 CONST_VTBL struct ICorProfilerObjectEnumVtbl *lpVtbl;
9519 };
9520
9521
9522
9523#ifdef COBJMACROS
9524
9525
9526#define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject) \
9527 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9528
9529#define ICorProfilerObjectEnum_AddRef(This) \
9530 ( (This)->lpVtbl -> AddRef(This) )
9531
9532#define ICorProfilerObjectEnum_Release(This) \
9533 ( (This)->lpVtbl -> Release(This) )
9534
9535
9536#define ICorProfilerObjectEnum_Skip(This,celt) \
9537 ( (This)->lpVtbl -> Skip(This,celt) )
9538
9539#define ICorProfilerObjectEnum_Reset(This) \
9540 ( (This)->lpVtbl -> Reset(This) )
9541
9542#define ICorProfilerObjectEnum_Clone(This,ppEnum) \
9543 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9544
9545#define ICorProfilerObjectEnum_GetCount(This,pcelt) \
9546 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9547
9548#define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched) \
9549 ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) )
9550
9551#endif /* COBJMACROS */
9552
9553
9554#endif /* C style interface */
9555
9556
9557
9558
9559#endif /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */
9560
9561
9562#ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9563#define __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9564
9565/* interface ICorProfilerFunctionEnum */
9566/* [local][unique][uuid][object] */
9567
9568
9569EXTERN_C const IID IID_ICorProfilerFunctionEnum;
9570
9571#if defined(__cplusplus) && !defined(CINTERFACE)
9572
9573 MIDL_INTERFACE("FF71301A-B994-429D-A10B-B345A65280EF")
9574 ICorProfilerFunctionEnum : public IUnknown
9575 {
9576 public:
9577 virtual HRESULT STDMETHODCALLTYPE Skip(
9578 /* [in] */ ULONG celt) = 0;
9579
9580 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9581
9582 virtual HRESULT STDMETHODCALLTYPE Clone(
9583 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
9584
9585 virtual HRESULT STDMETHODCALLTYPE GetCount(
9586 /* [out] */ ULONG *pcelt) = 0;
9587
9588 virtual HRESULT STDMETHODCALLTYPE Next(
9589 /* [in] */ ULONG celt,
9590 /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
9591 /* [out] */ ULONG *pceltFetched) = 0;
9592
9593 };
9594
9595
9596#else /* C style interface */
9597
9598 typedef struct ICorProfilerFunctionEnumVtbl
9599 {
9600 BEGIN_INTERFACE
9601
9602 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9603 ICorProfilerFunctionEnum * This,
9604 /* [in] */ REFIID riid,
9605 /* [annotation][iid_is][out] */
9606 _COM_Outptr_ void **ppvObject);
9607
9608 ULONG ( STDMETHODCALLTYPE *AddRef )(
9609 ICorProfilerFunctionEnum * This);
9610
9611 ULONG ( STDMETHODCALLTYPE *Release )(
9612 ICorProfilerFunctionEnum * This);
9613
9614 HRESULT ( STDMETHODCALLTYPE *Skip )(
9615 ICorProfilerFunctionEnum * This,
9616 /* [in] */ ULONG celt);
9617
9618 HRESULT ( STDMETHODCALLTYPE *Reset )(
9619 ICorProfilerFunctionEnum * This);
9620
9621 HRESULT ( STDMETHODCALLTYPE *Clone )(
9622 ICorProfilerFunctionEnum * This,
9623 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9624
9625 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9626 ICorProfilerFunctionEnum * This,
9627 /* [out] */ ULONG *pcelt);
9628
9629 HRESULT ( STDMETHODCALLTYPE *Next )(
9630 ICorProfilerFunctionEnum * This,
9631 /* [in] */ ULONG celt,
9632 /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[ ],
9633 /* [out] */ ULONG *pceltFetched);
9634
9635 END_INTERFACE
9636 } ICorProfilerFunctionEnumVtbl;
9637
9638 interface ICorProfilerFunctionEnum
9639 {
9640 CONST_VTBL struct ICorProfilerFunctionEnumVtbl *lpVtbl;
9641 };
9642
9643
9644
9645#ifdef COBJMACROS
9646
9647
9648#define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject) \
9649 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9650
9651#define ICorProfilerFunctionEnum_AddRef(This) \
9652 ( (This)->lpVtbl -> AddRef(This) )
9653
9654#define ICorProfilerFunctionEnum_Release(This) \
9655 ( (This)->lpVtbl -> Release(This) )
9656
9657
9658#define ICorProfilerFunctionEnum_Skip(This,celt) \
9659 ( (This)->lpVtbl -> Skip(This,celt) )
9660
9661#define ICorProfilerFunctionEnum_Reset(This) \
9662 ( (This)->lpVtbl -> Reset(This) )
9663
9664#define ICorProfilerFunctionEnum_Clone(This,ppEnum) \
9665 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9666
9667#define ICorProfilerFunctionEnum_GetCount(This,pcelt) \
9668 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9669
9670#define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched) \
9671 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
9672
9673#endif /* COBJMACROS */
9674
9675
9676#endif /* C style interface */
9677
9678
9679
9680
9681#endif /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */
9682
9683
9684#ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9685#define __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9686
9687/* interface ICorProfilerModuleEnum */
9688/* [local][unique][uuid][object] */
9689
9690
9691EXTERN_C const IID IID_ICorProfilerModuleEnum;
9692
9693#if defined(__cplusplus) && !defined(CINTERFACE)
9694
9695 MIDL_INTERFACE("b0266d75-2081-4493-af7f-028ba34db891")
9696 ICorProfilerModuleEnum : public IUnknown
9697 {
9698 public:
9699 virtual HRESULT STDMETHODCALLTYPE Skip(
9700 /* [in] */ ULONG celt) = 0;
9701
9702 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9703
9704 virtual HRESULT STDMETHODCALLTYPE Clone(
9705 /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
9706
9707 virtual HRESULT STDMETHODCALLTYPE GetCount(
9708 /* [out] */ ULONG *pcelt) = 0;
9709
9710 virtual HRESULT STDMETHODCALLTYPE Next(
9711 /* [in] */ ULONG celt,
9712 /* [length_is][size_is][out] */ ModuleID ids[ ],
9713 /* [out] */ ULONG *pceltFetched) = 0;
9714
9715 };
9716
9717
9718#else /* C style interface */
9719
9720 typedef struct ICorProfilerModuleEnumVtbl
9721 {
9722 BEGIN_INTERFACE
9723
9724 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9725 ICorProfilerModuleEnum * This,
9726 /* [in] */ REFIID riid,
9727 /* [annotation][iid_is][out] */
9728 _COM_Outptr_ void **ppvObject);
9729
9730 ULONG ( STDMETHODCALLTYPE *AddRef )(
9731 ICorProfilerModuleEnum * This);
9732
9733 ULONG ( STDMETHODCALLTYPE *Release )(
9734 ICorProfilerModuleEnum * This);
9735
9736 HRESULT ( STDMETHODCALLTYPE *Skip )(
9737 ICorProfilerModuleEnum * This,
9738 /* [in] */ ULONG celt);
9739
9740 HRESULT ( STDMETHODCALLTYPE *Reset )(
9741 ICorProfilerModuleEnum * This);
9742
9743 HRESULT ( STDMETHODCALLTYPE *Clone )(
9744 ICorProfilerModuleEnum * This,
9745 /* [out] */ ICorProfilerModuleEnum **ppEnum);
9746
9747 HRESULT ( STDMETHODCALLTYPE *GetCount )(
9748 ICorProfilerModuleEnum * This,
9749 /* [out] */ ULONG *pcelt);
9750
9751 HRESULT ( STDMETHODCALLTYPE *Next )(
9752 ICorProfilerModuleEnum * This,
9753 /* [in] */ ULONG celt,
9754 /* [length_is][size_is][out] */ ModuleID ids[ ],
9755 /* [out] */ ULONG *pceltFetched);
9756
9757 END_INTERFACE
9758 } ICorProfilerModuleEnumVtbl;
9759
9760 interface ICorProfilerModuleEnum
9761 {
9762 CONST_VTBL struct ICorProfilerModuleEnumVtbl *lpVtbl;
9763 };
9764
9765
9766
9767#ifdef COBJMACROS
9768
9769
9770#define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject) \
9771 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9772
9773#define ICorProfilerModuleEnum_AddRef(This) \
9774 ( (This)->lpVtbl -> AddRef(This) )
9775
9776#define ICorProfilerModuleEnum_Release(This) \
9777 ( (This)->lpVtbl -> Release(This) )
9778
9779
9780#define ICorProfilerModuleEnum_Skip(This,celt) \
9781 ( (This)->lpVtbl -> Skip(This,celt) )
9782
9783#define ICorProfilerModuleEnum_Reset(This) \
9784 ( (This)->lpVtbl -> Reset(This) )
9785
9786#define ICorProfilerModuleEnum_Clone(This,ppEnum) \
9787 ( (This)->lpVtbl -> Clone(This,ppEnum) )
9788
9789#define ICorProfilerModuleEnum_GetCount(This,pcelt) \
9790 ( (This)->lpVtbl -> GetCount(This,pcelt) )
9791
9792#define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \
9793 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
9794
9795#endif /* COBJMACROS */
9796
9797
9798#endif /* C style interface */
9799
9800
9801
9802
9803#endif /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */
9804
9805
9806#ifndef __IMethodMalloc_INTERFACE_DEFINED__
9807#define __IMethodMalloc_INTERFACE_DEFINED__
9808
9809/* interface IMethodMalloc */
9810/* [local][unique][uuid][object] */
9811
9812
9813EXTERN_C const IID IID_IMethodMalloc;
9814
9815#if defined(__cplusplus) && !defined(CINTERFACE)
9816
9817 MIDL_INTERFACE("A0EFB28B-6EE2-4d7b-B983-A75EF7BEEDB8")
9818 IMethodMalloc : public IUnknown
9819 {
9820 public:
9821 virtual PVOID STDMETHODCALLTYPE Alloc(
9822 /* [in] */ ULONG cb) = 0;
9823
9824 };
9825
9826
9827#else /* C style interface */
9828
9829 typedef struct IMethodMallocVtbl
9830 {
9831 BEGIN_INTERFACE
9832
9833 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9834 IMethodMalloc * This,
9835 /* [in] */ REFIID riid,
9836 /* [annotation][iid_is][out] */
9837 _COM_Outptr_ void **ppvObject);
9838
9839 ULONG ( STDMETHODCALLTYPE *AddRef )(
9840 IMethodMalloc * This);
9841
9842 ULONG ( STDMETHODCALLTYPE *Release )(
9843 IMethodMalloc * This);
9844
9845 PVOID ( STDMETHODCALLTYPE *Alloc )(
9846 IMethodMalloc * This,
9847 /* [in] */ ULONG cb);
9848
9849 END_INTERFACE
9850 } IMethodMallocVtbl;
9851
9852 interface IMethodMalloc
9853 {
9854 CONST_VTBL struct IMethodMallocVtbl *lpVtbl;
9855 };
9856
9857
9858
9859#ifdef COBJMACROS
9860
9861
9862#define IMethodMalloc_QueryInterface(This,riid,ppvObject) \
9863 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9864
9865#define IMethodMalloc_AddRef(This) \
9866 ( (This)->lpVtbl -> AddRef(This) )
9867
9868#define IMethodMalloc_Release(This) \
9869 ( (This)->lpVtbl -> Release(This) )
9870
9871
9872#define IMethodMalloc_Alloc(This,cb) \
9873 ( (This)->lpVtbl -> Alloc(This,cb) )
9874
9875#endif /* COBJMACROS */
9876
9877
9878#endif /* C style interface */
9879
9880
9881
9882
9883#endif /* __IMethodMalloc_INTERFACE_DEFINED__ */
9884
9885
9886#ifndef __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9887#define __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9888
9889/* interface ICorProfilerFunctionControl */
9890/* [local][unique][uuid][object] */
9891
9892
9893EXTERN_C const IID IID_ICorProfilerFunctionControl;
9894
9895#if defined(__cplusplus) && !defined(CINTERFACE)
9896
9897 MIDL_INTERFACE("F0963021-E1EA-4732-8581-E01B0BD3C0C6")
9898 ICorProfilerFunctionControl : public IUnknown
9899 {
9900 public:
9901 virtual HRESULT STDMETHODCALLTYPE SetCodegenFlags(
9902 /* [in] */ DWORD flags) = 0;
9903
9904 virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody(
9905 /* [in] */ ULONG cbNewILMethodHeader,
9906 /* [size_is][in] */ LPCBYTE pbNewILMethodHeader) = 0;
9907
9908 virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap(
9909 /* [in] */ ULONG cILMapEntries,
9910 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]) = 0;
9911
9912 };
9913
9914
9915#else /* C style interface */
9916
9917 typedef struct ICorProfilerFunctionControlVtbl
9918 {
9919 BEGIN_INTERFACE
9920
9921 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
9922 ICorProfilerFunctionControl * This,
9923 /* [in] */ REFIID riid,
9924 /* [annotation][iid_is][out] */
9925 _COM_Outptr_ void **ppvObject);
9926
9927 ULONG ( STDMETHODCALLTYPE *AddRef )(
9928 ICorProfilerFunctionControl * This);
9929
9930 ULONG ( STDMETHODCALLTYPE *Release )(
9931 ICorProfilerFunctionControl * This);
9932
9933 HRESULT ( STDMETHODCALLTYPE *SetCodegenFlags )(
9934 ICorProfilerFunctionControl * This,
9935 /* [in] */ DWORD flags);
9936
9937 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
9938 ICorProfilerFunctionControl * This,
9939 /* [in] */ ULONG cbNewILMethodHeader,
9940 /* [size_is][in] */ LPCBYTE pbNewILMethodHeader);
9941
9942 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
9943 ICorProfilerFunctionControl * This,
9944 /* [in] */ ULONG cILMapEntries,
9945 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
9946
9947 END_INTERFACE
9948 } ICorProfilerFunctionControlVtbl;
9949
9950 interface ICorProfilerFunctionControl
9951 {
9952 CONST_VTBL struct ICorProfilerFunctionControlVtbl *lpVtbl;
9953 };
9954
9955
9956
9957#ifdef COBJMACROS
9958
9959
9960#define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \
9961 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
9962
9963#define ICorProfilerFunctionControl_AddRef(This) \
9964 ( (This)->lpVtbl -> AddRef(This) )
9965
9966#define ICorProfilerFunctionControl_Release(This) \
9967 ( (This)->lpVtbl -> Release(This) )
9968
9969
9970#define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \
9971 ( (This)->lpVtbl -> SetCodegenFlags(This,flags) )
9972
9973#define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) \
9974 ( (This)->lpVtbl -> SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) )
9975
9976#define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \
9977 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) )
9978
9979#endif /* COBJMACROS */
9980
9981
9982#endif /* C style interface */
9983
9984
9985
9986
9987#endif /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */
9988
9989
9990#ifndef __ICorProfilerInfo4_INTERFACE_DEFINED__
9991#define __ICorProfilerInfo4_INTERFACE_DEFINED__
9992
9993/* interface ICorProfilerInfo4 */
9994/* [local][unique][uuid][object] */
9995
9996
9997EXTERN_C const IID IID_ICorProfilerInfo4;
9998
9999#if defined(__cplusplus) && !defined(CINTERFACE)
10000
10001 MIDL_INTERFACE("0d8fdcaa-6257-47bf-b1bf-94dac88466ee")
10002 ICorProfilerInfo4 : public ICorProfilerInfo3
10003 {
10004 public:
10005 virtual HRESULT STDMETHODCALLTYPE EnumThreads(
10006 /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
10007
10008 virtual HRESULT STDMETHODCALLTYPE InitializeCurrentThread( void) = 0;
10009
10010 virtual HRESULT STDMETHODCALLTYPE RequestReJIT(
10011 /* [in] */ ULONG cFunctions,
10012 /* [size_is][in] */ ModuleID moduleIds[ ],
10013 /* [size_is][in] */ mdMethodDef methodIds[ ]) = 0;
10014
10015 virtual HRESULT STDMETHODCALLTYPE RequestRevert(
10016 /* [in] */ ULONG cFunctions,
10017 /* [size_is][in] */ ModuleID moduleIds[ ],
10018 /* [size_is][in] */ mdMethodDef methodIds[ ],
10019 /* [size_is][out] */ HRESULT status[ ]) = 0;
10020
10021 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo3(
10022 /* [in] */ FunctionID functionID,
10023 /* [in] */ ReJITID reJitId,
10024 /* [in] */ ULONG32 cCodeInfos,
10025 /* [out] */ ULONG32 *pcCodeInfos,
10026 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]) = 0;
10027
10028 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP2(
10029 /* [in] */ LPCBYTE ip,
10030 /* [out] */ FunctionID *pFunctionId,
10031 /* [out] */ ReJITID *pReJitId) = 0;
10032
10033 virtual HRESULT STDMETHODCALLTYPE GetReJITIDs(
10034 /* [in] */ FunctionID functionId,
10035 /* [in] */ ULONG cReJitIds,
10036 /* [out] */ ULONG *pcReJitIds,
10037 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]) = 0;
10038
10039 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping2(
10040 /* [in] */ FunctionID functionId,
10041 /* [in] */ ReJITID reJitId,
10042 /* [in] */ ULONG32 cMap,
10043 /* [out] */ ULONG32 *pcMap,
10044 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
10045
10046 virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions2(
10047 /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
10048
10049 virtual HRESULT STDMETHODCALLTYPE GetObjectSize2(
10050 /* [in] */ ObjectID objectId,
10051 /* [out] */ SIZE_T *pcSize) = 0;
10052
10053 };
10054
10055
10056#else /* C style interface */
10057
10058 typedef struct ICorProfilerInfo4Vtbl
10059 {
10060 BEGIN_INTERFACE
10061
10062 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10063 ICorProfilerInfo4 * This,
10064 /* [in] */ REFIID riid,
10065 /* [annotation][iid_is][out] */
10066 _COM_Outptr_ void **ppvObject);
10067
10068 ULONG ( STDMETHODCALLTYPE *AddRef )(
10069 ICorProfilerInfo4 * This);
10070
10071 ULONG ( STDMETHODCALLTYPE *Release )(
10072 ICorProfilerInfo4 * This);
10073
10074 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
10075 ICorProfilerInfo4 * This,
10076 /* [in] */ ObjectID objectId,
10077 /* [out] */ ClassID *pClassId);
10078
10079 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
10080 ICorProfilerInfo4 * This,
10081 /* [in] */ ModuleID moduleId,
10082 /* [in] */ mdTypeDef typeDef,
10083 /* [out] */ ClassID *pClassId);
10084
10085 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
10086 ICorProfilerInfo4 * This,
10087 /* [in] */ FunctionID functionId,
10088 /* [out] */ LPCBYTE *pStart,
10089 /* [out] */ ULONG *pcSize);
10090
10091 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
10092 ICorProfilerInfo4 * This,
10093 /* [out] */ DWORD *pdwEvents);
10094
10095 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
10096 ICorProfilerInfo4 * This,
10097 /* [in] */ LPCBYTE ip,
10098 /* [out] */ FunctionID *pFunctionId);
10099
10100 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
10101 ICorProfilerInfo4 * This,
10102 /* [in] */ ModuleID moduleId,
10103 /* [in] */ mdToken token,
10104 /* [out] */ FunctionID *pFunctionId);
10105
10106 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
10107 ICorProfilerInfo4 * This,
10108 /* [in] */ ThreadID threadId,
10109 /* [out] */ HANDLE *phThread);
10110
10111 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
10112 ICorProfilerInfo4 * This,
10113 /* [in] */ ObjectID objectId,
10114 /* [out] */ ULONG *pcSize);
10115
10116 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
10117 ICorProfilerInfo4 * This,
10118 /* [in] */ ClassID classId,
10119 /* [out] */ CorElementType *pBaseElemType,
10120 /* [out] */ ClassID *pBaseClassId,
10121 /* [out] */ ULONG *pcRank);
10122
10123 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
10124 ICorProfilerInfo4 * This,
10125 /* [in] */ ThreadID threadId,
10126 /* [out] */ DWORD *pdwWin32ThreadId);
10127
10128 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
10129 ICorProfilerInfo4 * This,
10130 /* [out] */ ThreadID *pThreadId);
10131
10132 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
10133 ICorProfilerInfo4 * This,
10134 /* [in] */ ClassID classId,
10135 /* [out] */ ModuleID *pModuleId,
10136 /* [out] */ mdTypeDef *pTypeDefToken);
10137
10138 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
10139 ICorProfilerInfo4 * This,
10140 /* [in] */ FunctionID functionId,
10141 /* [out] */ ClassID *pClassId,
10142 /* [out] */ ModuleID *pModuleId,
10143 /* [out] */ mdToken *pToken);
10144
10145 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
10146 ICorProfilerInfo4 * This,
10147 /* [in] */ DWORD dwEvents);
10148
10149 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
10150 ICorProfilerInfo4 * This,
10151 /* [in] */ FunctionEnter *pFuncEnter,
10152 /* [in] */ FunctionLeave *pFuncLeave,
10153 /* [in] */ FunctionTailcall *pFuncTailcall);
10154
10155 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
10156 ICorProfilerInfo4 * This,
10157 /* [in] */ FunctionIDMapper *pFunc);
10158
10159 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
10160 ICorProfilerInfo4 * This,
10161 /* [in] */ FunctionID functionId,
10162 /* [in] */ REFIID riid,
10163 /* [out] */ IUnknown **ppImport,
10164 /* [out] */ mdToken *pToken);
10165
10166 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
10167 ICorProfilerInfo4 * This,
10168 /* [in] */ ModuleID moduleId,
10169 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10170 /* [in] */ ULONG cchName,
10171 /* [out] */ ULONG *pcchName,
10172 /* [annotation][out] */
10173 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10174 /* [out] */ AssemblyID *pAssemblyId);
10175
10176 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
10177 ICorProfilerInfo4 * This,
10178 /* [in] */ ModuleID moduleId,
10179 /* [in] */ DWORD dwOpenFlags,
10180 /* [in] */ REFIID riid,
10181 /* [out] */ IUnknown **ppOut);
10182
10183 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
10184 ICorProfilerInfo4 * This,
10185 /* [in] */ ModuleID moduleId,
10186 /* [in] */ mdMethodDef methodId,
10187 /* [out] */ LPCBYTE *ppMethodHeader,
10188 /* [out] */ ULONG *pcbMethodSize);
10189
10190 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
10191 ICorProfilerInfo4 * This,
10192 /* [in] */ ModuleID moduleId,
10193 /* [out] */ IMethodMalloc **ppMalloc);
10194
10195 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
10196 ICorProfilerInfo4 * This,
10197 /* [in] */ ModuleID moduleId,
10198 /* [in] */ mdMethodDef methodid,
10199 /* [in] */ LPCBYTE pbNewILMethodHeader);
10200
10201 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
10202 ICorProfilerInfo4 * This,
10203 /* [in] */ AppDomainID appDomainId,
10204 /* [in] */ ULONG cchName,
10205 /* [out] */ ULONG *pcchName,
10206 /* [annotation][out] */
10207 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10208 /* [out] */ ProcessID *pProcessId);
10209
10210 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
10211 ICorProfilerInfo4 * This,
10212 /* [in] */ AssemblyID assemblyId,
10213 /* [in] */ ULONG cchName,
10214 /* [out] */ ULONG *pcchName,
10215 /* [annotation][out] */
10216 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10217 /* [out] */ AppDomainID *pAppDomainId,
10218 /* [out] */ ModuleID *pModuleId);
10219
10220 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
10221 ICorProfilerInfo4 * This,
10222 /* [in] */ FunctionID functionId);
10223
10224 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
10225 ICorProfilerInfo4 * This);
10226
10227 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
10228 ICorProfilerInfo4 * This,
10229 /* [in] */ FunctionID functionId,
10230 /* [in] */ BOOL fStartJit,
10231 /* [in] */ ULONG cILMapEntries,
10232 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
10233
10234 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
10235 ICorProfilerInfo4 * This,
10236 /* [out] */ IUnknown **ppicd);
10237
10238 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
10239 ICorProfilerInfo4 * This,
10240 /* [out] */ IUnknown **ppicd);
10241
10242 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
10243 ICorProfilerInfo4 * This,
10244 /* [in] */ ThreadID threadId,
10245 /* [out] */ ContextID *pContextId);
10246
10247 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
10248 ICorProfilerInfo4 * This,
10249 /* [in] */ BOOL fThisThreadOnly,
10250 /* [out] */ DWORD *pdwProfilerContext);
10251
10252 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
10253 ICorProfilerInfo4 * This,
10254 /* [in] */ DWORD dwProfilerContext);
10255
10256 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
10257 ICorProfilerInfo4 * This,
10258 /* [in] */ FunctionID functionId,
10259 /* [in] */ ULONG32 cMap,
10260 /* [out] */ ULONG32 *pcMap,
10261 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
10262
10263 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
10264 ICorProfilerInfo4 * This,
10265 /* [in] */ ThreadID thread,
10266 /* [in] */ StackSnapshotCallback *callback,
10267 /* [in] */ ULONG32 infoFlags,
10268 /* [in] */ void *clientData,
10269 /* [size_is][in] */ BYTE context[ ],
10270 /* [in] */ ULONG32 contextSize);
10271
10272 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
10273 ICorProfilerInfo4 * This,
10274 /* [in] */ FunctionEnter2 *pFuncEnter,
10275 /* [in] */ FunctionLeave2 *pFuncLeave,
10276 /* [in] */ FunctionTailcall2 *pFuncTailcall);
10277
10278 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
10279 ICorProfilerInfo4 * This,
10280 /* [in] */ FunctionID funcId,
10281 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
10282 /* [out] */ ClassID *pClassId,
10283 /* [out] */ ModuleID *pModuleId,
10284 /* [out] */ mdToken *pToken,
10285 /* [in] */ ULONG32 cTypeArgs,
10286 /* [out] */ ULONG32 *pcTypeArgs,
10287 /* [out] */ ClassID typeArgs[ ]);
10288
10289 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
10290 ICorProfilerInfo4 * This,
10291 /* [out] */ ULONG *pBufferLengthOffset,
10292 /* [out] */ ULONG *pStringLengthOffset,
10293 /* [out] */ ULONG *pBufferOffset);
10294
10295 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
10296 ICorProfilerInfo4 * This,
10297 /* [in] */ ClassID classID,
10298 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
10299 /* [in] */ ULONG cFieldOffset,
10300 /* [out] */ ULONG *pcFieldOffset,
10301 /* [out] */ ULONG *pulClassSize);
10302
10303 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
10304 ICorProfilerInfo4 * This,
10305 /* [in] */ ClassID classId,
10306 /* [out] */ ModuleID *pModuleId,
10307 /* [out] */ mdTypeDef *pTypeDefToken,
10308 /* [out] */ ClassID *pParentClassId,
10309 /* [in] */ ULONG32 cNumTypeArgs,
10310 /* [out] */ ULONG32 *pcNumTypeArgs,
10311 /* [out] */ ClassID typeArgs[ ]);
10312
10313 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
10314 ICorProfilerInfo4 * This,
10315 /* [in] */ FunctionID functionID,
10316 /* [in] */ ULONG32 cCodeInfos,
10317 /* [out] */ ULONG32 *pcCodeInfos,
10318 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
10319
10320 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
10321 ICorProfilerInfo4 * This,
10322 /* [in] */ ModuleID moduleID,
10323 /* [in] */ mdTypeDef typeDef,
10324 /* [in] */ ULONG32 cTypeArgs,
10325 /* [size_is][in] */ ClassID typeArgs[ ],
10326 /* [out] */ ClassID *pClassID);
10327
10328 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
10329 ICorProfilerInfo4 * This,
10330 /* [in] */ ModuleID moduleID,
10331 /* [in] */ mdMethodDef funcDef,
10332 /* [in] */ ClassID classId,
10333 /* [in] */ ULONG32 cTypeArgs,
10334 /* [size_is][in] */ ClassID typeArgs[ ],
10335 /* [out] */ FunctionID *pFunctionID);
10336
10337 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
10338 ICorProfilerInfo4 * This,
10339 /* [in] */ ModuleID moduleID,
10340 /* [out] */ ICorProfilerObjectEnum **ppEnum);
10341
10342 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
10343 ICorProfilerInfo4 * This,
10344 /* [in] */ ObjectID objectId,
10345 /* [in] */ ULONG32 cDimensions,
10346 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
10347 /* [size_is][out] */ int pDimensionLowerBounds[ ],
10348 /* [out] */ BYTE **ppData);
10349
10350 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
10351 ICorProfilerInfo4 * This,
10352 /* [in] */ ClassID classId,
10353 /* [out] */ ULONG32 *pBufferOffset);
10354
10355 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
10356 ICorProfilerInfo4 * This,
10357 /* [in] */ ThreadID threadId,
10358 /* [out] */ AppDomainID *pAppDomainId);
10359
10360 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
10361 ICorProfilerInfo4 * This,
10362 /* [in] */ ClassID classId,
10363 /* [in] */ mdFieldDef fieldToken,
10364 /* [out] */ void **ppAddress);
10365
10366 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
10367 ICorProfilerInfo4 * This,
10368 /* [in] */ ClassID classId,
10369 /* [in] */ mdFieldDef fieldToken,
10370 /* [in] */ AppDomainID appDomainId,
10371 /* [out] */ void **ppAddress);
10372
10373 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
10374 ICorProfilerInfo4 * This,
10375 /* [in] */ ClassID classId,
10376 /* [in] */ mdFieldDef fieldToken,
10377 /* [in] */ ThreadID threadId,
10378 /* [out] */ void **ppAddress);
10379
10380 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
10381 ICorProfilerInfo4 * This,
10382 /* [in] */ ClassID classId,
10383 /* [in] */ mdFieldDef fieldToken,
10384 /* [in] */ ContextID contextId,
10385 /* [out] */ void **ppAddress);
10386
10387 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
10388 ICorProfilerInfo4 * This,
10389 /* [in] */ ClassID classId,
10390 /* [in] */ mdFieldDef fieldToken,
10391 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
10392
10393 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
10394 ICorProfilerInfo4 * This,
10395 /* [in] */ ULONG cObjectRanges,
10396 /* [out] */ ULONG *pcObjectRanges,
10397 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
10398
10399 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
10400 ICorProfilerInfo4 * This,
10401 /* [in] */ ObjectID objectId,
10402 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
10403
10404 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
10405 ICorProfilerInfo4 * This,
10406 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
10407
10408 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
10409 ICorProfilerInfo4 * This,
10410 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10411
10412 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
10413 ICorProfilerInfo4 * This,
10414 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
10415
10416 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
10417 ICorProfilerInfo4 * This,
10418 /* [in] */ FunctionIDMapper2 *pFunc,
10419 /* [in] */ void *clientData);
10420
10421 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
10422 ICorProfilerInfo4 * This,
10423 /* [out] */ ULONG *pStringLengthOffset,
10424 /* [out] */ ULONG *pBufferOffset);
10425
10426 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
10427 ICorProfilerInfo4 * This,
10428 /* [in] */ FunctionEnter3 *pFuncEnter3,
10429 /* [in] */ FunctionLeave3 *pFuncLeave3,
10430 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
10431
10432 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
10433 ICorProfilerInfo4 * This,
10434 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
10435 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
10436 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
10437
10438 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
10439 ICorProfilerInfo4 * This,
10440 /* [in] */ FunctionID functionId,
10441 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10442 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10443 /* [out][in] */ ULONG *pcbArgumentInfo,
10444 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
10445
10446 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
10447 ICorProfilerInfo4 * This,
10448 /* [in] */ FunctionID functionId,
10449 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10450 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10451 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
10452
10453 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
10454 ICorProfilerInfo4 * This,
10455 /* [in] */ FunctionID functionId,
10456 /* [in] */ COR_PRF_ELT_INFO eltInfo,
10457 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
10458
10459 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
10460 ICorProfilerInfo4 * This,
10461 /* [out] */ ICorProfilerModuleEnum **ppEnum);
10462
10463 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
10464 ICorProfilerInfo4 * This,
10465 /* [out] */ USHORT *pClrInstanceId,
10466 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
10467 /* [out] */ USHORT *pMajorVersion,
10468 /* [out] */ USHORT *pMinorVersion,
10469 /* [out] */ USHORT *pBuildNumber,
10470 /* [out] */ USHORT *pQFEVersion,
10471 /* [in] */ ULONG cchVersionString,
10472 /* [out] */ ULONG *pcchVersionString,
10473 /* [annotation][out] */
10474 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
10475
10476 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
10477 ICorProfilerInfo4 * This,
10478 /* [in] */ ClassID classId,
10479 /* [in] */ mdFieldDef fieldToken,
10480 /* [in] */ AppDomainID appDomainId,
10481 /* [in] */ ThreadID threadId,
10482 /* [out] */ void **ppAddress);
10483
10484 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
10485 ICorProfilerInfo4 * This,
10486 /* [in] */ ModuleID moduleId,
10487 /* [in] */ ULONG32 cAppDomainIds,
10488 /* [out] */ ULONG32 *pcAppDomainIds,
10489 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
10490
10491 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
10492 ICorProfilerInfo4 * This,
10493 /* [in] */ ModuleID moduleId,
10494 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10495 /* [in] */ ULONG cchName,
10496 /* [out] */ ULONG *pcchName,
10497 /* [annotation][out] */
10498 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10499 /* [out] */ AssemblyID *pAssemblyId,
10500 /* [out] */ DWORD *pdwModuleFlags);
10501
10502 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
10503 ICorProfilerInfo4 * This,
10504 /* [out] */ ICorProfilerThreadEnum **ppEnum);
10505
10506 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
10507 ICorProfilerInfo4 * This);
10508
10509 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
10510 ICorProfilerInfo4 * This,
10511 /* [in] */ ULONG cFunctions,
10512 /* [size_is][in] */ ModuleID moduleIds[ ],
10513 /* [size_is][in] */ mdMethodDef methodIds[ ]);
10514
10515 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
10516 ICorProfilerInfo4 * This,
10517 /* [in] */ ULONG cFunctions,
10518 /* [size_is][in] */ ModuleID moduleIds[ ],
10519 /* [size_is][in] */ mdMethodDef methodIds[ ],
10520 /* [size_is][out] */ HRESULT status[ ]);
10521
10522 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
10523 ICorProfilerInfo4 * This,
10524 /* [in] */ FunctionID functionID,
10525 /* [in] */ ReJITID reJitId,
10526 /* [in] */ ULONG32 cCodeInfos,
10527 /* [out] */ ULONG32 *pcCodeInfos,
10528 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
10529
10530 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
10531 ICorProfilerInfo4 * This,
10532 /* [in] */ LPCBYTE ip,
10533 /* [out] */ FunctionID *pFunctionId,
10534 /* [out] */ ReJITID *pReJitId);
10535
10536 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
10537 ICorProfilerInfo4 * This,
10538 /* [in] */ FunctionID functionId,
10539 /* [in] */ ULONG cReJitIds,
10540 /* [out] */ ULONG *pcReJitIds,
10541 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
10542
10543 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
10544 ICorProfilerInfo4 * This,
10545 /* [in] */ FunctionID functionId,
10546 /* [in] */ ReJITID reJitId,
10547 /* [in] */ ULONG32 cMap,
10548 /* [out] */ ULONG32 *pcMap,
10549 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
10550
10551 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
10552 ICorProfilerInfo4 * This,
10553 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10554
10555 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
10556 ICorProfilerInfo4 * This,
10557 /* [in] */ ObjectID objectId,
10558 /* [out] */ SIZE_T *pcSize);
10559
10560 END_INTERFACE
10561 } ICorProfilerInfo4Vtbl;
10562
10563 interface ICorProfilerInfo4
10564 {
10565 CONST_VTBL struct ICorProfilerInfo4Vtbl *lpVtbl;
10566 };
10567
10568
10569
10570#ifdef COBJMACROS
10571
10572
10573#define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject) \
10574 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
10575
10576#define ICorProfilerInfo4_AddRef(This) \
10577 ( (This)->lpVtbl -> AddRef(This) )
10578
10579#define ICorProfilerInfo4_Release(This) \
10580 ( (This)->lpVtbl -> Release(This) )
10581
10582
10583#define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId) \
10584 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
10585
10586#define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId) \
10587 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
10588
10589#define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize) \
10590 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
10591
10592#define ICorProfilerInfo4_GetEventMask(This,pdwEvents) \
10593 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
10594
10595#define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId) \
10596 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
10597
10598#define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
10599 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
10600
10601#define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread) \
10602 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
10603
10604#define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize) \
10605 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
10606
10607#define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
10608 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
10609
10610#define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
10611 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
10612
10613#define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId) \
10614 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
10615
10616#define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
10617 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
10618
10619#define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
10620 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
10621
10622#define ICorProfilerInfo4_SetEventMask(This,dwEvents) \
10623 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
10624
10625#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
10626 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
10627
10628#define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc) \
10629 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
10630
10631#define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
10632 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
10633
10634#define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
10635 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
10636
10637#define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
10638 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
10639
10640#define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
10641 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
10642
10643#define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
10644 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
10645
10646#define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
10647 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
10648
10649#define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
10650 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
10651
10652#define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
10653 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
10654
10655#define ICorProfilerInfo4_SetFunctionReJIT(This,functionId) \
10656 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
10657
10658#define ICorProfilerInfo4_ForceGC(This) \
10659 ( (This)->lpVtbl -> ForceGC(This) )
10660
10661#define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
10662 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
10663
10664#define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd) \
10665 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
10666
10667#define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd) \
10668 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
10669
10670#define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId) \
10671 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
10672
10673#define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
10674 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
10675
10676#define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext) \
10677 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
10678
10679#define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
10680 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
10681
10682
10683#define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
10684 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
10685
10686#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
10687 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
10688
10689#define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
10690 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
10691
10692#define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
10693 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
10694
10695#define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
10696 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
10697
10698#define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
10699 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
10700
10701#define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
10702 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
10703
10704#define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
10705 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
10706
10707#define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
10708 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
10709
10710#define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
10711 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
10712
10713#define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
10714 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
10715
10716#define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \
10717 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
10718
10719#define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId) \
10720 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
10721
10722#define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
10723 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
10724
10725#define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
10726 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
10727
10728#define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
10729 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
10730
10731#define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
10732 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
10733
10734#define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
10735 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
10736
10737#define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
10738 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
10739
10740#define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range) \
10741 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
10742
10743#define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo) \
10744 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
10745
10746
10747#define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum) \
10748 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
10749
10750#define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
10751 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
10752
10753#define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData) \
10754 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
10755
10756#define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
10757 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
10758
10759#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
10760 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
10761
10762#define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
10763 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
10764
10765#define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
10766 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
10767
10768#define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
10769 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
10770
10771#define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
10772 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
10773
10774#define ICorProfilerInfo4_EnumModules(This,ppEnum) \
10775 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
10776
10777#define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
10778 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
10779
10780#define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
10781 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
10782
10783#define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
10784 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
10785
10786#define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
10787 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
10788
10789
10790#define ICorProfilerInfo4_EnumThreads(This,ppEnum) \
10791 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
10792
10793#define ICorProfilerInfo4_InitializeCurrentThread(This) \
10794 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
10795
10796#define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
10797 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
10798
10799#define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
10800 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
10801
10802#define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
10803 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
10804
10805#define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
10806 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
10807
10808#define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
10809 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
10810
10811#define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
10812 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
10813
10814#define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum) \
10815 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
10816
10817#define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize) \
10818 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
10819
10820#endif /* COBJMACROS */
10821
10822
10823#endif /* C style interface */
10824
10825
10826
10827
10828#endif /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */
10829
10830
10831#ifndef __ICorProfilerInfo5_INTERFACE_DEFINED__
10832#define __ICorProfilerInfo5_INTERFACE_DEFINED__
10833
10834/* interface ICorProfilerInfo5 */
10835/* [local][unique][uuid][object] */
10836
10837
10838EXTERN_C const IID IID_ICorProfilerInfo5;
10839
10840#if defined(__cplusplus) && !defined(CINTERFACE)
10841
10842 MIDL_INTERFACE("07602928-CE38-4B83-81E7-74ADAF781214")
10843 ICorProfilerInfo5 : public ICorProfilerInfo4
10844 {
10845 public:
10846 virtual HRESULT STDMETHODCALLTYPE GetEventMask2(
10847 /* [out] */ DWORD *pdwEventsLow,
10848 /* [out] */ DWORD *pdwEventsHigh) = 0;
10849
10850 virtual HRESULT STDMETHODCALLTYPE SetEventMask2(
10851 /* [in] */ DWORD dwEventsLow,
10852 /* [in] */ DWORD dwEventsHigh) = 0;
10853
10854 };
10855
10856
10857#else /* C style interface */
10858
10859 typedef struct ICorProfilerInfo5Vtbl
10860 {
10861 BEGIN_INTERFACE
10862
10863 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
10864 ICorProfilerInfo5 * This,
10865 /* [in] */ REFIID riid,
10866 /* [annotation][iid_is][out] */
10867 _COM_Outptr_ void **ppvObject);
10868
10869 ULONG ( STDMETHODCALLTYPE *AddRef )(
10870 ICorProfilerInfo5 * This);
10871
10872 ULONG ( STDMETHODCALLTYPE *Release )(
10873 ICorProfilerInfo5 * This);
10874
10875 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
10876 ICorProfilerInfo5 * This,
10877 /* [in] */ ObjectID objectId,
10878 /* [out] */ ClassID *pClassId);
10879
10880 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
10881 ICorProfilerInfo5 * This,
10882 /* [in] */ ModuleID moduleId,
10883 /* [in] */ mdTypeDef typeDef,
10884 /* [out] */ ClassID *pClassId);
10885
10886 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
10887 ICorProfilerInfo5 * This,
10888 /* [in] */ FunctionID functionId,
10889 /* [out] */ LPCBYTE *pStart,
10890 /* [out] */ ULONG *pcSize);
10891
10892 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
10893 ICorProfilerInfo5 * This,
10894 /* [out] */ DWORD *pdwEvents);
10895
10896 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
10897 ICorProfilerInfo5 * This,
10898 /* [in] */ LPCBYTE ip,
10899 /* [out] */ FunctionID *pFunctionId);
10900
10901 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
10902 ICorProfilerInfo5 * This,
10903 /* [in] */ ModuleID moduleId,
10904 /* [in] */ mdToken token,
10905 /* [out] */ FunctionID *pFunctionId);
10906
10907 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
10908 ICorProfilerInfo5 * This,
10909 /* [in] */ ThreadID threadId,
10910 /* [out] */ HANDLE *phThread);
10911
10912 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
10913 ICorProfilerInfo5 * This,
10914 /* [in] */ ObjectID objectId,
10915 /* [out] */ ULONG *pcSize);
10916
10917 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
10918 ICorProfilerInfo5 * This,
10919 /* [in] */ ClassID classId,
10920 /* [out] */ CorElementType *pBaseElemType,
10921 /* [out] */ ClassID *pBaseClassId,
10922 /* [out] */ ULONG *pcRank);
10923
10924 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
10925 ICorProfilerInfo5 * This,
10926 /* [in] */ ThreadID threadId,
10927 /* [out] */ DWORD *pdwWin32ThreadId);
10928
10929 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
10930 ICorProfilerInfo5 * This,
10931 /* [out] */ ThreadID *pThreadId);
10932
10933 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
10934 ICorProfilerInfo5 * This,
10935 /* [in] */ ClassID classId,
10936 /* [out] */ ModuleID *pModuleId,
10937 /* [out] */ mdTypeDef *pTypeDefToken);
10938
10939 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
10940 ICorProfilerInfo5 * This,
10941 /* [in] */ FunctionID functionId,
10942 /* [out] */ ClassID *pClassId,
10943 /* [out] */ ModuleID *pModuleId,
10944 /* [out] */ mdToken *pToken);
10945
10946 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
10947 ICorProfilerInfo5 * This,
10948 /* [in] */ DWORD dwEvents);
10949
10950 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
10951 ICorProfilerInfo5 * This,
10952 /* [in] */ FunctionEnter *pFuncEnter,
10953 /* [in] */ FunctionLeave *pFuncLeave,
10954 /* [in] */ FunctionTailcall *pFuncTailcall);
10955
10956 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
10957 ICorProfilerInfo5 * This,
10958 /* [in] */ FunctionIDMapper *pFunc);
10959
10960 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
10961 ICorProfilerInfo5 * This,
10962 /* [in] */ FunctionID functionId,
10963 /* [in] */ REFIID riid,
10964 /* [out] */ IUnknown **ppImport,
10965 /* [out] */ mdToken *pToken);
10966
10967 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
10968 ICorProfilerInfo5 * This,
10969 /* [in] */ ModuleID moduleId,
10970 /* [out] */ LPCBYTE *ppBaseLoadAddress,
10971 /* [in] */ ULONG cchName,
10972 /* [out] */ ULONG *pcchName,
10973 /* [annotation][out] */
10974 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
10975 /* [out] */ AssemblyID *pAssemblyId);
10976
10977 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
10978 ICorProfilerInfo5 * This,
10979 /* [in] */ ModuleID moduleId,
10980 /* [in] */ DWORD dwOpenFlags,
10981 /* [in] */ REFIID riid,
10982 /* [out] */ IUnknown **ppOut);
10983
10984 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
10985 ICorProfilerInfo5 * This,
10986 /* [in] */ ModuleID moduleId,
10987 /* [in] */ mdMethodDef methodId,
10988 /* [out] */ LPCBYTE *ppMethodHeader,
10989 /* [out] */ ULONG *pcbMethodSize);
10990
10991 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
10992 ICorProfilerInfo5 * This,
10993 /* [in] */ ModuleID moduleId,
10994 /* [out] */ IMethodMalloc **ppMalloc);
10995
10996 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
10997 ICorProfilerInfo5 * This,
10998 /* [in] */ ModuleID moduleId,
10999 /* [in] */ mdMethodDef methodid,
11000 /* [in] */ LPCBYTE pbNewILMethodHeader);
11001
11002 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
11003 ICorProfilerInfo5 * This,
11004 /* [in] */ AppDomainID appDomainId,
11005 /* [in] */ ULONG cchName,
11006 /* [out] */ ULONG *pcchName,
11007 /* [annotation][out] */
11008 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11009 /* [out] */ ProcessID *pProcessId);
11010
11011 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
11012 ICorProfilerInfo5 * This,
11013 /* [in] */ AssemblyID assemblyId,
11014 /* [in] */ ULONG cchName,
11015 /* [out] */ ULONG *pcchName,
11016 /* [annotation][out] */
11017 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11018 /* [out] */ AppDomainID *pAppDomainId,
11019 /* [out] */ ModuleID *pModuleId);
11020
11021 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
11022 ICorProfilerInfo5 * This,
11023 /* [in] */ FunctionID functionId);
11024
11025 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
11026 ICorProfilerInfo5 * This);
11027
11028 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
11029 ICorProfilerInfo5 * This,
11030 /* [in] */ FunctionID functionId,
11031 /* [in] */ BOOL fStartJit,
11032 /* [in] */ ULONG cILMapEntries,
11033 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
11034
11035 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
11036 ICorProfilerInfo5 * This,
11037 /* [out] */ IUnknown **ppicd);
11038
11039 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
11040 ICorProfilerInfo5 * This,
11041 /* [out] */ IUnknown **ppicd);
11042
11043 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
11044 ICorProfilerInfo5 * This,
11045 /* [in] */ ThreadID threadId,
11046 /* [out] */ ContextID *pContextId);
11047
11048 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
11049 ICorProfilerInfo5 * This,
11050 /* [in] */ BOOL fThisThreadOnly,
11051 /* [out] */ DWORD *pdwProfilerContext);
11052
11053 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
11054 ICorProfilerInfo5 * This,
11055 /* [in] */ DWORD dwProfilerContext);
11056
11057 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
11058 ICorProfilerInfo5 * This,
11059 /* [in] */ FunctionID functionId,
11060 /* [in] */ ULONG32 cMap,
11061 /* [out] */ ULONG32 *pcMap,
11062 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11063
11064 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
11065 ICorProfilerInfo5 * This,
11066 /* [in] */ ThreadID thread,
11067 /* [in] */ StackSnapshotCallback *callback,
11068 /* [in] */ ULONG32 infoFlags,
11069 /* [in] */ void *clientData,
11070 /* [size_is][in] */ BYTE context[ ],
11071 /* [in] */ ULONG32 contextSize);
11072
11073 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
11074 ICorProfilerInfo5 * This,
11075 /* [in] */ FunctionEnter2 *pFuncEnter,
11076 /* [in] */ FunctionLeave2 *pFuncLeave,
11077 /* [in] */ FunctionTailcall2 *pFuncTailcall);
11078
11079 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
11080 ICorProfilerInfo5 * This,
11081 /* [in] */ FunctionID funcId,
11082 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11083 /* [out] */ ClassID *pClassId,
11084 /* [out] */ ModuleID *pModuleId,
11085 /* [out] */ mdToken *pToken,
11086 /* [in] */ ULONG32 cTypeArgs,
11087 /* [out] */ ULONG32 *pcTypeArgs,
11088 /* [out] */ ClassID typeArgs[ ]);
11089
11090 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
11091 ICorProfilerInfo5 * This,
11092 /* [out] */ ULONG *pBufferLengthOffset,
11093 /* [out] */ ULONG *pStringLengthOffset,
11094 /* [out] */ ULONG *pBufferOffset);
11095
11096 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
11097 ICorProfilerInfo5 * This,
11098 /* [in] */ ClassID classID,
11099 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
11100 /* [in] */ ULONG cFieldOffset,
11101 /* [out] */ ULONG *pcFieldOffset,
11102 /* [out] */ ULONG *pulClassSize);
11103
11104 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
11105 ICorProfilerInfo5 * This,
11106 /* [in] */ ClassID classId,
11107 /* [out] */ ModuleID *pModuleId,
11108 /* [out] */ mdTypeDef *pTypeDefToken,
11109 /* [out] */ ClassID *pParentClassId,
11110 /* [in] */ ULONG32 cNumTypeArgs,
11111 /* [out] */ ULONG32 *pcNumTypeArgs,
11112 /* [out] */ ClassID typeArgs[ ]);
11113
11114 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
11115 ICorProfilerInfo5 * This,
11116 /* [in] */ FunctionID functionID,
11117 /* [in] */ ULONG32 cCodeInfos,
11118 /* [out] */ ULONG32 *pcCodeInfos,
11119 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11120
11121 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
11122 ICorProfilerInfo5 * This,
11123 /* [in] */ ModuleID moduleID,
11124 /* [in] */ mdTypeDef typeDef,
11125 /* [in] */ ULONG32 cTypeArgs,
11126 /* [size_is][in] */ ClassID typeArgs[ ],
11127 /* [out] */ ClassID *pClassID);
11128
11129 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
11130 ICorProfilerInfo5 * This,
11131 /* [in] */ ModuleID moduleID,
11132 /* [in] */ mdMethodDef funcDef,
11133 /* [in] */ ClassID classId,
11134 /* [in] */ ULONG32 cTypeArgs,
11135 /* [size_is][in] */ ClassID typeArgs[ ],
11136 /* [out] */ FunctionID *pFunctionID);
11137
11138 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
11139 ICorProfilerInfo5 * This,
11140 /* [in] */ ModuleID moduleID,
11141 /* [out] */ ICorProfilerObjectEnum **ppEnum);
11142
11143 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
11144 ICorProfilerInfo5 * This,
11145 /* [in] */ ObjectID objectId,
11146 /* [in] */ ULONG32 cDimensions,
11147 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
11148 /* [size_is][out] */ int pDimensionLowerBounds[ ],
11149 /* [out] */ BYTE **ppData);
11150
11151 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
11152 ICorProfilerInfo5 * This,
11153 /* [in] */ ClassID classId,
11154 /* [out] */ ULONG32 *pBufferOffset);
11155
11156 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
11157 ICorProfilerInfo5 * This,
11158 /* [in] */ ThreadID threadId,
11159 /* [out] */ AppDomainID *pAppDomainId);
11160
11161 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
11162 ICorProfilerInfo5 * This,
11163 /* [in] */ ClassID classId,
11164 /* [in] */ mdFieldDef fieldToken,
11165 /* [out] */ void **ppAddress);
11166
11167 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
11168 ICorProfilerInfo5 * This,
11169 /* [in] */ ClassID classId,
11170 /* [in] */ mdFieldDef fieldToken,
11171 /* [in] */ AppDomainID appDomainId,
11172 /* [out] */ void **ppAddress);
11173
11174 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
11175 ICorProfilerInfo5 * This,
11176 /* [in] */ ClassID classId,
11177 /* [in] */ mdFieldDef fieldToken,
11178 /* [in] */ ThreadID threadId,
11179 /* [out] */ void **ppAddress);
11180
11181 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
11182 ICorProfilerInfo5 * This,
11183 /* [in] */ ClassID classId,
11184 /* [in] */ mdFieldDef fieldToken,
11185 /* [in] */ ContextID contextId,
11186 /* [out] */ void **ppAddress);
11187
11188 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
11189 ICorProfilerInfo5 * This,
11190 /* [in] */ ClassID classId,
11191 /* [in] */ mdFieldDef fieldToken,
11192 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
11193
11194 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
11195 ICorProfilerInfo5 * This,
11196 /* [in] */ ULONG cObjectRanges,
11197 /* [out] */ ULONG *pcObjectRanges,
11198 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
11199
11200 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
11201 ICorProfilerInfo5 * This,
11202 /* [in] */ ObjectID objectId,
11203 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
11204
11205 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
11206 ICorProfilerInfo5 * This,
11207 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
11208
11209 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
11210 ICorProfilerInfo5 * This,
11211 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11212
11213 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
11214 ICorProfilerInfo5 * This,
11215 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
11216
11217 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
11218 ICorProfilerInfo5 * This,
11219 /* [in] */ FunctionIDMapper2 *pFunc,
11220 /* [in] */ void *clientData);
11221
11222 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
11223 ICorProfilerInfo5 * This,
11224 /* [out] */ ULONG *pStringLengthOffset,
11225 /* [out] */ ULONG *pBufferOffset);
11226
11227 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
11228 ICorProfilerInfo5 * This,
11229 /* [in] */ FunctionEnter3 *pFuncEnter3,
11230 /* [in] */ FunctionLeave3 *pFuncLeave3,
11231 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
11232
11233 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
11234 ICorProfilerInfo5 * This,
11235 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
11236 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
11237 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
11238
11239 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
11240 ICorProfilerInfo5 * This,
11241 /* [in] */ FunctionID functionId,
11242 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11243 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11244 /* [out][in] */ ULONG *pcbArgumentInfo,
11245 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
11246
11247 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
11248 ICorProfilerInfo5 * This,
11249 /* [in] */ FunctionID functionId,
11250 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11251 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11252 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
11253
11254 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
11255 ICorProfilerInfo5 * This,
11256 /* [in] */ FunctionID functionId,
11257 /* [in] */ COR_PRF_ELT_INFO eltInfo,
11258 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
11259
11260 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
11261 ICorProfilerInfo5 * This,
11262 /* [out] */ ICorProfilerModuleEnum **ppEnum);
11263
11264 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
11265 ICorProfilerInfo5 * This,
11266 /* [out] */ USHORT *pClrInstanceId,
11267 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
11268 /* [out] */ USHORT *pMajorVersion,
11269 /* [out] */ USHORT *pMinorVersion,
11270 /* [out] */ USHORT *pBuildNumber,
11271 /* [out] */ USHORT *pQFEVersion,
11272 /* [in] */ ULONG cchVersionString,
11273 /* [out] */ ULONG *pcchVersionString,
11274 /* [annotation][out] */
11275 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
11276
11277 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
11278 ICorProfilerInfo5 * This,
11279 /* [in] */ ClassID classId,
11280 /* [in] */ mdFieldDef fieldToken,
11281 /* [in] */ AppDomainID appDomainId,
11282 /* [in] */ ThreadID threadId,
11283 /* [out] */ void **ppAddress);
11284
11285 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
11286 ICorProfilerInfo5 * This,
11287 /* [in] */ ModuleID moduleId,
11288 /* [in] */ ULONG32 cAppDomainIds,
11289 /* [out] */ ULONG32 *pcAppDomainIds,
11290 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
11291
11292 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
11293 ICorProfilerInfo5 * This,
11294 /* [in] */ ModuleID moduleId,
11295 /* [out] */ LPCBYTE *ppBaseLoadAddress,
11296 /* [in] */ ULONG cchName,
11297 /* [out] */ ULONG *pcchName,
11298 /* [annotation][out] */
11299 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11300 /* [out] */ AssemblyID *pAssemblyId,
11301 /* [out] */ DWORD *pdwModuleFlags);
11302
11303 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
11304 ICorProfilerInfo5 * This,
11305 /* [out] */ ICorProfilerThreadEnum **ppEnum);
11306
11307 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
11308 ICorProfilerInfo5 * This);
11309
11310 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
11311 ICorProfilerInfo5 * This,
11312 /* [in] */ ULONG cFunctions,
11313 /* [size_is][in] */ ModuleID moduleIds[ ],
11314 /* [size_is][in] */ mdMethodDef methodIds[ ]);
11315
11316 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
11317 ICorProfilerInfo5 * This,
11318 /* [in] */ ULONG cFunctions,
11319 /* [size_is][in] */ ModuleID moduleIds[ ],
11320 /* [size_is][in] */ mdMethodDef methodIds[ ],
11321 /* [size_is][out] */ HRESULT status[ ]);
11322
11323 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
11324 ICorProfilerInfo5 * This,
11325 /* [in] */ FunctionID functionID,
11326 /* [in] */ ReJITID reJitId,
11327 /* [in] */ ULONG32 cCodeInfos,
11328 /* [out] */ ULONG32 *pcCodeInfos,
11329 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11330
11331 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
11332 ICorProfilerInfo5 * This,
11333 /* [in] */ LPCBYTE ip,
11334 /* [out] */ FunctionID *pFunctionId,
11335 /* [out] */ ReJITID *pReJitId);
11336
11337 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
11338 ICorProfilerInfo5 * This,
11339 /* [in] */ FunctionID functionId,
11340 /* [in] */ ULONG cReJitIds,
11341 /* [out] */ ULONG *pcReJitIds,
11342 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
11343
11344 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
11345 ICorProfilerInfo5 * This,
11346 /* [in] */ FunctionID functionId,
11347 /* [in] */ ReJITID reJitId,
11348 /* [in] */ ULONG32 cMap,
11349 /* [out] */ ULONG32 *pcMap,
11350 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11351
11352 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
11353 ICorProfilerInfo5 * This,
11354 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11355
11356 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
11357 ICorProfilerInfo5 * This,
11358 /* [in] */ ObjectID objectId,
11359 /* [out] */ SIZE_T *pcSize);
11360
11361 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
11362 ICorProfilerInfo5 * This,
11363 /* [out] */ DWORD *pdwEventsLow,
11364 /* [out] */ DWORD *pdwEventsHigh);
11365
11366 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
11367 ICorProfilerInfo5 * This,
11368 /* [in] */ DWORD dwEventsLow,
11369 /* [in] */ DWORD dwEventsHigh);
11370
11371 END_INTERFACE
11372 } ICorProfilerInfo5Vtbl;
11373
11374 interface ICorProfilerInfo5
11375 {
11376 CONST_VTBL struct ICorProfilerInfo5Vtbl *lpVtbl;
11377 };
11378
11379
11380
11381#ifdef COBJMACROS
11382
11383
11384#define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject) \
11385 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
11386
11387#define ICorProfilerInfo5_AddRef(This) \
11388 ( (This)->lpVtbl -> AddRef(This) )
11389
11390#define ICorProfilerInfo5_Release(This) \
11391 ( (This)->lpVtbl -> Release(This) )
11392
11393
11394#define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId) \
11395 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
11396
11397#define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId) \
11398 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
11399
11400#define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize) \
11401 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
11402
11403#define ICorProfilerInfo5_GetEventMask(This,pdwEvents) \
11404 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
11405
11406#define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId) \
11407 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
11408
11409#define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
11410 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
11411
11412#define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread) \
11413 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
11414
11415#define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize) \
11416 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
11417
11418#define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
11419 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
11420
11421#define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
11422 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
11423
11424#define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId) \
11425 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
11426
11427#define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
11428 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
11429
11430#define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
11431 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
11432
11433#define ICorProfilerInfo5_SetEventMask(This,dwEvents) \
11434 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
11435
11436#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
11437 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
11438
11439#define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc) \
11440 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
11441
11442#define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
11443 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
11444
11445#define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
11446 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
11447
11448#define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
11449 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
11450
11451#define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
11452 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
11453
11454#define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
11455 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
11456
11457#define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
11458 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
11459
11460#define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
11461 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
11462
11463#define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
11464 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
11465
11466#define ICorProfilerInfo5_SetFunctionReJIT(This,functionId) \
11467 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
11468
11469#define ICorProfilerInfo5_ForceGC(This) \
11470 ( (This)->lpVtbl -> ForceGC(This) )
11471
11472#define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
11473 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
11474
11475#define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd) \
11476 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
11477
11478#define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd) \
11479 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
11480
11481#define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId) \
11482 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
11483
11484#define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
11485 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
11486
11487#define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext) \
11488 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
11489
11490#define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
11491 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
11492
11493
11494#define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
11495 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
11496
11497#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
11498 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
11499
11500#define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
11501 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
11502
11503#define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
11504 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
11505
11506#define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
11507 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
11508
11509#define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
11510 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
11511
11512#define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
11513 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
11514
11515#define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
11516 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
11517
11518#define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
11519 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
11520
11521#define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
11522 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
11523
11524#define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
11525 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
11526
11527#define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \
11528 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
11529
11530#define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId) \
11531 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
11532
11533#define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
11534 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
11535
11536#define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
11537 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
11538
11539#define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
11540 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
11541
11542#define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
11543 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
11544
11545#define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
11546 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
11547
11548#define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
11549 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
11550
11551#define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range) \
11552 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
11553
11554#define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo) \
11555 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
11556
11557
11558#define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum) \
11559 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
11560
11561#define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
11562 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
11563
11564#define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData) \
11565 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
11566
11567#define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
11568 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
11569
11570#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
11571 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
11572
11573#define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
11574 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
11575
11576#define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
11577 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
11578
11579#define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
11580 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
11581
11582#define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
11583 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
11584
11585#define ICorProfilerInfo5_EnumModules(This,ppEnum) \
11586 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
11587
11588#define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
11589 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
11590
11591#define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
11592 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
11593
11594#define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
11595 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
11596
11597#define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
11598 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
11599
11600
11601#define ICorProfilerInfo5_EnumThreads(This,ppEnum) \
11602 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
11603
11604#define ICorProfilerInfo5_InitializeCurrentThread(This) \
11605 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
11606
11607#define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
11608 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
11609
11610#define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
11611 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
11612
11613#define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
11614 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
11615
11616#define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
11617 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
11618
11619#define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
11620 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
11621
11622#define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
11623 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
11624
11625#define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum) \
11626 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
11627
11628#define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize) \
11629 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
11630
11631
11632#define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
11633 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
11634
11635#define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
11636 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
11637
11638#endif /* COBJMACROS */
11639
11640
11641#endif /* C style interface */
11642
11643
11644
11645
11646#endif /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */
11647
11648
11649#ifndef __ICorProfilerInfo6_INTERFACE_DEFINED__
11650#define __ICorProfilerInfo6_INTERFACE_DEFINED__
11651
11652/* interface ICorProfilerInfo6 */
11653/* [local][unique][uuid][object] */
11654
11655
11656EXTERN_C const IID IID_ICorProfilerInfo6;
11657
11658#if defined(__cplusplus) && !defined(CINTERFACE)
11659
11660 MIDL_INTERFACE("F30A070D-BFFB-46A7-B1D8-8781EF7B698A")
11661 ICorProfilerInfo6 : public ICorProfilerInfo5
11662 {
11663 public:
11664 virtual HRESULT STDMETHODCALLTYPE EnumNgenModuleMethodsInliningThisMethod(
11665 /* [in] */ ModuleID inlinersModuleId,
11666 /* [in] */ ModuleID inlineeModuleId,
11667 /* [in] */ mdMethodDef inlineeMethodId,
11668 /* [out] */ BOOL *incompleteData,
11669 /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
11670
11671 };
11672
11673
11674#else /* C style interface */
11675
11676 typedef struct ICorProfilerInfo6Vtbl
11677 {
11678 BEGIN_INTERFACE
11679
11680 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
11681 ICorProfilerInfo6 * This,
11682 /* [in] */ REFIID riid,
11683 /* [annotation][iid_is][out] */
11684 _COM_Outptr_ void **ppvObject);
11685
11686 ULONG ( STDMETHODCALLTYPE *AddRef )(
11687 ICorProfilerInfo6 * This);
11688
11689 ULONG ( STDMETHODCALLTYPE *Release )(
11690 ICorProfilerInfo6 * This);
11691
11692 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
11693 ICorProfilerInfo6 * This,
11694 /* [in] */ ObjectID objectId,
11695 /* [out] */ ClassID *pClassId);
11696
11697 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
11698 ICorProfilerInfo6 * This,
11699 /* [in] */ ModuleID moduleId,
11700 /* [in] */ mdTypeDef typeDef,
11701 /* [out] */ ClassID *pClassId);
11702
11703 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
11704 ICorProfilerInfo6 * This,
11705 /* [in] */ FunctionID functionId,
11706 /* [out] */ LPCBYTE *pStart,
11707 /* [out] */ ULONG *pcSize);
11708
11709 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
11710 ICorProfilerInfo6 * This,
11711 /* [out] */ DWORD *pdwEvents);
11712
11713 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
11714 ICorProfilerInfo6 * This,
11715 /* [in] */ LPCBYTE ip,
11716 /* [out] */ FunctionID *pFunctionId);
11717
11718 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
11719 ICorProfilerInfo6 * This,
11720 /* [in] */ ModuleID moduleId,
11721 /* [in] */ mdToken token,
11722 /* [out] */ FunctionID *pFunctionId);
11723
11724 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
11725 ICorProfilerInfo6 * This,
11726 /* [in] */ ThreadID threadId,
11727 /* [out] */ HANDLE *phThread);
11728
11729 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
11730 ICorProfilerInfo6 * This,
11731 /* [in] */ ObjectID objectId,
11732 /* [out] */ ULONG *pcSize);
11733
11734 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
11735 ICorProfilerInfo6 * This,
11736 /* [in] */ ClassID classId,
11737 /* [out] */ CorElementType *pBaseElemType,
11738 /* [out] */ ClassID *pBaseClassId,
11739 /* [out] */ ULONG *pcRank);
11740
11741 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
11742 ICorProfilerInfo6 * This,
11743 /* [in] */ ThreadID threadId,
11744 /* [out] */ DWORD *pdwWin32ThreadId);
11745
11746 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
11747 ICorProfilerInfo6 * This,
11748 /* [out] */ ThreadID *pThreadId);
11749
11750 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
11751 ICorProfilerInfo6 * This,
11752 /* [in] */ ClassID classId,
11753 /* [out] */ ModuleID *pModuleId,
11754 /* [out] */ mdTypeDef *pTypeDefToken);
11755
11756 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
11757 ICorProfilerInfo6 * This,
11758 /* [in] */ FunctionID functionId,
11759 /* [out] */ ClassID *pClassId,
11760 /* [out] */ ModuleID *pModuleId,
11761 /* [out] */ mdToken *pToken);
11762
11763 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
11764 ICorProfilerInfo6 * This,
11765 /* [in] */ DWORD dwEvents);
11766
11767 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
11768 ICorProfilerInfo6 * This,
11769 /* [in] */ FunctionEnter *pFuncEnter,
11770 /* [in] */ FunctionLeave *pFuncLeave,
11771 /* [in] */ FunctionTailcall *pFuncTailcall);
11772
11773 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
11774 ICorProfilerInfo6 * This,
11775 /* [in] */ FunctionIDMapper *pFunc);
11776
11777 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
11778 ICorProfilerInfo6 * This,
11779 /* [in] */ FunctionID functionId,
11780 /* [in] */ REFIID riid,
11781 /* [out] */ IUnknown **ppImport,
11782 /* [out] */ mdToken *pToken);
11783
11784 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
11785 ICorProfilerInfo6 * This,
11786 /* [in] */ ModuleID moduleId,
11787 /* [out] */ LPCBYTE *ppBaseLoadAddress,
11788 /* [in] */ ULONG cchName,
11789 /* [out] */ ULONG *pcchName,
11790 /* [annotation][out] */
11791 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11792 /* [out] */ AssemblyID *pAssemblyId);
11793
11794 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
11795 ICorProfilerInfo6 * This,
11796 /* [in] */ ModuleID moduleId,
11797 /* [in] */ DWORD dwOpenFlags,
11798 /* [in] */ REFIID riid,
11799 /* [out] */ IUnknown **ppOut);
11800
11801 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
11802 ICorProfilerInfo6 * This,
11803 /* [in] */ ModuleID moduleId,
11804 /* [in] */ mdMethodDef methodId,
11805 /* [out] */ LPCBYTE *ppMethodHeader,
11806 /* [out] */ ULONG *pcbMethodSize);
11807
11808 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
11809 ICorProfilerInfo6 * This,
11810 /* [in] */ ModuleID moduleId,
11811 /* [out] */ IMethodMalloc **ppMalloc);
11812
11813 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
11814 ICorProfilerInfo6 * This,
11815 /* [in] */ ModuleID moduleId,
11816 /* [in] */ mdMethodDef methodid,
11817 /* [in] */ LPCBYTE pbNewILMethodHeader);
11818
11819 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
11820 ICorProfilerInfo6 * This,
11821 /* [in] */ AppDomainID appDomainId,
11822 /* [in] */ ULONG cchName,
11823 /* [out] */ ULONG *pcchName,
11824 /* [annotation][out] */
11825 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11826 /* [out] */ ProcessID *pProcessId);
11827
11828 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
11829 ICorProfilerInfo6 * This,
11830 /* [in] */ AssemblyID assemblyId,
11831 /* [in] */ ULONG cchName,
11832 /* [out] */ ULONG *pcchName,
11833 /* [annotation][out] */
11834 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
11835 /* [out] */ AppDomainID *pAppDomainId,
11836 /* [out] */ ModuleID *pModuleId);
11837
11838 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
11839 ICorProfilerInfo6 * This,
11840 /* [in] */ FunctionID functionId);
11841
11842 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
11843 ICorProfilerInfo6 * This);
11844
11845 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
11846 ICorProfilerInfo6 * This,
11847 /* [in] */ FunctionID functionId,
11848 /* [in] */ BOOL fStartJit,
11849 /* [in] */ ULONG cILMapEntries,
11850 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
11851
11852 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
11853 ICorProfilerInfo6 * This,
11854 /* [out] */ IUnknown **ppicd);
11855
11856 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
11857 ICorProfilerInfo6 * This,
11858 /* [out] */ IUnknown **ppicd);
11859
11860 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
11861 ICorProfilerInfo6 * This,
11862 /* [in] */ ThreadID threadId,
11863 /* [out] */ ContextID *pContextId);
11864
11865 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
11866 ICorProfilerInfo6 * This,
11867 /* [in] */ BOOL fThisThreadOnly,
11868 /* [out] */ DWORD *pdwProfilerContext);
11869
11870 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
11871 ICorProfilerInfo6 * This,
11872 /* [in] */ DWORD dwProfilerContext);
11873
11874 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
11875 ICorProfilerInfo6 * This,
11876 /* [in] */ FunctionID functionId,
11877 /* [in] */ ULONG32 cMap,
11878 /* [out] */ ULONG32 *pcMap,
11879 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
11880
11881 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
11882 ICorProfilerInfo6 * This,
11883 /* [in] */ ThreadID thread,
11884 /* [in] */ StackSnapshotCallback *callback,
11885 /* [in] */ ULONG32 infoFlags,
11886 /* [in] */ void *clientData,
11887 /* [size_is][in] */ BYTE context[ ],
11888 /* [in] */ ULONG32 contextSize);
11889
11890 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
11891 ICorProfilerInfo6 * This,
11892 /* [in] */ FunctionEnter2 *pFuncEnter,
11893 /* [in] */ FunctionLeave2 *pFuncLeave,
11894 /* [in] */ FunctionTailcall2 *pFuncTailcall);
11895
11896 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
11897 ICorProfilerInfo6 * This,
11898 /* [in] */ FunctionID funcId,
11899 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11900 /* [out] */ ClassID *pClassId,
11901 /* [out] */ ModuleID *pModuleId,
11902 /* [out] */ mdToken *pToken,
11903 /* [in] */ ULONG32 cTypeArgs,
11904 /* [out] */ ULONG32 *pcTypeArgs,
11905 /* [out] */ ClassID typeArgs[ ]);
11906
11907 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
11908 ICorProfilerInfo6 * This,
11909 /* [out] */ ULONG *pBufferLengthOffset,
11910 /* [out] */ ULONG *pStringLengthOffset,
11911 /* [out] */ ULONG *pBufferOffset);
11912
11913 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
11914 ICorProfilerInfo6 * This,
11915 /* [in] */ ClassID classID,
11916 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
11917 /* [in] */ ULONG cFieldOffset,
11918 /* [out] */ ULONG *pcFieldOffset,
11919 /* [out] */ ULONG *pulClassSize);
11920
11921 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
11922 ICorProfilerInfo6 * This,
11923 /* [in] */ ClassID classId,
11924 /* [out] */ ModuleID *pModuleId,
11925 /* [out] */ mdTypeDef *pTypeDefToken,
11926 /* [out] */ ClassID *pParentClassId,
11927 /* [in] */ ULONG32 cNumTypeArgs,
11928 /* [out] */ ULONG32 *pcNumTypeArgs,
11929 /* [out] */ ClassID typeArgs[ ]);
11930
11931 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
11932 ICorProfilerInfo6 * This,
11933 /* [in] */ FunctionID functionID,
11934 /* [in] */ ULONG32 cCodeInfos,
11935 /* [out] */ ULONG32 *pcCodeInfos,
11936 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
11937
11938 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
11939 ICorProfilerInfo6 * This,
11940 /* [in] */ ModuleID moduleID,
11941 /* [in] */ mdTypeDef typeDef,
11942 /* [in] */ ULONG32 cTypeArgs,
11943 /* [size_is][in] */ ClassID typeArgs[ ],
11944 /* [out] */ ClassID *pClassID);
11945
11946 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
11947 ICorProfilerInfo6 * This,
11948 /* [in] */ ModuleID moduleID,
11949 /* [in] */ mdMethodDef funcDef,
11950 /* [in] */ ClassID classId,
11951 /* [in] */ ULONG32 cTypeArgs,
11952 /* [size_is][in] */ ClassID typeArgs[ ],
11953 /* [out] */ FunctionID *pFunctionID);
11954
11955 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
11956 ICorProfilerInfo6 * This,
11957 /* [in] */ ModuleID moduleID,
11958 /* [out] */ ICorProfilerObjectEnum **ppEnum);
11959
11960 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
11961 ICorProfilerInfo6 * This,
11962 /* [in] */ ObjectID objectId,
11963 /* [in] */ ULONG32 cDimensions,
11964 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
11965 /* [size_is][out] */ int pDimensionLowerBounds[ ],
11966 /* [out] */ BYTE **ppData);
11967
11968 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
11969 ICorProfilerInfo6 * This,
11970 /* [in] */ ClassID classId,
11971 /* [out] */ ULONG32 *pBufferOffset);
11972
11973 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
11974 ICorProfilerInfo6 * This,
11975 /* [in] */ ThreadID threadId,
11976 /* [out] */ AppDomainID *pAppDomainId);
11977
11978 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
11979 ICorProfilerInfo6 * This,
11980 /* [in] */ ClassID classId,
11981 /* [in] */ mdFieldDef fieldToken,
11982 /* [out] */ void **ppAddress);
11983
11984 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
11985 ICorProfilerInfo6 * This,
11986 /* [in] */ ClassID classId,
11987 /* [in] */ mdFieldDef fieldToken,
11988 /* [in] */ AppDomainID appDomainId,
11989 /* [out] */ void **ppAddress);
11990
11991 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
11992 ICorProfilerInfo6 * This,
11993 /* [in] */ ClassID classId,
11994 /* [in] */ mdFieldDef fieldToken,
11995 /* [in] */ ThreadID threadId,
11996 /* [out] */ void **ppAddress);
11997
11998 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
11999 ICorProfilerInfo6 * This,
12000 /* [in] */ ClassID classId,
12001 /* [in] */ mdFieldDef fieldToken,
12002 /* [in] */ ContextID contextId,
12003 /* [out] */ void **ppAddress);
12004
12005 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
12006 ICorProfilerInfo6 * This,
12007 /* [in] */ ClassID classId,
12008 /* [in] */ mdFieldDef fieldToken,
12009 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
12010
12011 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
12012 ICorProfilerInfo6 * This,
12013 /* [in] */ ULONG cObjectRanges,
12014 /* [out] */ ULONG *pcObjectRanges,
12015 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
12016
12017 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
12018 ICorProfilerInfo6 * This,
12019 /* [in] */ ObjectID objectId,
12020 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
12021
12022 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
12023 ICorProfilerInfo6 * This,
12024 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12025
12026 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
12027 ICorProfilerInfo6 * This,
12028 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12029
12030 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
12031 ICorProfilerInfo6 * This,
12032 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12033
12034 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
12035 ICorProfilerInfo6 * This,
12036 /* [in] */ FunctionIDMapper2 *pFunc,
12037 /* [in] */ void *clientData);
12038
12039 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
12040 ICorProfilerInfo6 * This,
12041 /* [out] */ ULONG *pStringLengthOffset,
12042 /* [out] */ ULONG *pBufferOffset);
12043
12044 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
12045 ICorProfilerInfo6 * This,
12046 /* [in] */ FunctionEnter3 *pFuncEnter3,
12047 /* [in] */ FunctionLeave3 *pFuncLeave3,
12048 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12049
12050 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
12051 ICorProfilerInfo6 * This,
12052 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12053 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12054 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12055
12056 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
12057 ICorProfilerInfo6 * This,
12058 /* [in] */ FunctionID functionId,
12059 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12060 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12061 /* [out][in] */ ULONG *pcbArgumentInfo,
12062 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12063
12064 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
12065 ICorProfilerInfo6 * This,
12066 /* [in] */ FunctionID functionId,
12067 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12068 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12069 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12070
12071 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
12072 ICorProfilerInfo6 * This,
12073 /* [in] */ FunctionID functionId,
12074 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12075 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12076
12077 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
12078 ICorProfilerInfo6 * This,
12079 /* [out] */ ICorProfilerModuleEnum **ppEnum);
12080
12081 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
12082 ICorProfilerInfo6 * This,
12083 /* [out] */ USHORT *pClrInstanceId,
12084 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12085 /* [out] */ USHORT *pMajorVersion,
12086 /* [out] */ USHORT *pMinorVersion,
12087 /* [out] */ USHORT *pBuildNumber,
12088 /* [out] */ USHORT *pQFEVersion,
12089 /* [in] */ ULONG cchVersionString,
12090 /* [out] */ ULONG *pcchVersionString,
12091 /* [annotation][out] */
12092 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
12093
12094 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
12095 ICorProfilerInfo6 * This,
12096 /* [in] */ ClassID classId,
12097 /* [in] */ mdFieldDef fieldToken,
12098 /* [in] */ AppDomainID appDomainId,
12099 /* [in] */ ThreadID threadId,
12100 /* [out] */ void **ppAddress);
12101
12102 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
12103 ICorProfilerInfo6 * This,
12104 /* [in] */ ModuleID moduleId,
12105 /* [in] */ ULONG32 cAppDomainIds,
12106 /* [out] */ ULONG32 *pcAppDomainIds,
12107 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
12108
12109 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
12110 ICorProfilerInfo6 * This,
12111 /* [in] */ ModuleID moduleId,
12112 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12113 /* [in] */ ULONG cchName,
12114 /* [out] */ ULONG *pcchName,
12115 /* [annotation][out] */
12116 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12117 /* [out] */ AssemblyID *pAssemblyId,
12118 /* [out] */ DWORD *pdwModuleFlags);
12119
12120 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
12121 ICorProfilerInfo6 * This,
12122 /* [out] */ ICorProfilerThreadEnum **ppEnum);
12123
12124 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
12125 ICorProfilerInfo6 * This);
12126
12127 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
12128 ICorProfilerInfo6 * This,
12129 /* [in] */ ULONG cFunctions,
12130 /* [size_is][in] */ ModuleID moduleIds[ ],
12131 /* [size_is][in] */ mdMethodDef methodIds[ ]);
12132
12133 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
12134 ICorProfilerInfo6 * This,
12135 /* [in] */ ULONG cFunctions,
12136 /* [size_is][in] */ ModuleID moduleIds[ ],
12137 /* [size_is][in] */ mdMethodDef methodIds[ ],
12138 /* [size_is][out] */ HRESULT status[ ]);
12139
12140 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
12141 ICorProfilerInfo6 * This,
12142 /* [in] */ FunctionID functionID,
12143 /* [in] */ ReJITID reJitId,
12144 /* [in] */ ULONG32 cCodeInfos,
12145 /* [out] */ ULONG32 *pcCodeInfos,
12146 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12147
12148 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
12149 ICorProfilerInfo6 * This,
12150 /* [in] */ LPCBYTE ip,
12151 /* [out] */ FunctionID *pFunctionId,
12152 /* [out] */ ReJITID *pReJitId);
12153
12154 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
12155 ICorProfilerInfo6 * This,
12156 /* [in] */ FunctionID functionId,
12157 /* [in] */ ULONG cReJitIds,
12158 /* [out] */ ULONG *pcReJitIds,
12159 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
12160
12161 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
12162 ICorProfilerInfo6 * This,
12163 /* [in] */ FunctionID functionId,
12164 /* [in] */ ReJITID reJitId,
12165 /* [in] */ ULONG32 cMap,
12166 /* [out] */ ULONG32 *pcMap,
12167 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
12168
12169 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
12170 ICorProfilerInfo6 * This,
12171 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12172
12173 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
12174 ICorProfilerInfo6 * This,
12175 /* [in] */ ObjectID objectId,
12176 /* [out] */ SIZE_T *pcSize);
12177
12178 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
12179 ICorProfilerInfo6 * This,
12180 /* [out] */ DWORD *pdwEventsLow,
12181 /* [out] */ DWORD *pdwEventsHigh);
12182
12183 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
12184 ICorProfilerInfo6 * This,
12185 /* [in] */ DWORD dwEventsLow,
12186 /* [in] */ DWORD dwEventsHigh);
12187
12188 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
12189 ICorProfilerInfo6 * This,
12190 /* [in] */ ModuleID inlinersModuleId,
12191 /* [in] */ ModuleID inlineeModuleId,
12192 /* [in] */ mdMethodDef inlineeMethodId,
12193 /* [out] */ BOOL *incompleteData,
12194 /* [out] */ ICorProfilerMethodEnum **ppEnum);
12195
12196 END_INTERFACE
12197 } ICorProfilerInfo6Vtbl;
12198
12199 interface ICorProfilerInfo6
12200 {
12201 CONST_VTBL struct ICorProfilerInfo6Vtbl *lpVtbl;
12202 };
12203
12204
12205
12206#ifdef COBJMACROS
12207
12208
12209#define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject) \
12210 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
12211
12212#define ICorProfilerInfo6_AddRef(This) \
12213 ( (This)->lpVtbl -> AddRef(This) )
12214
12215#define ICorProfilerInfo6_Release(This) \
12216 ( (This)->lpVtbl -> Release(This) )
12217
12218
12219#define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId) \
12220 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
12221
12222#define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId) \
12223 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
12224
12225#define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize) \
12226 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
12227
12228#define ICorProfilerInfo6_GetEventMask(This,pdwEvents) \
12229 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
12230
12231#define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId) \
12232 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
12233
12234#define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
12235 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
12236
12237#define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread) \
12238 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
12239
12240#define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize) \
12241 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
12242
12243#define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
12244 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
12245
12246#define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
12247 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
12248
12249#define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId) \
12250 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
12251
12252#define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
12253 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
12254
12255#define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
12256 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
12257
12258#define ICorProfilerInfo6_SetEventMask(This,dwEvents) \
12259 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
12260
12261#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
12262 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
12263
12264#define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc) \
12265 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
12266
12267#define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
12268 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
12269
12270#define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
12271 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
12272
12273#define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
12274 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
12275
12276#define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
12277 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
12278
12279#define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
12280 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
12281
12282#define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
12283 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
12284
12285#define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
12286 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
12287
12288#define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
12289 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
12290
12291#define ICorProfilerInfo6_SetFunctionReJIT(This,functionId) \
12292 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
12293
12294#define ICorProfilerInfo6_ForceGC(This) \
12295 ( (This)->lpVtbl -> ForceGC(This) )
12296
12297#define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
12298 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
12299
12300#define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd) \
12301 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
12302
12303#define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd) \
12304 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
12305
12306#define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId) \
12307 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
12308
12309#define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
12310 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
12311
12312#define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext) \
12313 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
12314
12315#define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
12316 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
12317
12318
12319#define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
12320 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
12321
12322#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
12323 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
12324
12325#define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
12326 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
12327
12328#define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
12329 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
12330
12331#define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
12332 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
12333
12334#define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
12335 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
12336
12337#define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
12338 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
12339
12340#define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
12341 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
12342
12343#define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
12344 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
12345
12346#define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
12347 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
12348
12349#define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
12350 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
12351
12352#define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \
12353 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
12354
12355#define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId) \
12356 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
12357
12358#define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
12359 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
12360
12361#define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
12362 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
12363
12364#define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
12365 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
12366
12367#define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
12368 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
12369
12370#define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
12371 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
12372
12373#define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
12374 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
12375
12376#define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range) \
12377 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
12378
12379#define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo) \
12380 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
12381
12382
12383#define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum) \
12384 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
12385
12386#define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
12387 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
12388
12389#define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData) \
12390 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
12391
12392#define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
12393 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
12394
12395#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
12396 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
12397
12398#define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
12399 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
12400
12401#define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
12402 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
12403
12404#define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
12405 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
12406
12407#define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
12408 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
12409
12410#define ICorProfilerInfo6_EnumModules(This,ppEnum) \
12411 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
12412
12413#define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
12414 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
12415
12416#define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
12417 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
12418
12419#define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
12420 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
12421
12422#define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
12423 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
12424
12425
12426#define ICorProfilerInfo6_EnumThreads(This,ppEnum) \
12427 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
12428
12429#define ICorProfilerInfo6_InitializeCurrentThread(This) \
12430 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
12431
12432#define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
12433 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
12434
12435#define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
12436 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
12437
12438#define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
12439 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
12440
12441#define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
12442 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
12443
12444#define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
12445 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
12446
12447#define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
12448 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
12449
12450#define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum) \
12451 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
12452
12453#define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize) \
12454 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
12455
12456
12457#define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
12458 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
12459
12460#define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
12461 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
12462
12463
12464#define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
12465 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
12466
12467#endif /* COBJMACROS */
12468
12469
12470#endif /* C style interface */
12471
12472
12473
12474
12475#endif /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */
12476
12477
12478#ifndef __ICorProfilerInfo7_INTERFACE_DEFINED__
12479#define __ICorProfilerInfo7_INTERFACE_DEFINED__
12480
12481/* interface ICorProfilerInfo7 */
12482/* [local][unique][uuid][object] */
12483
12484
12485EXTERN_C const IID IID_ICorProfilerInfo7;
12486
12487#if defined(__cplusplus) && !defined(CINTERFACE)
12488
12489 MIDL_INTERFACE("9AEECC0D-63E0-4187-8C00-E312F503F663")
12490 ICorProfilerInfo7 : public ICorProfilerInfo6
12491 {
12492 public:
12493 virtual HRESULT STDMETHODCALLTYPE ApplyMetaData(
12494 /* [in] */ ModuleID moduleId) = 0;
12495
12496 virtual HRESULT STDMETHODCALLTYPE GetInMemorySymbolsLength(
12497 /* [in] */ ModuleID moduleId,
12498 /* [out] */ DWORD *pCountSymbolBytes) = 0;
12499
12500 virtual HRESULT STDMETHODCALLTYPE ReadInMemorySymbols(
12501 /* [in] */ ModuleID moduleId,
12502 /* [in] */ DWORD symbolsReadOffset,
12503 /* [out] */ BYTE *pSymbolBytes,
12504 /* [in] */ DWORD countSymbolBytes,
12505 /* [out] */ DWORD *pCountSymbolBytesRead) = 0;
12506
12507 };
12508
12509
12510#else /* C style interface */
12511
12512 typedef struct ICorProfilerInfo7Vtbl
12513 {
12514 BEGIN_INTERFACE
12515
12516 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
12517 ICorProfilerInfo7 * This,
12518 /* [in] */ REFIID riid,
12519 /* [annotation][iid_is][out] */
12520 _COM_Outptr_ void **ppvObject);
12521
12522 ULONG ( STDMETHODCALLTYPE *AddRef )(
12523 ICorProfilerInfo7 * This);
12524
12525 ULONG ( STDMETHODCALLTYPE *Release )(
12526 ICorProfilerInfo7 * This);
12527
12528 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
12529 ICorProfilerInfo7 * This,
12530 /* [in] */ ObjectID objectId,
12531 /* [out] */ ClassID *pClassId);
12532
12533 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
12534 ICorProfilerInfo7 * This,
12535 /* [in] */ ModuleID moduleId,
12536 /* [in] */ mdTypeDef typeDef,
12537 /* [out] */ ClassID *pClassId);
12538
12539 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
12540 ICorProfilerInfo7 * This,
12541 /* [in] */ FunctionID functionId,
12542 /* [out] */ LPCBYTE *pStart,
12543 /* [out] */ ULONG *pcSize);
12544
12545 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
12546 ICorProfilerInfo7 * This,
12547 /* [out] */ DWORD *pdwEvents);
12548
12549 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
12550 ICorProfilerInfo7 * This,
12551 /* [in] */ LPCBYTE ip,
12552 /* [out] */ FunctionID *pFunctionId);
12553
12554 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
12555 ICorProfilerInfo7 * This,
12556 /* [in] */ ModuleID moduleId,
12557 /* [in] */ mdToken token,
12558 /* [out] */ FunctionID *pFunctionId);
12559
12560 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
12561 ICorProfilerInfo7 * This,
12562 /* [in] */ ThreadID threadId,
12563 /* [out] */ HANDLE *phThread);
12564
12565 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
12566 ICorProfilerInfo7 * This,
12567 /* [in] */ ObjectID objectId,
12568 /* [out] */ ULONG *pcSize);
12569
12570 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
12571 ICorProfilerInfo7 * This,
12572 /* [in] */ ClassID classId,
12573 /* [out] */ CorElementType *pBaseElemType,
12574 /* [out] */ ClassID *pBaseClassId,
12575 /* [out] */ ULONG *pcRank);
12576
12577 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
12578 ICorProfilerInfo7 * This,
12579 /* [in] */ ThreadID threadId,
12580 /* [out] */ DWORD *pdwWin32ThreadId);
12581
12582 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
12583 ICorProfilerInfo7 * This,
12584 /* [out] */ ThreadID *pThreadId);
12585
12586 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
12587 ICorProfilerInfo7 * This,
12588 /* [in] */ ClassID classId,
12589 /* [out] */ ModuleID *pModuleId,
12590 /* [out] */ mdTypeDef *pTypeDefToken);
12591
12592 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
12593 ICorProfilerInfo7 * This,
12594 /* [in] */ FunctionID functionId,
12595 /* [out] */ ClassID *pClassId,
12596 /* [out] */ ModuleID *pModuleId,
12597 /* [out] */ mdToken *pToken);
12598
12599 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
12600 ICorProfilerInfo7 * This,
12601 /* [in] */ DWORD dwEvents);
12602
12603 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
12604 ICorProfilerInfo7 * This,
12605 /* [in] */ FunctionEnter *pFuncEnter,
12606 /* [in] */ FunctionLeave *pFuncLeave,
12607 /* [in] */ FunctionTailcall *pFuncTailcall);
12608
12609 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
12610 ICorProfilerInfo7 * This,
12611 /* [in] */ FunctionIDMapper *pFunc);
12612
12613 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
12614 ICorProfilerInfo7 * This,
12615 /* [in] */ FunctionID functionId,
12616 /* [in] */ REFIID riid,
12617 /* [out] */ IUnknown **ppImport,
12618 /* [out] */ mdToken *pToken);
12619
12620 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
12621 ICorProfilerInfo7 * This,
12622 /* [in] */ ModuleID moduleId,
12623 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12624 /* [in] */ ULONG cchName,
12625 /* [out] */ ULONG *pcchName,
12626 /* [annotation][out] */
12627 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12628 /* [out] */ AssemblyID *pAssemblyId);
12629
12630 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
12631 ICorProfilerInfo7 * This,
12632 /* [in] */ ModuleID moduleId,
12633 /* [in] */ DWORD dwOpenFlags,
12634 /* [in] */ REFIID riid,
12635 /* [out] */ IUnknown **ppOut);
12636
12637 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
12638 ICorProfilerInfo7 * This,
12639 /* [in] */ ModuleID moduleId,
12640 /* [in] */ mdMethodDef methodId,
12641 /* [out] */ LPCBYTE *ppMethodHeader,
12642 /* [out] */ ULONG *pcbMethodSize);
12643
12644 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
12645 ICorProfilerInfo7 * This,
12646 /* [in] */ ModuleID moduleId,
12647 /* [out] */ IMethodMalloc **ppMalloc);
12648
12649 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
12650 ICorProfilerInfo7 * This,
12651 /* [in] */ ModuleID moduleId,
12652 /* [in] */ mdMethodDef methodid,
12653 /* [in] */ LPCBYTE pbNewILMethodHeader);
12654
12655 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
12656 ICorProfilerInfo7 * This,
12657 /* [in] */ AppDomainID appDomainId,
12658 /* [in] */ ULONG cchName,
12659 /* [out] */ ULONG *pcchName,
12660 /* [annotation][out] */
12661 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12662 /* [out] */ ProcessID *pProcessId);
12663
12664 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
12665 ICorProfilerInfo7 * This,
12666 /* [in] */ AssemblyID assemblyId,
12667 /* [in] */ ULONG cchName,
12668 /* [out] */ ULONG *pcchName,
12669 /* [annotation][out] */
12670 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12671 /* [out] */ AppDomainID *pAppDomainId,
12672 /* [out] */ ModuleID *pModuleId);
12673
12674 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
12675 ICorProfilerInfo7 * This,
12676 /* [in] */ FunctionID functionId);
12677
12678 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
12679 ICorProfilerInfo7 * This);
12680
12681 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
12682 ICorProfilerInfo7 * This,
12683 /* [in] */ FunctionID functionId,
12684 /* [in] */ BOOL fStartJit,
12685 /* [in] */ ULONG cILMapEntries,
12686 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
12687
12688 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
12689 ICorProfilerInfo7 * This,
12690 /* [out] */ IUnknown **ppicd);
12691
12692 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
12693 ICorProfilerInfo7 * This,
12694 /* [out] */ IUnknown **ppicd);
12695
12696 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
12697 ICorProfilerInfo7 * This,
12698 /* [in] */ ThreadID threadId,
12699 /* [out] */ ContextID *pContextId);
12700
12701 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
12702 ICorProfilerInfo7 * This,
12703 /* [in] */ BOOL fThisThreadOnly,
12704 /* [out] */ DWORD *pdwProfilerContext);
12705
12706 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
12707 ICorProfilerInfo7 * This,
12708 /* [in] */ DWORD dwProfilerContext);
12709
12710 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
12711 ICorProfilerInfo7 * This,
12712 /* [in] */ FunctionID functionId,
12713 /* [in] */ ULONG32 cMap,
12714 /* [out] */ ULONG32 *pcMap,
12715 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
12716
12717 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
12718 ICorProfilerInfo7 * This,
12719 /* [in] */ ThreadID thread,
12720 /* [in] */ StackSnapshotCallback *callback,
12721 /* [in] */ ULONG32 infoFlags,
12722 /* [in] */ void *clientData,
12723 /* [size_is][in] */ BYTE context[ ],
12724 /* [in] */ ULONG32 contextSize);
12725
12726 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
12727 ICorProfilerInfo7 * This,
12728 /* [in] */ FunctionEnter2 *pFuncEnter,
12729 /* [in] */ FunctionLeave2 *pFuncLeave,
12730 /* [in] */ FunctionTailcall2 *pFuncTailcall);
12731
12732 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
12733 ICorProfilerInfo7 * This,
12734 /* [in] */ FunctionID funcId,
12735 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
12736 /* [out] */ ClassID *pClassId,
12737 /* [out] */ ModuleID *pModuleId,
12738 /* [out] */ mdToken *pToken,
12739 /* [in] */ ULONG32 cTypeArgs,
12740 /* [out] */ ULONG32 *pcTypeArgs,
12741 /* [out] */ ClassID typeArgs[ ]);
12742
12743 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
12744 ICorProfilerInfo7 * This,
12745 /* [out] */ ULONG *pBufferLengthOffset,
12746 /* [out] */ ULONG *pStringLengthOffset,
12747 /* [out] */ ULONG *pBufferOffset);
12748
12749 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
12750 ICorProfilerInfo7 * This,
12751 /* [in] */ ClassID classID,
12752 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
12753 /* [in] */ ULONG cFieldOffset,
12754 /* [out] */ ULONG *pcFieldOffset,
12755 /* [out] */ ULONG *pulClassSize);
12756
12757 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
12758 ICorProfilerInfo7 * This,
12759 /* [in] */ ClassID classId,
12760 /* [out] */ ModuleID *pModuleId,
12761 /* [out] */ mdTypeDef *pTypeDefToken,
12762 /* [out] */ ClassID *pParentClassId,
12763 /* [in] */ ULONG32 cNumTypeArgs,
12764 /* [out] */ ULONG32 *pcNumTypeArgs,
12765 /* [out] */ ClassID typeArgs[ ]);
12766
12767 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
12768 ICorProfilerInfo7 * This,
12769 /* [in] */ FunctionID functionID,
12770 /* [in] */ ULONG32 cCodeInfos,
12771 /* [out] */ ULONG32 *pcCodeInfos,
12772 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12773
12774 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
12775 ICorProfilerInfo7 * This,
12776 /* [in] */ ModuleID moduleID,
12777 /* [in] */ mdTypeDef typeDef,
12778 /* [in] */ ULONG32 cTypeArgs,
12779 /* [size_is][in] */ ClassID typeArgs[ ],
12780 /* [out] */ ClassID *pClassID);
12781
12782 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
12783 ICorProfilerInfo7 * This,
12784 /* [in] */ ModuleID moduleID,
12785 /* [in] */ mdMethodDef funcDef,
12786 /* [in] */ ClassID classId,
12787 /* [in] */ ULONG32 cTypeArgs,
12788 /* [size_is][in] */ ClassID typeArgs[ ],
12789 /* [out] */ FunctionID *pFunctionID);
12790
12791 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
12792 ICorProfilerInfo7 * This,
12793 /* [in] */ ModuleID moduleID,
12794 /* [out] */ ICorProfilerObjectEnum **ppEnum);
12795
12796 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
12797 ICorProfilerInfo7 * This,
12798 /* [in] */ ObjectID objectId,
12799 /* [in] */ ULONG32 cDimensions,
12800 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
12801 /* [size_is][out] */ int pDimensionLowerBounds[ ],
12802 /* [out] */ BYTE **ppData);
12803
12804 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
12805 ICorProfilerInfo7 * This,
12806 /* [in] */ ClassID classId,
12807 /* [out] */ ULONG32 *pBufferOffset);
12808
12809 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
12810 ICorProfilerInfo7 * This,
12811 /* [in] */ ThreadID threadId,
12812 /* [out] */ AppDomainID *pAppDomainId);
12813
12814 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
12815 ICorProfilerInfo7 * This,
12816 /* [in] */ ClassID classId,
12817 /* [in] */ mdFieldDef fieldToken,
12818 /* [out] */ void **ppAddress);
12819
12820 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
12821 ICorProfilerInfo7 * This,
12822 /* [in] */ ClassID classId,
12823 /* [in] */ mdFieldDef fieldToken,
12824 /* [in] */ AppDomainID appDomainId,
12825 /* [out] */ void **ppAddress);
12826
12827 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
12828 ICorProfilerInfo7 * This,
12829 /* [in] */ ClassID classId,
12830 /* [in] */ mdFieldDef fieldToken,
12831 /* [in] */ ThreadID threadId,
12832 /* [out] */ void **ppAddress);
12833
12834 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
12835 ICorProfilerInfo7 * This,
12836 /* [in] */ ClassID classId,
12837 /* [in] */ mdFieldDef fieldToken,
12838 /* [in] */ ContextID contextId,
12839 /* [out] */ void **ppAddress);
12840
12841 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
12842 ICorProfilerInfo7 * This,
12843 /* [in] */ ClassID classId,
12844 /* [in] */ mdFieldDef fieldToken,
12845 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
12846
12847 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
12848 ICorProfilerInfo7 * This,
12849 /* [in] */ ULONG cObjectRanges,
12850 /* [out] */ ULONG *pcObjectRanges,
12851 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
12852
12853 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
12854 ICorProfilerInfo7 * This,
12855 /* [in] */ ObjectID objectId,
12856 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
12857
12858 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
12859 ICorProfilerInfo7 * This,
12860 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12861
12862 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
12863 ICorProfilerInfo7 * This,
12864 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12865
12866 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
12867 ICorProfilerInfo7 * This,
12868 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12869
12870 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
12871 ICorProfilerInfo7 * This,
12872 /* [in] */ FunctionIDMapper2 *pFunc,
12873 /* [in] */ void *clientData);
12874
12875 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
12876 ICorProfilerInfo7 * This,
12877 /* [out] */ ULONG *pStringLengthOffset,
12878 /* [out] */ ULONG *pBufferOffset);
12879
12880 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
12881 ICorProfilerInfo7 * This,
12882 /* [in] */ FunctionEnter3 *pFuncEnter3,
12883 /* [in] */ FunctionLeave3 *pFuncLeave3,
12884 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12885
12886 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
12887 ICorProfilerInfo7 * This,
12888 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12889 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12890 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12891
12892 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
12893 ICorProfilerInfo7 * This,
12894 /* [in] */ FunctionID functionId,
12895 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12896 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12897 /* [out][in] */ ULONG *pcbArgumentInfo,
12898 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12899
12900 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
12901 ICorProfilerInfo7 * This,
12902 /* [in] */ FunctionID functionId,
12903 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12904 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12905 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12906
12907 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
12908 ICorProfilerInfo7 * This,
12909 /* [in] */ FunctionID functionId,
12910 /* [in] */ COR_PRF_ELT_INFO eltInfo,
12911 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12912
12913 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
12914 ICorProfilerInfo7 * This,
12915 /* [out] */ ICorProfilerModuleEnum **ppEnum);
12916
12917 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
12918 ICorProfilerInfo7 * This,
12919 /* [out] */ USHORT *pClrInstanceId,
12920 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12921 /* [out] */ USHORT *pMajorVersion,
12922 /* [out] */ USHORT *pMinorVersion,
12923 /* [out] */ USHORT *pBuildNumber,
12924 /* [out] */ USHORT *pQFEVersion,
12925 /* [in] */ ULONG cchVersionString,
12926 /* [out] */ ULONG *pcchVersionString,
12927 /* [annotation][out] */
12928 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
12929
12930 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
12931 ICorProfilerInfo7 * This,
12932 /* [in] */ ClassID classId,
12933 /* [in] */ mdFieldDef fieldToken,
12934 /* [in] */ AppDomainID appDomainId,
12935 /* [in] */ ThreadID threadId,
12936 /* [out] */ void **ppAddress);
12937
12938 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
12939 ICorProfilerInfo7 * This,
12940 /* [in] */ ModuleID moduleId,
12941 /* [in] */ ULONG32 cAppDomainIds,
12942 /* [out] */ ULONG32 *pcAppDomainIds,
12943 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
12944
12945 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
12946 ICorProfilerInfo7 * This,
12947 /* [in] */ ModuleID moduleId,
12948 /* [out] */ LPCBYTE *ppBaseLoadAddress,
12949 /* [in] */ ULONG cchName,
12950 /* [out] */ ULONG *pcchName,
12951 /* [annotation][out] */
12952 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
12953 /* [out] */ AssemblyID *pAssemblyId,
12954 /* [out] */ DWORD *pdwModuleFlags);
12955
12956 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
12957 ICorProfilerInfo7 * This,
12958 /* [out] */ ICorProfilerThreadEnum **ppEnum);
12959
12960 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
12961 ICorProfilerInfo7 * This);
12962
12963 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
12964 ICorProfilerInfo7 * This,
12965 /* [in] */ ULONG cFunctions,
12966 /* [size_is][in] */ ModuleID moduleIds[ ],
12967 /* [size_is][in] */ mdMethodDef methodIds[ ]);
12968
12969 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
12970 ICorProfilerInfo7 * This,
12971 /* [in] */ ULONG cFunctions,
12972 /* [size_is][in] */ ModuleID moduleIds[ ],
12973 /* [size_is][in] */ mdMethodDef methodIds[ ],
12974 /* [size_is][out] */ HRESULT status[ ]);
12975
12976 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
12977 ICorProfilerInfo7 * This,
12978 /* [in] */ FunctionID functionID,
12979 /* [in] */ ReJITID reJitId,
12980 /* [in] */ ULONG32 cCodeInfos,
12981 /* [out] */ ULONG32 *pcCodeInfos,
12982 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
12983
12984 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
12985 ICorProfilerInfo7 * This,
12986 /* [in] */ LPCBYTE ip,
12987 /* [out] */ FunctionID *pFunctionId,
12988 /* [out] */ ReJITID *pReJitId);
12989
12990 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
12991 ICorProfilerInfo7 * This,
12992 /* [in] */ FunctionID functionId,
12993 /* [in] */ ULONG cReJitIds,
12994 /* [out] */ ULONG *pcReJitIds,
12995 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
12996
12997 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
12998 ICorProfilerInfo7 * This,
12999 /* [in] */ FunctionID functionId,
13000 /* [in] */ ReJITID reJitId,
13001 /* [in] */ ULONG32 cMap,
13002 /* [out] */ ULONG32 *pcMap,
13003 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
13004
13005 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
13006 ICorProfilerInfo7 * This,
13007 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13008
13009 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
13010 ICorProfilerInfo7 * This,
13011 /* [in] */ ObjectID objectId,
13012 /* [out] */ SIZE_T *pcSize);
13013
13014 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
13015 ICorProfilerInfo7 * This,
13016 /* [out] */ DWORD *pdwEventsLow,
13017 /* [out] */ DWORD *pdwEventsHigh);
13018
13019 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
13020 ICorProfilerInfo7 * This,
13021 /* [in] */ DWORD dwEventsLow,
13022 /* [in] */ DWORD dwEventsHigh);
13023
13024 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
13025 ICorProfilerInfo7 * This,
13026 /* [in] */ ModuleID inlinersModuleId,
13027 /* [in] */ ModuleID inlineeModuleId,
13028 /* [in] */ mdMethodDef inlineeMethodId,
13029 /* [out] */ BOOL *incompleteData,
13030 /* [out] */ ICorProfilerMethodEnum **ppEnum);
13031
13032 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
13033 ICorProfilerInfo7 * This,
13034 /* [in] */ ModuleID moduleId);
13035
13036 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
13037 ICorProfilerInfo7 * This,
13038 /* [in] */ ModuleID moduleId,
13039 /* [out] */ DWORD *pCountSymbolBytes);
13040
13041 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
13042 ICorProfilerInfo7 * This,
13043 /* [in] */ ModuleID moduleId,
13044 /* [in] */ DWORD symbolsReadOffset,
13045 /* [out] */ BYTE *pSymbolBytes,
13046 /* [in] */ DWORD countSymbolBytes,
13047 /* [out] */ DWORD *pCountSymbolBytesRead);
13048
13049 END_INTERFACE
13050 } ICorProfilerInfo7Vtbl;
13051
13052 interface ICorProfilerInfo7
13053 {
13054 CONST_VTBL struct ICorProfilerInfo7Vtbl *lpVtbl;
13055 };
13056
13057
13058
13059#ifdef COBJMACROS
13060
13061
13062#define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject) \
13063 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13064
13065#define ICorProfilerInfo7_AddRef(This) \
13066 ( (This)->lpVtbl -> AddRef(This) )
13067
13068#define ICorProfilerInfo7_Release(This) \
13069 ( (This)->lpVtbl -> Release(This) )
13070
13071
13072#define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId) \
13073 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
13074
13075#define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId) \
13076 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
13077
13078#define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize) \
13079 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
13080
13081#define ICorProfilerInfo7_GetEventMask(This,pdwEvents) \
13082 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
13083
13084#define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId) \
13085 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
13086
13087#define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13088 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
13089
13090#define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread) \
13091 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
13092
13093#define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize) \
13094 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
13095
13096#define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
13097 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
13098
13099#define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13100 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
13101
13102#define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId) \
13103 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
13104
13105#define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
13106 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
13107
13108#define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
13109 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
13110
13111#define ICorProfilerInfo7_SetEventMask(This,dwEvents) \
13112 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
13113
13114#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13115 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
13116
13117#define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc) \
13118 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
13119
13120#define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
13121 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
13122
13123#define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
13124 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
13125
13126#define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
13127 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
13128
13129#define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
13130 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
13131
13132#define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
13133 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
13134
13135#define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
13136 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
13137
13138#define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
13139 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
13140
13141#define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
13142 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
13143
13144#define ICorProfilerInfo7_SetFunctionReJIT(This,functionId) \
13145 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
13146
13147#define ICorProfilerInfo7_ForceGC(This) \
13148 ( (This)->lpVtbl -> ForceGC(This) )
13149
13150#define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
13151 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
13152
13153#define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd) \
13154 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
13155
13156#define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd) \
13157 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
13158
13159#define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId) \
13160 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
13161
13162#define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
13163 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
13164
13165#define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext) \
13166 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
13167
13168#define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
13169 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
13170
13171
13172#define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
13173 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
13174
13175#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13176 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
13177
13178#define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
13179 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
13180
13181#define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
13182 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
13183
13184#define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
13185 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
13186
13187#define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
13188 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
13189
13190#define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
13191 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
13192
13193#define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
13194 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
13195
13196#define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
13197 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
13198
13199#define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
13200 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
13201
13202#define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
13203 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
13204
13205#define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \
13206 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
13207
13208#define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId) \
13209 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
13210
13211#define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
13212 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
13213
13214#define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
13215 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
13216
13217#define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
13218 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
13219
13220#define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
13221 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
13222
13223#define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
13224 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
13225
13226#define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
13227 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
13228
13229#define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range) \
13230 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
13231
13232#define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo) \
13233 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
13234
13235
13236#define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum) \
13237 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
13238
13239#define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
13240 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
13241
13242#define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData) \
13243 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
13244
13245#define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
13246 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
13247
13248#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
13249 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
13250
13251#define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
13252 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
13253
13254#define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
13255 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
13256
13257#define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
13258 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
13259
13260#define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
13261 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
13262
13263#define ICorProfilerInfo7_EnumModules(This,ppEnum) \
13264 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
13265
13266#define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
13267 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
13268
13269#define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
13270 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
13271
13272#define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
13273 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
13274
13275#define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
13276 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
13277
13278
13279#define ICorProfilerInfo7_EnumThreads(This,ppEnum) \
13280 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
13281
13282#define ICorProfilerInfo7_InitializeCurrentThread(This) \
13283 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
13284
13285#define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
13286 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
13287
13288#define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
13289 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
13290
13291#define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
13292 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
13293
13294#define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
13295 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
13296
13297#define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
13298 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
13299
13300#define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
13301 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
13302
13303#define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum) \
13304 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
13305
13306#define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize) \
13307 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
13308
13309
13310#define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
13311 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
13312
13313#define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
13314 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
13315
13316
13317#define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
13318 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
13319
13320
13321#define ICorProfilerInfo7_ApplyMetaData(This,moduleId) \
13322 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
13323
13324#define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
13325 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
13326
13327#define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
13328 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
13329
13330#endif /* COBJMACROS */
13331
13332
13333#endif /* C style interface */
13334
13335
13336
13337
13338#endif /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */
13339
13340
13341#ifndef __ICorProfilerInfo8_INTERFACE_DEFINED__
13342#define __ICorProfilerInfo8_INTERFACE_DEFINED__
13343
13344/* interface ICorProfilerInfo8 */
13345/* [local][unique][uuid][object] */
13346
13347
13348EXTERN_C const IID IID_ICorProfilerInfo8;
13349
13350#if defined(__cplusplus) && !defined(CINTERFACE)
13351
13352 MIDL_INTERFACE("C5AC80A6-782E-4716-8044-39598C60CFBF")
13353 ICorProfilerInfo8 : public ICorProfilerInfo7
13354 {
13355 public:
13356 virtual HRESULT STDMETHODCALLTYPE IsFunctionDynamic(
13357 /* [in] */ FunctionID functionId,
13358 /* [out] */ BOOL *isDynamic) = 0;
13359
13360 virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP3(
13361 /* [in] */ LPCBYTE ip,
13362 /* [out] */ FunctionID *functionId,
13363 /* [out] */ ReJITID *pReJitId) = 0;
13364
13365 virtual HRESULT STDMETHODCALLTYPE GetDynamicFunctionInfo(
13366 /* [in] */ FunctionID functionId,
13367 /* [out] */ ModuleID *moduleId,
13368 /* [out] */ PCCOR_SIGNATURE *ppvSig,
13369 /* [out] */ ULONG *pbSig,
13370 /* [in] */ ULONG cchName,
13371 /* [out] */ ULONG *pcchName,
13372 /* [out] */ WCHAR wszName[ ]) = 0;
13373
13374 };
13375
13376
13377#else /* C style interface */
13378
13379 typedef struct ICorProfilerInfo8Vtbl
13380 {
13381 BEGIN_INTERFACE
13382
13383 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
13384 ICorProfilerInfo8 * This,
13385 /* [in] */ REFIID riid,
13386 /* [annotation][iid_is][out] */
13387 _COM_Outptr_ void **ppvObject);
13388
13389 ULONG ( STDMETHODCALLTYPE *AddRef )(
13390 ICorProfilerInfo8 * This);
13391
13392 ULONG ( STDMETHODCALLTYPE *Release )(
13393 ICorProfilerInfo8 * This);
13394
13395 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
13396 ICorProfilerInfo8 * This,
13397 /* [in] */ ObjectID objectId,
13398 /* [out] */ ClassID *pClassId);
13399
13400 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
13401 ICorProfilerInfo8 * This,
13402 /* [in] */ ModuleID moduleId,
13403 /* [in] */ mdTypeDef typeDef,
13404 /* [out] */ ClassID *pClassId);
13405
13406 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
13407 ICorProfilerInfo8 * This,
13408 /* [in] */ FunctionID functionId,
13409 /* [out] */ LPCBYTE *pStart,
13410 /* [out] */ ULONG *pcSize);
13411
13412 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
13413 ICorProfilerInfo8 * This,
13414 /* [out] */ DWORD *pdwEvents);
13415
13416 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
13417 ICorProfilerInfo8 * This,
13418 /* [in] */ LPCBYTE ip,
13419 /* [out] */ FunctionID *pFunctionId);
13420
13421 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
13422 ICorProfilerInfo8 * This,
13423 /* [in] */ ModuleID moduleId,
13424 /* [in] */ mdToken token,
13425 /* [out] */ FunctionID *pFunctionId);
13426
13427 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
13428 ICorProfilerInfo8 * This,
13429 /* [in] */ ThreadID threadId,
13430 /* [out] */ HANDLE *phThread);
13431
13432 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
13433 ICorProfilerInfo8 * This,
13434 /* [in] */ ObjectID objectId,
13435 /* [out] */ ULONG *pcSize);
13436
13437 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
13438 ICorProfilerInfo8 * This,
13439 /* [in] */ ClassID classId,
13440 /* [out] */ CorElementType *pBaseElemType,
13441 /* [out] */ ClassID *pBaseClassId,
13442 /* [out] */ ULONG *pcRank);
13443
13444 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
13445 ICorProfilerInfo8 * This,
13446 /* [in] */ ThreadID threadId,
13447 /* [out] */ DWORD *pdwWin32ThreadId);
13448
13449 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
13450 ICorProfilerInfo8 * This,
13451 /* [out] */ ThreadID *pThreadId);
13452
13453 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
13454 ICorProfilerInfo8 * This,
13455 /* [in] */ ClassID classId,
13456 /* [out] */ ModuleID *pModuleId,
13457 /* [out] */ mdTypeDef *pTypeDefToken);
13458
13459 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
13460 ICorProfilerInfo8 * This,
13461 /* [in] */ FunctionID functionId,
13462 /* [out] */ ClassID *pClassId,
13463 /* [out] */ ModuleID *pModuleId,
13464 /* [out] */ mdToken *pToken);
13465
13466 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
13467 ICorProfilerInfo8 * This,
13468 /* [in] */ DWORD dwEvents);
13469
13470 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
13471 ICorProfilerInfo8 * This,
13472 /* [in] */ FunctionEnter *pFuncEnter,
13473 /* [in] */ FunctionLeave *pFuncLeave,
13474 /* [in] */ FunctionTailcall *pFuncTailcall);
13475
13476 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
13477 ICorProfilerInfo8 * This,
13478 /* [in] */ FunctionIDMapper *pFunc);
13479
13480 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
13481 ICorProfilerInfo8 * This,
13482 /* [in] */ FunctionID functionId,
13483 /* [in] */ REFIID riid,
13484 /* [out] */ IUnknown **ppImport,
13485 /* [out] */ mdToken *pToken);
13486
13487 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
13488 ICorProfilerInfo8 * This,
13489 /* [in] */ ModuleID moduleId,
13490 /* [out] */ LPCBYTE *ppBaseLoadAddress,
13491 /* [in] */ ULONG cchName,
13492 /* [out] */ ULONG *pcchName,
13493 /* [annotation][out] */
13494 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13495 /* [out] */ AssemblyID *pAssemblyId);
13496
13497 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
13498 ICorProfilerInfo8 * This,
13499 /* [in] */ ModuleID moduleId,
13500 /* [in] */ DWORD dwOpenFlags,
13501 /* [in] */ REFIID riid,
13502 /* [out] */ IUnknown **ppOut);
13503
13504 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
13505 ICorProfilerInfo8 * This,
13506 /* [in] */ ModuleID moduleId,
13507 /* [in] */ mdMethodDef methodId,
13508 /* [out] */ LPCBYTE *ppMethodHeader,
13509 /* [out] */ ULONG *pcbMethodSize);
13510
13511 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
13512 ICorProfilerInfo8 * This,
13513 /* [in] */ ModuleID moduleId,
13514 /* [out] */ IMethodMalloc **ppMalloc);
13515
13516 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
13517 ICorProfilerInfo8 * This,
13518 /* [in] */ ModuleID moduleId,
13519 /* [in] */ mdMethodDef methodid,
13520 /* [in] */ LPCBYTE pbNewILMethodHeader);
13521
13522 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
13523 ICorProfilerInfo8 * This,
13524 /* [in] */ AppDomainID appDomainId,
13525 /* [in] */ ULONG cchName,
13526 /* [out] */ ULONG *pcchName,
13527 /* [annotation][out] */
13528 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13529 /* [out] */ ProcessID *pProcessId);
13530
13531 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
13532 ICorProfilerInfo8 * This,
13533 /* [in] */ AssemblyID assemblyId,
13534 /* [in] */ ULONG cchName,
13535 /* [out] */ ULONG *pcchName,
13536 /* [annotation][out] */
13537 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13538 /* [out] */ AppDomainID *pAppDomainId,
13539 /* [out] */ ModuleID *pModuleId);
13540
13541 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
13542 ICorProfilerInfo8 * This,
13543 /* [in] */ FunctionID functionId);
13544
13545 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
13546 ICorProfilerInfo8 * This);
13547
13548 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
13549 ICorProfilerInfo8 * This,
13550 /* [in] */ FunctionID functionId,
13551 /* [in] */ BOOL fStartJit,
13552 /* [in] */ ULONG cILMapEntries,
13553 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
13554
13555 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
13556 ICorProfilerInfo8 * This,
13557 /* [out] */ IUnknown **ppicd);
13558
13559 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
13560 ICorProfilerInfo8 * This,
13561 /* [out] */ IUnknown **ppicd);
13562
13563 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
13564 ICorProfilerInfo8 * This,
13565 /* [in] */ ThreadID threadId,
13566 /* [out] */ ContextID *pContextId);
13567
13568 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
13569 ICorProfilerInfo8 * This,
13570 /* [in] */ BOOL fThisThreadOnly,
13571 /* [out] */ DWORD *pdwProfilerContext);
13572
13573 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
13574 ICorProfilerInfo8 * This,
13575 /* [in] */ DWORD dwProfilerContext);
13576
13577 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
13578 ICorProfilerInfo8 * This,
13579 /* [in] */ FunctionID functionId,
13580 /* [in] */ ULONG32 cMap,
13581 /* [out] */ ULONG32 *pcMap,
13582 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
13583
13584 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
13585 ICorProfilerInfo8 * This,
13586 /* [in] */ ThreadID thread,
13587 /* [in] */ StackSnapshotCallback *callback,
13588 /* [in] */ ULONG32 infoFlags,
13589 /* [in] */ void *clientData,
13590 /* [size_is][in] */ BYTE context[ ],
13591 /* [in] */ ULONG32 contextSize);
13592
13593 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
13594 ICorProfilerInfo8 * This,
13595 /* [in] */ FunctionEnter2 *pFuncEnter,
13596 /* [in] */ FunctionLeave2 *pFuncLeave,
13597 /* [in] */ FunctionTailcall2 *pFuncTailcall);
13598
13599 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
13600 ICorProfilerInfo8 * This,
13601 /* [in] */ FunctionID funcId,
13602 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
13603 /* [out] */ ClassID *pClassId,
13604 /* [out] */ ModuleID *pModuleId,
13605 /* [out] */ mdToken *pToken,
13606 /* [in] */ ULONG32 cTypeArgs,
13607 /* [out] */ ULONG32 *pcTypeArgs,
13608 /* [out] */ ClassID typeArgs[ ]);
13609
13610 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
13611 ICorProfilerInfo8 * This,
13612 /* [out] */ ULONG *pBufferLengthOffset,
13613 /* [out] */ ULONG *pStringLengthOffset,
13614 /* [out] */ ULONG *pBufferOffset);
13615
13616 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
13617 ICorProfilerInfo8 * This,
13618 /* [in] */ ClassID classID,
13619 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
13620 /* [in] */ ULONG cFieldOffset,
13621 /* [out] */ ULONG *pcFieldOffset,
13622 /* [out] */ ULONG *pulClassSize);
13623
13624 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
13625 ICorProfilerInfo8 * This,
13626 /* [in] */ ClassID classId,
13627 /* [out] */ ModuleID *pModuleId,
13628 /* [out] */ mdTypeDef *pTypeDefToken,
13629 /* [out] */ ClassID *pParentClassId,
13630 /* [in] */ ULONG32 cNumTypeArgs,
13631 /* [out] */ ULONG32 *pcNumTypeArgs,
13632 /* [out] */ ClassID typeArgs[ ]);
13633
13634 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
13635 ICorProfilerInfo8 * This,
13636 /* [in] */ FunctionID functionID,
13637 /* [in] */ ULONG32 cCodeInfos,
13638 /* [out] */ ULONG32 *pcCodeInfos,
13639 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
13640
13641 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
13642 ICorProfilerInfo8 * This,
13643 /* [in] */ ModuleID moduleID,
13644 /* [in] */ mdTypeDef typeDef,
13645 /* [in] */ ULONG32 cTypeArgs,
13646 /* [size_is][in] */ ClassID typeArgs[ ],
13647 /* [out] */ ClassID *pClassID);
13648
13649 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
13650 ICorProfilerInfo8 * This,
13651 /* [in] */ ModuleID moduleID,
13652 /* [in] */ mdMethodDef funcDef,
13653 /* [in] */ ClassID classId,
13654 /* [in] */ ULONG32 cTypeArgs,
13655 /* [size_is][in] */ ClassID typeArgs[ ],
13656 /* [out] */ FunctionID *pFunctionID);
13657
13658 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
13659 ICorProfilerInfo8 * This,
13660 /* [in] */ ModuleID moduleID,
13661 /* [out] */ ICorProfilerObjectEnum **ppEnum);
13662
13663 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
13664 ICorProfilerInfo8 * This,
13665 /* [in] */ ObjectID objectId,
13666 /* [in] */ ULONG32 cDimensions,
13667 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
13668 /* [size_is][out] */ int pDimensionLowerBounds[ ],
13669 /* [out] */ BYTE **ppData);
13670
13671 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
13672 ICorProfilerInfo8 * This,
13673 /* [in] */ ClassID classId,
13674 /* [out] */ ULONG32 *pBufferOffset);
13675
13676 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
13677 ICorProfilerInfo8 * This,
13678 /* [in] */ ThreadID threadId,
13679 /* [out] */ AppDomainID *pAppDomainId);
13680
13681 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
13682 ICorProfilerInfo8 * This,
13683 /* [in] */ ClassID classId,
13684 /* [in] */ mdFieldDef fieldToken,
13685 /* [out] */ void **ppAddress);
13686
13687 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
13688 ICorProfilerInfo8 * This,
13689 /* [in] */ ClassID classId,
13690 /* [in] */ mdFieldDef fieldToken,
13691 /* [in] */ AppDomainID appDomainId,
13692 /* [out] */ void **ppAddress);
13693
13694 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
13695 ICorProfilerInfo8 * This,
13696 /* [in] */ ClassID classId,
13697 /* [in] */ mdFieldDef fieldToken,
13698 /* [in] */ ThreadID threadId,
13699 /* [out] */ void **ppAddress);
13700
13701 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
13702 ICorProfilerInfo8 * This,
13703 /* [in] */ ClassID classId,
13704 /* [in] */ mdFieldDef fieldToken,
13705 /* [in] */ ContextID contextId,
13706 /* [out] */ void **ppAddress);
13707
13708 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
13709 ICorProfilerInfo8 * This,
13710 /* [in] */ ClassID classId,
13711 /* [in] */ mdFieldDef fieldToken,
13712 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
13713
13714 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
13715 ICorProfilerInfo8 * This,
13716 /* [in] */ ULONG cObjectRanges,
13717 /* [out] */ ULONG *pcObjectRanges,
13718 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
13719
13720 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
13721 ICorProfilerInfo8 * This,
13722 /* [in] */ ObjectID objectId,
13723 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
13724
13725 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
13726 ICorProfilerInfo8 * This,
13727 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
13728
13729 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
13730 ICorProfilerInfo8 * This,
13731 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13732
13733 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
13734 ICorProfilerInfo8 * This,
13735 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
13736
13737 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
13738 ICorProfilerInfo8 * This,
13739 /* [in] */ FunctionIDMapper2 *pFunc,
13740 /* [in] */ void *clientData);
13741
13742 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
13743 ICorProfilerInfo8 * This,
13744 /* [out] */ ULONG *pStringLengthOffset,
13745 /* [out] */ ULONG *pBufferOffset);
13746
13747 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
13748 ICorProfilerInfo8 * This,
13749 /* [in] */ FunctionEnter3 *pFuncEnter3,
13750 /* [in] */ FunctionLeave3 *pFuncLeave3,
13751 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
13752
13753 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
13754 ICorProfilerInfo8 * This,
13755 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
13756 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
13757 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
13758
13759 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
13760 ICorProfilerInfo8 * This,
13761 /* [in] */ FunctionID functionId,
13762 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13763 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13764 /* [out][in] */ ULONG *pcbArgumentInfo,
13765 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
13766
13767 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
13768 ICorProfilerInfo8 * This,
13769 /* [in] */ FunctionID functionId,
13770 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13771 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13772 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
13773
13774 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
13775 ICorProfilerInfo8 * This,
13776 /* [in] */ FunctionID functionId,
13777 /* [in] */ COR_PRF_ELT_INFO eltInfo,
13778 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
13779
13780 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
13781 ICorProfilerInfo8 * This,
13782 /* [out] */ ICorProfilerModuleEnum **ppEnum);
13783
13784 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
13785 ICorProfilerInfo8 * This,
13786 /* [out] */ USHORT *pClrInstanceId,
13787 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
13788 /* [out] */ USHORT *pMajorVersion,
13789 /* [out] */ USHORT *pMinorVersion,
13790 /* [out] */ USHORT *pBuildNumber,
13791 /* [out] */ USHORT *pQFEVersion,
13792 /* [in] */ ULONG cchVersionString,
13793 /* [out] */ ULONG *pcchVersionString,
13794 /* [annotation][out] */
13795 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
13796
13797 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
13798 ICorProfilerInfo8 * This,
13799 /* [in] */ ClassID classId,
13800 /* [in] */ mdFieldDef fieldToken,
13801 /* [in] */ AppDomainID appDomainId,
13802 /* [in] */ ThreadID threadId,
13803 /* [out] */ void **ppAddress);
13804
13805 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
13806 ICorProfilerInfo8 * This,
13807 /* [in] */ ModuleID moduleId,
13808 /* [in] */ ULONG32 cAppDomainIds,
13809 /* [out] */ ULONG32 *pcAppDomainIds,
13810 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
13811
13812 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
13813 ICorProfilerInfo8 * This,
13814 /* [in] */ ModuleID moduleId,
13815 /* [out] */ LPCBYTE *ppBaseLoadAddress,
13816 /* [in] */ ULONG cchName,
13817 /* [out] */ ULONG *pcchName,
13818 /* [annotation][out] */
13819 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
13820 /* [out] */ AssemblyID *pAssemblyId,
13821 /* [out] */ DWORD *pdwModuleFlags);
13822
13823 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
13824 ICorProfilerInfo8 * This,
13825 /* [out] */ ICorProfilerThreadEnum **ppEnum);
13826
13827 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
13828 ICorProfilerInfo8 * This);
13829
13830 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
13831 ICorProfilerInfo8 * This,
13832 /* [in] */ ULONG cFunctions,
13833 /* [size_is][in] */ ModuleID moduleIds[ ],
13834 /* [size_is][in] */ mdMethodDef methodIds[ ]);
13835
13836 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
13837 ICorProfilerInfo8 * This,
13838 /* [in] */ ULONG cFunctions,
13839 /* [size_is][in] */ ModuleID moduleIds[ ],
13840 /* [size_is][in] */ mdMethodDef methodIds[ ],
13841 /* [size_is][out] */ HRESULT status[ ]);
13842
13843 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
13844 ICorProfilerInfo8 * This,
13845 /* [in] */ FunctionID functionID,
13846 /* [in] */ ReJITID reJitId,
13847 /* [in] */ ULONG32 cCodeInfos,
13848 /* [out] */ ULONG32 *pcCodeInfos,
13849 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
13850
13851 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
13852 ICorProfilerInfo8 * This,
13853 /* [in] */ LPCBYTE ip,
13854 /* [out] */ FunctionID *pFunctionId,
13855 /* [out] */ ReJITID *pReJitId);
13856
13857 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
13858 ICorProfilerInfo8 * This,
13859 /* [in] */ FunctionID functionId,
13860 /* [in] */ ULONG cReJitIds,
13861 /* [out] */ ULONG *pcReJitIds,
13862 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
13863
13864 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
13865 ICorProfilerInfo8 * This,
13866 /* [in] */ FunctionID functionId,
13867 /* [in] */ ReJITID reJitId,
13868 /* [in] */ ULONG32 cMap,
13869 /* [out] */ ULONG32 *pcMap,
13870 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
13871
13872 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
13873 ICorProfilerInfo8 * This,
13874 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13875
13876 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
13877 ICorProfilerInfo8 * This,
13878 /* [in] */ ObjectID objectId,
13879 /* [out] */ SIZE_T *pcSize);
13880
13881 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
13882 ICorProfilerInfo8 * This,
13883 /* [out] */ DWORD *pdwEventsLow,
13884 /* [out] */ DWORD *pdwEventsHigh);
13885
13886 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
13887 ICorProfilerInfo8 * This,
13888 /* [in] */ DWORD dwEventsLow,
13889 /* [in] */ DWORD dwEventsHigh);
13890
13891 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
13892 ICorProfilerInfo8 * This,
13893 /* [in] */ ModuleID inlinersModuleId,
13894 /* [in] */ ModuleID inlineeModuleId,
13895 /* [in] */ mdMethodDef inlineeMethodId,
13896 /* [out] */ BOOL *incompleteData,
13897 /* [out] */ ICorProfilerMethodEnum **ppEnum);
13898
13899 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
13900 ICorProfilerInfo8 * This,
13901 /* [in] */ ModuleID moduleId);
13902
13903 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
13904 ICorProfilerInfo8 * This,
13905 /* [in] */ ModuleID moduleId,
13906 /* [out] */ DWORD *pCountSymbolBytes);
13907
13908 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
13909 ICorProfilerInfo8 * This,
13910 /* [in] */ ModuleID moduleId,
13911 /* [in] */ DWORD symbolsReadOffset,
13912 /* [out] */ BYTE *pSymbolBytes,
13913 /* [in] */ DWORD countSymbolBytes,
13914 /* [out] */ DWORD *pCountSymbolBytesRead);
13915
13916 HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )(
13917 ICorProfilerInfo8 * This,
13918 /* [in] */ FunctionID functionId,
13919 /* [out] */ BOOL *isDynamic);
13920
13921 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )(
13922 ICorProfilerInfo8 * This,
13923 /* [in] */ LPCBYTE ip,
13924 /* [out] */ FunctionID *functionId,
13925 /* [out] */ ReJITID *pReJitId);
13926
13927 HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )(
13928 ICorProfilerInfo8 * This,
13929 /* [in] */ FunctionID functionId,
13930 /* [out] */ ModuleID *moduleId,
13931 /* [out] */ PCCOR_SIGNATURE *ppvSig,
13932 /* [out] */ ULONG *pbSig,
13933 /* [in] */ ULONG cchName,
13934 /* [out] */ ULONG *pcchName,
13935 /* [out] */ WCHAR wszName[ ]);
13936
13937 END_INTERFACE
13938 } ICorProfilerInfo8Vtbl;
13939
13940 interface ICorProfilerInfo8
13941 {
13942 CONST_VTBL struct ICorProfilerInfo8Vtbl *lpVtbl;
13943 };
13944
13945
13946
13947#ifdef COBJMACROS
13948
13949
13950#define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject) \
13951 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
13952
13953#define ICorProfilerInfo8_AddRef(This) \
13954 ( (This)->lpVtbl -> AddRef(This) )
13955
13956#define ICorProfilerInfo8_Release(This) \
13957 ( (This)->lpVtbl -> Release(This) )
13958
13959
13960#define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId) \
13961 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
13962
13963#define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId) \
13964 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
13965
13966#define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize) \
13967 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
13968
13969#define ICorProfilerInfo8_GetEventMask(This,pdwEvents) \
13970 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
13971
13972#define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId) \
13973 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
13974
13975#define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13976 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
13977
13978#define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread) \
13979 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
13980
13981#define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize) \
13982 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
13983
13984#define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
13985 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
13986
13987#define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13988 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
13989
13990#define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId) \
13991 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
13992
13993#define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
13994 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
13995
13996#define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
13997 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
13998
13999#define ICorProfilerInfo8_SetEventMask(This,dwEvents) \
14000 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
14001
14002#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14003 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14004
14005#define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc) \
14006 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
14007
14008#define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
14009 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
14010
14011#define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
14012 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
14013
14014#define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
14015 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
14016
14017#define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
14018 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
14019
14020#define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
14021 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
14022
14023#define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14024 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
14025
14026#define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14027 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
14028
14029#define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
14030 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
14031
14032#define ICorProfilerInfo8_SetFunctionReJIT(This,functionId) \
14033 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
14034
14035#define ICorProfilerInfo8_ForceGC(This) \
14036 ( (This)->lpVtbl -> ForceGC(This) )
14037
14038#define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
14039 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
14040
14041#define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd) \
14042 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
14043
14044#define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd) \
14045 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
14046
14047#define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId) \
14048 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
14049
14050#define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14051 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
14052
14053#define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext) \
14054 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
14055
14056#define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
14057 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
14058
14059
14060#define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
14061 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
14062
14063#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14064 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14065
14066#define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
14067 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
14068
14069#define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
14070 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
14071
14072#define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
14073 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
14074
14075#define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
14076 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
14077
14078#define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
14079 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
14080
14081#define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
14082 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
14083
14084#define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
14085 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
14086
14087#define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
14088 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
14089
14090#define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
14091 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
14092
14093#define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \
14094 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
14095
14096#define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId) \
14097 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
14098
14099#define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
14100 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
14101
14102#define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
14103 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
14104
14105#define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
14106 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
14107
14108#define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
14109 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
14110
14111#define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
14112 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
14113
14114#define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
14115 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
14116
14117#define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range) \
14118 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
14119
14120#define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo) \
14121 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
14122
14123
14124#define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum) \
14125 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
14126
14127#define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
14128 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
14129
14130#define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData) \
14131 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
14132
14133#define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
14134 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
14135
14136#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
14137 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
14138
14139#define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
14140 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
14141
14142#define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
14143 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
14144
14145#define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
14146 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
14147
14148#define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
14149 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
14150
14151#define ICorProfilerInfo8_EnumModules(This,ppEnum) \
14152 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
14153
14154#define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
14155 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
14156
14157#define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
14158 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
14159
14160#define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
14161 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
14162
14163#define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
14164 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
14165
14166
14167#define ICorProfilerInfo8_EnumThreads(This,ppEnum) \
14168 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
14169
14170#define ICorProfilerInfo8_InitializeCurrentThread(This) \
14171 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
14172
14173#define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
14174 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
14175
14176#define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
14177 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
14178
14179#define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
14180 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
14181
14182#define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
14183 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
14184
14185#define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
14186 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
14187
14188#define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
14189 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
14190
14191#define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum) \
14192 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
14193
14194#define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize) \
14195 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
14196
14197
14198#define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
14199 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
14200
14201#define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
14202 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
14203
14204
14205#define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
14206 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
14207
14208
14209#define ICorProfilerInfo8_ApplyMetaData(This,moduleId) \
14210 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
14211
14212#define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
14213 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
14214
14215#define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
14216 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
14217
14218
14219#define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic) \
14220 ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) )
14221
14222#define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId) \
14223 ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) )
14224
14225#define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \
14226 ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) )
14227
14228#endif /* COBJMACROS */
14229
14230
14231#endif /* C style interface */
14232
14233
14234
14235
14236#endif /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */
14237
14238
14239#ifndef __ICorProfilerInfo9_INTERFACE_DEFINED__
14240#define __ICorProfilerInfo9_INTERFACE_DEFINED__
14241
14242/* interface ICorProfilerInfo9 */
14243/* [local][unique][uuid][object] */
14244
14245
14246EXTERN_C const IID IID_ICorProfilerInfo9;
14247
14248#if defined(__cplusplus) && !defined(CINTERFACE)
14249
14250 MIDL_INTERFACE("008170DB-F8CC-4796-9A51-DC8AA0B47012")
14251 ICorProfilerInfo9 : public ICorProfilerInfo8
14252 {
14253 public:
14254 virtual HRESULT STDMETHODCALLTYPE GetNativeCodeStartAddresses(
14255 FunctionID functionID,
14256 ReJITID reJitId,
14257 ULONG32 cCodeStartAddresses,
14258 ULONG32 *pcCodeStartAddresses,
14259 UINT_PTR codeStartAddresses[ ]) = 0;
14260
14261 virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping3(
14262 UINT_PTR pNativeCodeStartAddress,
14263 ULONG32 cMap,
14264 ULONG32 *pcMap,
14265 COR_DEBUG_IL_TO_NATIVE_MAP map[ ]) = 0;
14266
14267 virtual HRESULT STDMETHODCALLTYPE GetCodeInfo4(
14268 UINT_PTR pNativeCodeStartAddress,
14269 ULONG32 cCodeInfos,
14270 ULONG32 *pcCodeInfos,
14271 COR_PRF_CODE_INFO codeInfos[ ]) = 0;
14272
14273 };
14274
14275
14276#else /* C style interface */
14277
14278 typedef struct ICorProfilerInfo9Vtbl
14279 {
14280 BEGIN_INTERFACE
14281
14282 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
14283 ICorProfilerInfo9 * This,
14284 /* [in] */ REFIID riid,
14285 /* [annotation][iid_is][out] */
14286 _COM_Outptr_ void **ppvObject);
14287
14288 ULONG ( STDMETHODCALLTYPE *AddRef )(
14289 ICorProfilerInfo9 * This);
14290
14291 ULONG ( STDMETHODCALLTYPE *Release )(
14292 ICorProfilerInfo9 * This);
14293
14294 HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )(
14295 ICorProfilerInfo9 * This,
14296 /* [in] */ ObjectID objectId,
14297 /* [out] */ ClassID *pClassId);
14298
14299 HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )(
14300 ICorProfilerInfo9 * This,
14301 /* [in] */ ModuleID moduleId,
14302 /* [in] */ mdTypeDef typeDef,
14303 /* [out] */ ClassID *pClassId);
14304
14305 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )(
14306 ICorProfilerInfo9 * This,
14307 /* [in] */ FunctionID functionId,
14308 /* [out] */ LPCBYTE *pStart,
14309 /* [out] */ ULONG *pcSize);
14310
14311 HRESULT ( STDMETHODCALLTYPE *GetEventMask )(
14312 ICorProfilerInfo9 * This,
14313 /* [out] */ DWORD *pdwEvents);
14314
14315 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )(
14316 ICorProfilerInfo9 * This,
14317 /* [in] */ LPCBYTE ip,
14318 /* [out] */ FunctionID *pFunctionId);
14319
14320 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )(
14321 ICorProfilerInfo9 * This,
14322 /* [in] */ ModuleID moduleId,
14323 /* [in] */ mdToken token,
14324 /* [out] */ FunctionID *pFunctionId);
14325
14326 HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )(
14327 ICorProfilerInfo9 * This,
14328 /* [in] */ ThreadID threadId,
14329 /* [out] */ HANDLE *phThread);
14330
14331 HRESULT ( STDMETHODCALLTYPE *GetObjectSize )(
14332 ICorProfilerInfo9 * This,
14333 /* [in] */ ObjectID objectId,
14334 /* [out] */ ULONG *pcSize);
14335
14336 HRESULT ( STDMETHODCALLTYPE *IsArrayClass )(
14337 ICorProfilerInfo9 * This,
14338 /* [in] */ ClassID classId,
14339 /* [out] */ CorElementType *pBaseElemType,
14340 /* [out] */ ClassID *pBaseClassId,
14341 /* [out] */ ULONG *pcRank);
14342
14343 HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )(
14344 ICorProfilerInfo9 * This,
14345 /* [in] */ ThreadID threadId,
14346 /* [out] */ DWORD *pdwWin32ThreadId);
14347
14348 HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )(
14349 ICorProfilerInfo9 * This,
14350 /* [out] */ ThreadID *pThreadId);
14351
14352 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )(
14353 ICorProfilerInfo9 * This,
14354 /* [in] */ ClassID classId,
14355 /* [out] */ ModuleID *pModuleId,
14356 /* [out] */ mdTypeDef *pTypeDefToken);
14357
14358 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )(
14359 ICorProfilerInfo9 * This,
14360 /* [in] */ FunctionID functionId,
14361 /* [out] */ ClassID *pClassId,
14362 /* [out] */ ModuleID *pModuleId,
14363 /* [out] */ mdToken *pToken);
14364
14365 HRESULT ( STDMETHODCALLTYPE *SetEventMask )(
14366 ICorProfilerInfo9 * This,
14367 /* [in] */ DWORD dwEvents);
14368
14369 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )(
14370 ICorProfilerInfo9 * This,
14371 /* [in] */ FunctionEnter *pFuncEnter,
14372 /* [in] */ FunctionLeave *pFuncLeave,
14373 /* [in] */ FunctionTailcall *pFuncTailcall);
14374
14375 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )(
14376 ICorProfilerInfo9 * This,
14377 /* [in] */ FunctionIDMapper *pFunc);
14378
14379 HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )(
14380 ICorProfilerInfo9 * This,
14381 /* [in] */ FunctionID functionId,
14382 /* [in] */ REFIID riid,
14383 /* [out] */ IUnknown **ppImport,
14384 /* [out] */ mdToken *pToken);
14385
14386 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )(
14387 ICorProfilerInfo9 * This,
14388 /* [in] */ ModuleID moduleId,
14389 /* [out] */ LPCBYTE *ppBaseLoadAddress,
14390 /* [in] */ ULONG cchName,
14391 /* [out] */ ULONG *pcchName,
14392 /* [annotation][out] */
14393 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14394 /* [out] */ AssemblyID *pAssemblyId);
14395
14396 HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )(
14397 ICorProfilerInfo9 * This,
14398 /* [in] */ ModuleID moduleId,
14399 /* [in] */ DWORD dwOpenFlags,
14400 /* [in] */ REFIID riid,
14401 /* [out] */ IUnknown **ppOut);
14402
14403 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )(
14404 ICorProfilerInfo9 * This,
14405 /* [in] */ ModuleID moduleId,
14406 /* [in] */ mdMethodDef methodId,
14407 /* [out] */ LPCBYTE *ppMethodHeader,
14408 /* [out] */ ULONG *pcbMethodSize);
14409
14410 HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )(
14411 ICorProfilerInfo9 * This,
14412 /* [in] */ ModuleID moduleId,
14413 /* [out] */ IMethodMalloc **ppMalloc);
14414
14415 HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )(
14416 ICorProfilerInfo9 * This,
14417 /* [in] */ ModuleID moduleId,
14418 /* [in] */ mdMethodDef methodid,
14419 /* [in] */ LPCBYTE pbNewILMethodHeader);
14420
14421 HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )(
14422 ICorProfilerInfo9 * This,
14423 /* [in] */ AppDomainID appDomainId,
14424 /* [in] */ ULONG cchName,
14425 /* [out] */ ULONG *pcchName,
14426 /* [annotation][out] */
14427 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14428 /* [out] */ ProcessID *pProcessId);
14429
14430 HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )(
14431 ICorProfilerInfo9 * This,
14432 /* [in] */ AssemblyID assemblyId,
14433 /* [in] */ ULONG cchName,
14434 /* [out] */ ULONG *pcchName,
14435 /* [annotation][out] */
14436 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14437 /* [out] */ AppDomainID *pAppDomainId,
14438 /* [out] */ ModuleID *pModuleId);
14439
14440 HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )(
14441 ICorProfilerInfo9 * This,
14442 /* [in] */ FunctionID functionId);
14443
14444 HRESULT ( STDMETHODCALLTYPE *ForceGC )(
14445 ICorProfilerInfo9 * This);
14446
14447 HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )(
14448 ICorProfilerInfo9 * This,
14449 /* [in] */ FunctionID functionId,
14450 /* [in] */ BOOL fStartJit,
14451 /* [in] */ ULONG cILMapEntries,
14452 /* [size_is][in] */ COR_IL_MAP rgILMapEntries[ ]);
14453
14454 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )(
14455 ICorProfilerInfo9 * This,
14456 /* [out] */ IUnknown **ppicd);
14457
14458 HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )(
14459 ICorProfilerInfo9 * This,
14460 /* [out] */ IUnknown **ppicd);
14461
14462 HRESULT ( STDMETHODCALLTYPE *GetThreadContext )(
14463 ICorProfilerInfo9 * This,
14464 /* [in] */ ThreadID threadId,
14465 /* [out] */ ContextID *pContextId);
14466
14467 HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )(
14468 ICorProfilerInfo9 * This,
14469 /* [in] */ BOOL fThisThreadOnly,
14470 /* [out] */ DWORD *pdwProfilerContext);
14471
14472 HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )(
14473 ICorProfilerInfo9 * This,
14474 /* [in] */ DWORD dwProfilerContext);
14475
14476 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )(
14477 ICorProfilerInfo9 * This,
14478 /* [in] */ FunctionID functionId,
14479 /* [in] */ ULONG32 cMap,
14480 /* [out] */ ULONG32 *pcMap,
14481 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14482
14483 HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )(
14484 ICorProfilerInfo9 * This,
14485 /* [in] */ ThreadID thread,
14486 /* [in] */ StackSnapshotCallback *callback,
14487 /* [in] */ ULONG32 infoFlags,
14488 /* [in] */ void *clientData,
14489 /* [size_is][in] */ BYTE context[ ],
14490 /* [in] */ ULONG32 contextSize);
14491
14492 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )(
14493 ICorProfilerInfo9 * This,
14494 /* [in] */ FunctionEnter2 *pFuncEnter,
14495 /* [in] */ FunctionLeave2 *pFuncLeave,
14496 /* [in] */ FunctionTailcall2 *pFuncTailcall);
14497
14498 HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )(
14499 ICorProfilerInfo9 * This,
14500 /* [in] */ FunctionID funcId,
14501 /* [in] */ COR_PRF_FRAME_INFO frameInfo,
14502 /* [out] */ ClassID *pClassId,
14503 /* [out] */ ModuleID *pModuleId,
14504 /* [out] */ mdToken *pToken,
14505 /* [in] */ ULONG32 cTypeArgs,
14506 /* [out] */ ULONG32 *pcTypeArgs,
14507 /* [out] */ ClassID typeArgs[ ]);
14508
14509 HRESULT ( STDMETHODCALLTYPE *GetStringLayout )(
14510 ICorProfilerInfo9 * This,
14511 /* [out] */ ULONG *pBufferLengthOffset,
14512 /* [out] */ ULONG *pStringLengthOffset,
14513 /* [out] */ ULONG *pBufferOffset);
14514
14515 HRESULT ( STDMETHODCALLTYPE *GetClassLayout )(
14516 ICorProfilerInfo9 * This,
14517 /* [in] */ ClassID classID,
14518 /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[ ],
14519 /* [in] */ ULONG cFieldOffset,
14520 /* [out] */ ULONG *pcFieldOffset,
14521 /* [out] */ ULONG *pulClassSize);
14522
14523 HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )(
14524 ICorProfilerInfo9 * This,
14525 /* [in] */ ClassID classId,
14526 /* [out] */ ModuleID *pModuleId,
14527 /* [out] */ mdTypeDef *pTypeDefToken,
14528 /* [out] */ ClassID *pParentClassId,
14529 /* [in] */ ULONG32 cNumTypeArgs,
14530 /* [out] */ ULONG32 *pcNumTypeArgs,
14531 /* [out] */ ClassID typeArgs[ ]);
14532
14533 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )(
14534 ICorProfilerInfo9 * This,
14535 /* [in] */ FunctionID functionID,
14536 /* [in] */ ULONG32 cCodeInfos,
14537 /* [out] */ ULONG32 *pcCodeInfos,
14538 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
14539
14540 HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )(
14541 ICorProfilerInfo9 * This,
14542 /* [in] */ ModuleID moduleID,
14543 /* [in] */ mdTypeDef typeDef,
14544 /* [in] */ ULONG32 cTypeArgs,
14545 /* [size_is][in] */ ClassID typeArgs[ ],
14546 /* [out] */ ClassID *pClassID);
14547
14548 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )(
14549 ICorProfilerInfo9 * This,
14550 /* [in] */ ModuleID moduleID,
14551 /* [in] */ mdMethodDef funcDef,
14552 /* [in] */ ClassID classId,
14553 /* [in] */ ULONG32 cTypeArgs,
14554 /* [size_is][in] */ ClassID typeArgs[ ],
14555 /* [out] */ FunctionID *pFunctionID);
14556
14557 HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )(
14558 ICorProfilerInfo9 * This,
14559 /* [in] */ ModuleID moduleID,
14560 /* [out] */ ICorProfilerObjectEnum **ppEnum);
14561
14562 HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )(
14563 ICorProfilerInfo9 * This,
14564 /* [in] */ ObjectID objectId,
14565 /* [in] */ ULONG32 cDimensions,
14566 /* [size_is][out] */ ULONG32 pDimensionSizes[ ],
14567 /* [size_is][out] */ int pDimensionLowerBounds[ ],
14568 /* [out] */ BYTE **ppData);
14569
14570 HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )(
14571 ICorProfilerInfo9 * This,
14572 /* [in] */ ClassID classId,
14573 /* [out] */ ULONG32 *pBufferOffset);
14574
14575 HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )(
14576 ICorProfilerInfo9 * This,
14577 /* [in] */ ThreadID threadId,
14578 /* [out] */ AppDomainID *pAppDomainId);
14579
14580 HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )(
14581 ICorProfilerInfo9 * This,
14582 /* [in] */ ClassID classId,
14583 /* [in] */ mdFieldDef fieldToken,
14584 /* [out] */ void **ppAddress);
14585
14586 HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )(
14587 ICorProfilerInfo9 * This,
14588 /* [in] */ ClassID classId,
14589 /* [in] */ mdFieldDef fieldToken,
14590 /* [in] */ AppDomainID appDomainId,
14591 /* [out] */ void **ppAddress);
14592
14593 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )(
14594 ICorProfilerInfo9 * This,
14595 /* [in] */ ClassID classId,
14596 /* [in] */ mdFieldDef fieldToken,
14597 /* [in] */ ThreadID threadId,
14598 /* [out] */ void **ppAddress);
14599
14600 HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )(
14601 ICorProfilerInfo9 * This,
14602 /* [in] */ ClassID classId,
14603 /* [in] */ mdFieldDef fieldToken,
14604 /* [in] */ ContextID contextId,
14605 /* [out] */ void **ppAddress);
14606
14607 HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )(
14608 ICorProfilerInfo9 * This,
14609 /* [in] */ ClassID classId,
14610 /* [in] */ mdFieldDef fieldToken,
14611 /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
14612
14613 HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )(
14614 ICorProfilerInfo9 * This,
14615 /* [in] */ ULONG cObjectRanges,
14616 /* [out] */ ULONG *pcObjectRanges,
14617 /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[ ]);
14618
14619 HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )(
14620 ICorProfilerInfo9 * This,
14621 /* [in] */ ObjectID objectId,
14622 /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
14623
14624 HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )(
14625 ICorProfilerInfo9 * This,
14626 /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
14627
14628 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )(
14629 ICorProfilerInfo9 * This,
14630 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14631
14632 HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )(
14633 ICorProfilerInfo9 * This,
14634 /* [in] */ DWORD dwExpectedCompletionMilliseconds);
14635
14636 HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )(
14637 ICorProfilerInfo9 * This,
14638 /* [in] */ FunctionIDMapper2 *pFunc,
14639 /* [in] */ void *clientData);
14640
14641 HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )(
14642 ICorProfilerInfo9 * This,
14643 /* [out] */ ULONG *pStringLengthOffset,
14644 /* [out] */ ULONG *pBufferOffset);
14645
14646 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )(
14647 ICorProfilerInfo9 * This,
14648 /* [in] */ FunctionEnter3 *pFuncEnter3,
14649 /* [in] */ FunctionLeave3 *pFuncLeave3,
14650 /* [in] */ FunctionTailcall3 *pFuncTailcall3);
14651
14652 HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )(
14653 ICorProfilerInfo9 * This,
14654 /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
14655 /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
14656 /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
14657
14658 HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )(
14659 ICorProfilerInfo9 * This,
14660 /* [in] */ FunctionID functionId,
14661 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14662 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14663 /* [out][in] */ ULONG *pcbArgumentInfo,
14664 /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
14665
14666 HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )(
14667 ICorProfilerInfo9 * This,
14668 /* [in] */ FunctionID functionId,
14669 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14670 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14671 /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
14672
14673 HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )(
14674 ICorProfilerInfo9 * This,
14675 /* [in] */ FunctionID functionId,
14676 /* [in] */ COR_PRF_ELT_INFO eltInfo,
14677 /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
14678
14679 HRESULT ( STDMETHODCALLTYPE *EnumModules )(
14680 ICorProfilerInfo9 * This,
14681 /* [out] */ ICorProfilerModuleEnum **ppEnum);
14682
14683 HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )(
14684 ICorProfilerInfo9 * This,
14685 /* [out] */ USHORT *pClrInstanceId,
14686 /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
14687 /* [out] */ USHORT *pMajorVersion,
14688 /* [out] */ USHORT *pMinorVersion,
14689 /* [out] */ USHORT *pBuildNumber,
14690 /* [out] */ USHORT *pQFEVersion,
14691 /* [in] */ ULONG cchVersionString,
14692 /* [out] */ ULONG *pcchVersionString,
14693 /* [annotation][out] */
14694 _Out_writes_to_(cchVersionString, *pcchVersionString) WCHAR szVersionString[ ]);
14695
14696 HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )(
14697 ICorProfilerInfo9 * This,
14698 /* [in] */ ClassID classId,
14699 /* [in] */ mdFieldDef fieldToken,
14700 /* [in] */ AppDomainID appDomainId,
14701 /* [in] */ ThreadID threadId,
14702 /* [out] */ void **ppAddress);
14703
14704 HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )(
14705 ICorProfilerInfo9 * This,
14706 /* [in] */ ModuleID moduleId,
14707 /* [in] */ ULONG32 cAppDomainIds,
14708 /* [out] */ ULONG32 *pcAppDomainIds,
14709 /* [length_is][size_is][out] */ AppDomainID appDomainIds[ ]);
14710
14711 HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )(
14712 ICorProfilerInfo9 * This,
14713 /* [in] */ ModuleID moduleId,
14714 /* [out] */ LPCBYTE *ppBaseLoadAddress,
14715 /* [in] */ ULONG cchName,
14716 /* [out] */ ULONG *pcchName,
14717 /* [annotation][out] */
14718 _Out_writes_to_(cchName, *pcchName) WCHAR szName[ ],
14719 /* [out] */ AssemblyID *pAssemblyId,
14720 /* [out] */ DWORD *pdwModuleFlags);
14721
14722 HRESULT ( STDMETHODCALLTYPE *EnumThreads )(
14723 ICorProfilerInfo9 * This,
14724 /* [out] */ ICorProfilerThreadEnum **ppEnum);
14725
14726 HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )(
14727 ICorProfilerInfo9 * This);
14728
14729 HRESULT ( STDMETHODCALLTYPE *RequestReJIT )(
14730 ICorProfilerInfo9 * This,
14731 /* [in] */ ULONG cFunctions,
14732 /* [size_is][in] */ ModuleID moduleIds[ ],
14733 /* [size_is][in] */ mdMethodDef methodIds[ ]);
14734
14735 HRESULT ( STDMETHODCALLTYPE *RequestRevert )(
14736 ICorProfilerInfo9 * This,
14737 /* [in] */ ULONG cFunctions,
14738 /* [size_is][in] */ ModuleID moduleIds[ ],
14739 /* [size_is][in] */ mdMethodDef methodIds[ ],
14740 /* [size_is][out] */ HRESULT status[ ]);
14741
14742 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )(
14743 ICorProfilerInfo9 * This,
14744 /* [in] */ FunctionID functionID,
14745 /* [in] */ ReJITID reJitId,
14746 /* [in] */ ULONG32 cCodeInfos,
14747 /* [out] */ ULONG32 *pcCodeInfos,
14748 /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[ ]);
14749
14750 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )(
14751 ICorProfilerInfo9 * This,
14752 /* [in] */ LPCBYTE ip,
14753 /* [out] */ FunctionID *pFunctionId,
14754 /* [out] */ ReJITID *pReJitId);
14755
14756 HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )(
14757 ICorProfilerInfo9 * This,
14758 /* [in] */ FunctionID functionId,
14759 /* [in] */ ULONG cReJitIds,
14760 /* [out] */ ULONG *pcReJitIds,
14761 /* [length_is][size_is][out] */ ReJITID reJitIds[ ]);
14762
14763 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )(
14764 ICorProfilerInfo9 * This,
14765 /* [in] */ FunctionID functionId,
14766 /* [in] */ ReJITID reJitId,
14767 /* [in] */ ULONG32 cMap,
14768 /* [out] */ ULONG32 *pcMap,
14769 /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14770
14771 HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )(
14772 ICorProfilerInfo9 * This,
14773 /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14774
14775 HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )(
14776 ICorProfilerInfo9 * This,
14777 /* [in] */ ObjectID objectId,
14778 /* [out] */ SIZE_T *pcSize);
14779
14780 HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )(
14781 ICorProfilerInfo9 * This,
14782 /* [out] */ DWORD *pdwEventsLow,
14783 /* [out] */ DWORD *pdwEventsHigh);
14784
14785 HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )(
14786 ICorProfilerInfo9 * This,
14787 /* [in] */ DWORD dwEventsLow,
14788 /* [in] */ DWORD dwEventsHigh);
14789
14790 HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )(
14791 ICorProfilerInfo9 * This,
14792 /* [in] */ ModuleID inlinersModuleId,
14793 /* [in] */ ModuleID inlineeModuleId,
14794 /* [in] */ mdMethodDef inlineeMethodId,
14795 /* [out] */ BOOL *incompleteData,
14796 /* [out] */ ICorProfilerMethodEnum **ppEnum);
14797
14798 HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )(
14799 ICorProfilerInfo9 * This,
14800 /* [in] */ ModuleID moduleId);
14801
14802 HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )(
14803 ICorProfilerInfo9 * This,
14804 /* [in] */ ModuleID moduleId,
14805 /* [out] */ DWORD *pCountSymbolBytes);
14806
14807 HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )(
14808 ICorProfilerInfo9 * This,
14809 /* [in] */ ModuleID moduleId,
14810 /* [in] */ DWORD symbolsReadOffset,
14811 /* [out] */ BYTE *pSymbolBytes,
14812 /* [in] */ DWORD countSymbolBytes,
14813 /* [out] */ DWORD *pCountSymbolBytesRead);
14814
14815 HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )(
14816 ICorProfilerInfo9 * This,
14817 /* [in] */ FunctionID functionId,
14818 /* [out] */ BOOL *isDynamic);
14819
14820 HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )(
14821 ICorProfilerInfo9 * This,
14822 /* [in] */ LPCBYTE ip,
14823 /* [out] */ FunctionID *functionId,
14824 /* [out] */ ReJITID *pReJitId);
14825
14826 HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )(
14827 ICorProfilerInfo9 * This,
14828 /* [in] */ FunctionID functionId,
14829 /* [out] */ ModuleID *moduleId,
14830 /* [out] */ PCCOR_SIGNATURE *ppvSig,
14831 /* [out] */ ULONG *pbSig,
14832 /* [in] */ ULONG cchName,
14833 /* [out] */ ULONG *pcchName,
14834 /* [out] */ WCHAR wszName[ ]);
14835
14836 HRESULT ( STDMETHODCALLTYPE *GetNativeCodeStartAddresses )(
14837 ICorProfilerInfo9 * This,
14838 FunctionID functionID,
14839 ReJITID reJitId,
14840 ULONG32 cCodeStartAddresses,
14841 ULONG32 *pcCodeStartAddresses,
14842 UINT_PTR codeStartAddresses[ ]);
14843
14844 HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping3 )(
14845 ICorProfilerInfo9 * This,
14846 UINT_PTR pNativeCodeStartAddress,
14847 ULONG32 cMap,
14848 ULONG32 *pcMap,
14849 COR_DEBUG_IL_TO_NATIVE_MAP map[ ]);
14850
14851 HRESULT ( STDMETHODCALLTYPE *GetCodeInfo4 )(
14852 ICorProfilerInfo9 * This,
14853 UINT_PTR pNativeCodeStartAddress,
14854 ULONG32 cCodeInfos,
14855 ULONG32 *pcCodeInfos,
14856 COR_PRF_CODE_INFO codeInfos[ ]);
14857
14858 END_INTERFACE
14859 } ICorProfilerInfo9Vtbl;
14860
14861 interface ICorProfilerInfo9
14862 {
14863 CONST_VTBL struct ICorProfilerInfo9Vtbl *lpVtbl;
14864 };
14865
14866
14867
14868#ifdef COBJMACROS
14869
14870
14871#define ICorProfilerInfo9_QueryInterface(This,riid,ppvObject) \
14872 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
14873
14874#define ICorProfilerInfo9_AddRef(This) \
14875 ( (This)->lpVtbl -> AddRef(This) )
14876
14877#define ICorProfilerInfo9_Release(This) \
14878 ( (This)->lpVtbl -> Release(This) )
14879
14880
14881#define ICorProfilerInfo9_GetClassFromObject(This,objectId,pClassId) \
14882 ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) )
14883
14884#define ICorProfilerInfo9_GetClassFromToken(This,moduleId,typeDef,pClassId) \
14885 ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) )
14886
14887#define ICorProfilerInfo9_GetCodeInfo(This,functionId,pStart,pcSize) \
14888 ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) )
14889
14890#define ICorProfilerInfo9_GetEventMask(This,pdwEvents) \
14891 ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) )
14892
14893#define ICorProfilerInfo9_GetFunctionFromIP(This,ip,pFunctionId) \
14894 ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) )
14895
14896#define ICorProfilerInfo9_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
14897 ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) )
14898
14899#define ICorProfilerInfo9_GetHandleFromThread(This,threadId,phThread) \
14900 ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) )
14901
14902#define ICorProfilerInfo9_GetObjectSize(This,objectId,pcSize) \
14903 ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) )
14904
14905#define ICorProfilerInfo9_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) \
14906 ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) )
14907
14908#define ICorProfilerInfo9_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
14909 ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) )
14910
14911#define ICorProfilerInfo9_GetCurrentThreadID(This,pThreadId) \
14912 ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) )
14913
14914#define ICorProfilerInfo9_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) \
14915 ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) )
14916
14917#define ICorProfilerInfo9_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) \
14918 ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) )
14919
14920#define ICorProfilerInfo9_SetEventMask(This,dwEvents) \
14921 ( (This)->lpVtbl -> SetEventMask(This,dwEvents) )
14922
14923#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14924 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14925
14926#define ICorProfilerInfo9_SetFunctionIDMapper(This,pFunc) \
14927 ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) )
14928
14929#define ICorProfilerInfo9_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
14930 ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) )
14931
14932#define ICorProfilerInfo9_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) \
14933 ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) )
14934
14935#define ICorProfilerInfo9_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) \
14936 ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) )
14937
14938#define ICorProfilerInfo9_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
14939 ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) )
14940
14941#define ICorProfilerInfo9_GetILFunctionBodyAllocator(This,moduleId,ppMalloc) \
14942 ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) )
14943
14944#define ICorProfilerInfo9_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14945 ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) )
14946
14947#define ICorProfilerInfo9_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14948 ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) )
14949
14950#define ICorProfilerInfo9_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) \
14951 ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) )
14952
14953#define ICorProfilerInfo9_SetFunctionReJIT(This,functionId) \
14954 ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) )
14955
14956#define ICorProfilerInfo9_ForceGC(This) \
14957 ( (This)->lpVtbl -> ForceGC(This) )
14958
14959#define ICorProfilerInfo9_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) \
14960 ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) )
14961
14962#define ICorProfilerInfo9_GetInprocInspectionInterface(This,ppicd) \
14963 ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) )
14964
14965#define ICorProfilerInfo9_GetInprocInspectionIThisThread(This,ppicd) \
14966 ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) )
14967
14968#define ICorProfilerInfo9_GetThreadContext(This,threadId,pContextId) \
14969 ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) )
14970
14971#define ICorProfilerInfo9_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14972 ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) )
14973
14974#define ICorProfilerInfo9_EndInprocDebugging(This,dwProfilerContext) \
14975 ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) )
14976
14977#define ICorProfilerInfo9_GetILToNativeMapping(This,functionId,cMap,pcMap,map) \
14978 ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) )
14979
14980
14981#define ICorProfilerInfo9_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) \
14982 ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) )
14983
14984#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14985 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) )
14986
14987#define ICorProfilerInfo9_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) \
14988 ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) )
14989
14990#define ICorProfilerInfo9_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) \
14991 ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) )
14992
14993#define ICorProfilerInfo9_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
14994 ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) )
14995
14996#define ICorProfilerInfo9_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) \
14997 ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) )
14998
14999#define ICorProfilerInfo9_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) \
15000 ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) )
15001
15002#define ICorProfilerInfo9_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) \
15003 ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) )
15004
15005#define ICorProfilerInfo9_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
15006 ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) )
15007
15008#define ICorProfilerInfo9_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
15009 ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) )
15010
15011#define ICorProfilerInfo9_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) \
15012 ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) )
15013
15014#define ICorProfilerInfo9_GetBoxClassLayout(This,classId,pBufferOffset) \
15015 ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) )
15016
15017#define ICorProfilerInfo9_GetThreadAppDomain(This,threadId,pAppDomainId) \
15018 ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) )
15019
15020#define ICorProfilerInfo9_GetRVAStaticAddress(This,classId,fieldToken,ppAddress) \
15021 ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) )
15022
15023#define ICorProfilerInfo9_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) \
15024 ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) )
15025
15026#define ICorProfilerInfo9_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) \
15027 ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) )
15028
15029#define ICorProfilerInfo9_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) \
15030 ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) )
15031
15032#define ICorProfilerInfo9_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) \
15033 ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) )
15034
15035#define ICorProfilerInfo9_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
15036 ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) )
15037
15038#define ICorProfilerInfo9_GetObjectGeneration(This,objectId,range) \
15039 ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) )
15040
15041#define ICorProfilerInfo9_GetNotifiedExceptionClauseInfo(This,pinfo) \
15042 ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) )
15043
15044
15045#define ICorProfilerInfo9_EnumJITedFunctions(This,ppEnum) \
15046 ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) )
15047
15048#define ICorProfilerInfo9_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) \
15049 ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) )
15050
15051#define ICorProfilerInfo9_SetFunctionIDMapper2(This,pFunc,clientData) \
15052 ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) )
15053
15054#define ICorProfilerInfo9_GetStringLayout2(This,pStringLengthOffset,pBufferOffset) \
15055 ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) )
15056
15057#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) \
15058 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) )
15059
15060#define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) \
15061 ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) )
15062
15063#define ICorProfilerInfo9_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) \
15064 ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) )
15065
15066#define ICorProfilerInfo9_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) \
15067 ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) )
15068
15069#define ICorProfilerInfo9_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) \
15070 ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) )
15071
15072#define ICorProfilerInfo9_EnumModules(This,ppEnum) \
15073 ( (This)->lpVtbl -> EnumModules(This,ppEnum) )
15074
15075#define ICorProfilerInfo9_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) \
15076 ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) )
15077
15078#define ICorProfilerInfo9_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) \
15079 ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) )
15080
15081#define ICorProfilerInfo9_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) \
15082 ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) )
15083
15084#define ICorProfilerInfo9_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) \
15085 ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) )
15086
15087
15088#define ICorProfilerInfo9_EnumThreads(This,ppEnum) \
15089 ( (This)->lpVtbl -> EnumThreads(This,ppEnum) )
15090
15091#define ICorProfilerInfo9_InitializeCurrentThread(This) \
15092 ( (This)->lpVtbl -> InitializeCurrentThread(This) )
15093
15094#define ICorProfilerInfo9_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
15095 ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) )
15096
15097#define ICorProfilerInfo9_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
15098 ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) )
15099
15100#define ICorProfilerInfo9_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) \
15101 ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) )
15102
15103#define ICorProfilerInfo9_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) \
15104 ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) )
15105
15106#define ICorProfilerInfo9_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) \
15107 ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) )
15108
15109#define ICorProfilerInfo9_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
15110 ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) )
15111
15112#define ICorProfilerInfo9_EnumJITedFunctions2(This,ppEnum) \
15113 ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) )
15114
15115#define ICorProfilerInfo9_GetObjectSize2(This,objectId,pcSize) \
15116 ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) )
15117
15118
15119#define ICorProfilerInfo9_GetEventMask2(This,pdwEventsLow,pdwEventsHigh) \
15120 ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) )
15121
15122#define ICorProfilerInfo9_SetEventMask2(This,dwEventsLow,dwEventsHigh) \
15123 ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) )
15124
15125
15126#define ICorProfilerInfo9_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) \
15127 ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) )
15128
15129
15130#define ICorProfilerInfo9_ApplyMetaData(This,moduleId) \
15131 ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) )
15132
15133#define ICorProfilerInfo9_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
15134 ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) )
15135
15136#define ICorProfilerInfo9_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) \
15137 ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) )
15138
15139
15140#define ICorProfilerInfo9_IsFunctionDynamic(This,functionId,isDynamic) \
15141 ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) )
15142
15143#define ICorProfilerInfo9_GetFunctionFromIP3(This,ip,functionId,pReJitId) \
15144 ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) )
15145
15146#define ICorProfilerInfo9_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) \
15147 ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) )
15148
15149
15150#define ICorProfilerInfo9_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) \
15151 ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) )
15152
15153#define ICorProfilerInfo9_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) \
15154 ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) )
15155
15156#define ICorProfilerInfo9_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) \
15157 ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) )
15158
15159#endif /* COBJMACROS */
15160
15161
15162#endif /* C style interface */
15163
15164
15165
15166
15167#endif /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */
15168
15169
15170#ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15171#define __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15172
15173/* interface ICorProfilerMethodEnum */
15174/* [local][unique][uuid][object] */
15175
15176
15177EXTERN_C const IID IID_ICorProfilerMethodEnum;
15178
15179#if defined(__cplusplus) && !defined(CINTERFACE)
15180
15181 MIDL_INTERFACE("FCCEE788-0088-454B-A811-C99F298D1942")
15182 ICorProfilerMethodEnum : public IUnknown
15183 {
15184 public:
15185 virtual HRESULT STDMETHODCALLTYPE Skip(
15186 /* [in] */ ULONG celt) = 0;
15187
15188 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15189
15190 virtual HRESULT STDMETHODCALLTYPE Clone(
15191 /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
15192
15193 virtual HRESULT STDMETHODCALLTYPE GetCount(
15194 /* [out] */ ULONG *pcelt) = 0;
15195
15196 virtual HRESULT STDMETHODCALLTYPE Next(
15197 /* [in] */ ULONG celt,
15198 /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ],
15199 /* [out] */ ULONG *pceltFetched) = 0;
15200
15201 };
15202
15203
15204#else /* C style interface */
15205
15206 typedef struct ICorProfilerMethodEnumVtbl
15207 {
15208 BEGIN_INTERFACE
15209
15210 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15211 ICorProfilerMethodEnum * This,
15212 /* [in] */ REFIID riid,
15213 /* [annotation][iid_is][out] */
15214 _COM_Outptr_ void **ppvObject);
15215
15216 ULONG ( STDMETHODCALLTYPE *AddRef )(
15217 ICorProfilerMethodEnum * This);
15218
15219 ULONG ( STDMETHODCALLTYPE *Release )(
15220 ICorProfilerMethodEnum * This);
15221
15222 HRESULT ( STDMETHODCALLTYPE *Skip )(
15223 ICorProfilerMethodEnum * This,
15224 /* [in] */ ULONG celt);
15225
15226 HRESULT ( STDMETHODCALLTYPE *Reset )(
15227 ICorProfilerMethodEnum * This);
15228
15229 HRESULT ( STDMETHODCALLTYPE *Clone )(
15230 ICorProfilerMethodEnum * This,
15231 /* [out] */ ICorProfilerMethodEnum **ppEnum);
15232
15233 HRESULT ( STDMETHODCALLTYPE *GetCount )(
15234 ICorProfilerMethodEnum * This,
15235 /* [out] */ ULONG *pcelt);
15236
15237 HRESULT ( STDMETHODCALLTYPE *Next )(
15238 ICorProfilerMethodEnum * This,
15239 /* [in] */ ULONG celt,
15240 /* [length_is][size_is][out] */ COR_PRF_METHOD elements[ ],
15241 /* [out] */ ULONG *pceltFetched);
15242
15243 END_INTERFACE
15244 } ICorProfilerMethodEnumVtbl;
15245
15246 interface ICorProfilerMethodEnum
15247 {
15248 CONST_VTBL struct ICorProfilerMethodEnumVtbl *lpVtbl;
15249 };
15250
15251
15252
15253#ifdef COBJMACROS
15254
15255
15256#define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject) \
15257 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15258
15259#define ICorProfilerMethodEnum_AddRef(This) \
15260 ( (This)->lpVtbl -> AddRef(This) )
15261
15262#define ICorProfilerMethodEnum_Release(This) \
15263 ( (This)->lpVtbl -> Release(This) )
15264
15265
15266#define ICorProfilerMethodEnum_Skip(This,celt) \
15267 ( (This)->lpVtbl -> Skip(This,celt) )
15268
15269#define ICorProfilerMethodEnum_Reset(This) \
15270 ( (This)->lpVtbl -> Reset(This) )
15271
15272#define ICorProfilerMethodEnum_Clone(This,ppEnum) \
15273 ( (This)->lpVtbl -> Clone(This,ppEnum) )
15274
15275#define ICorProfilerMethodEnum_GetCount(This,pcelt) \
15276 ( (This)->lpVtbl -> GetCount(This,pcelt) )
15277
15278#define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched) \
15279 ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) )
15280
15281#endif /* COBJMACROS */
15282
15283
15284#endif /* C style interface */
15285
15286
15287
15288
15289#endif /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */
15290
15291
15292#ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15293#define __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15294
15295/* interface ICorProfilerThreadEnum */
15296/* [local][unique][uuid][object] */
15297
15298
15299EXTERN_C const IID IID_ICorProfilerThreadEnum;
15300
15301#if defined(__cplusplus) && !defined(CINTERFACE)
15302
15303 MIDL_INTERFACE("571194f7-25ed-419f-aa8b-7016b3159701")
15304 ICorProfilerThreadEnum : public IUnknown
15305 {
15306 public:
15307 virtual HRESULT STDMETHODCALLTYPE Skip(
15308 /* [in] */ ULONG celt) = 0;
15309
15310 virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15311
15312 virtual HRESULT STDMETHODCALLTYPE Clone(
15313 /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
15314
15315 virtual HRESULT STDMETHODCALLTYPE GetCount(
15316 /* [out] */ ULONG *pcelt) = 0;
15317
15318 virtual HRESULT STDMETHODCALLTYPE Next(
15319 /* [in] */ ULONG celt,
15320 /* [length_is][size_is][out] */ ThreadID ids[ ],
15321 /* [out] */ ULONG *pceltFetched) = 0;
15322
15323 };
15324
15325
15326#else /* C style interface */
15327
15328 typedef struct ICorProfilerThreadEnumVtbl
15329 {
15330 BEGIN_INTERFACE
15331
15332 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15333 ICorProfilerThreadEnum * This,
15334 /* [in] */ REFIID riid,
15335 /* [annotation][iid_is][out] */
15336 _COM_Outptr_ void **ppvObject);
15337
15338 ULONG ( STDMETHODCALLTYPE *AddRef )(
15339 ICorProfilerThreadEnum * This);
15340
15341 ULONG ( STDMETHODCALLTYPE *Release )(
15342 ICorProfilerThreadEnum * This);
15343
15344 HRESULT ( STDMETHODCALLTYPE *Skip )(
15345 ICorProfilerThreadEnum * This,
15346 /* [in] */ ULONG celt);
15347
15348 HRESULT ( STDMETHODCALLTYPE *Reset )(
15349 ICorProfilerThreadEnum * This);
15350
15351 HRESULT ( STDMETHODCALLTYPE *Clone )(
15352 ICorProfilerThreadEnum * This,
15353 /* [out] */ ICorProfilerThreadEnum **ppEnum);
15354
15355 HRESULT ( STDMETHODCALLTYPE *GetCount )(
15356 ICorProfilerThreadEnum * This,
15357 /* [out] */ ULONG *pcelt);
15358
15359 HRESULT ( STDMETHODCALLTYPE *Next )(
15360 ICorProfilerThreadEnum * This,
15361 /* [in] */ ULONG celt,
15362 /* [length_is][size_is][out] */ ThreadID ids[ ],
15363 /* [out] */ ULONG *pceltFetched);
15364
15365 END_INTERFACE
15366 } ICorProfilerThreadEnumVtbl;
15367
15368 interface ICorProfilerThreadEnum
15369 {
15370 CONST_VTBL struct ICorProfilerThreadEnumVtbl *lpVtbl;
15371 };
15372
15373
15374
15375#ifdef COBJMACROS
15376
15377
15378#define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject) \
15379 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15380
15381#define ICorProfilerThreadEnum_AddRef(This) \
15382 ( (This)->lpVtbl -> AddRef(This) )
15383
15384#define ICorProfilerThreadEnum_Release(This) \
15385 ( (This)->lpVtbl -> Release(This) )
15386
15387
15388#define ICorProfilerThreadEnum_Skip(This,celt) \
15389 ( (This)->lpVtbl -> Skip(This,celt) )
15390
15391#define ICorProfilerThreadEnum_Reset(This) \
15392 ( (This)->lpVtbl -> Reset(This) )
15393
15394#define ICorProfilerThreadEnum_Clone(This,ppEnum) \
15395 ( (This)->lpVtbl -> Clone(This,ppEnum) )
15396
15397#define ICorProfilerThreadEnum_GetCount(This,pcelt) \
15398 ( (This)->lpVtbl -> GetCount(This,pcelt) )
15399
15400#define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \
15401 ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) )
15402
15403#endif /* COBJMACROS */
15404
15405
15406#endif /* C style interface */
15407
15408
15409
15410
15411#endif /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */
15412
15413
15414#ifndef __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15415#define __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15416
15417/* interface ICorProfilerAssemblyReferenceProvider */
15418/* [local][unique][uuid][object] */
15419
15420
15421EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider;
15422
15423#if defined(__cplusplus) && !defined(CINTERFACE)
15424
15425 MIDL_INTERFACE("66A78C24-2EEF-4F65-B45F-DD1D8038BF3C")
15426 ICorProfilerAssemblyReferenceProvider : public IUnknown
15427 {
15428 public:
15429 virtual HRESULT STDMETHODCALLTYPE AddAssemblyReference(
15430 const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo) = 0;
15431
15432 };
15433
15434
15435#else /* C style interface */
15436
15437 typedef struct ICorProfilerAssemblyReferenceProviderVtbl
15438 {
15439 BEGIN_INTERFACE
15440
15441 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15442 ICorProfilerAssemblyReferenceProvider * This,
15443 /* [in] */ REFIID riid,
15444 /* [annotation][iid_is][out] */
15445 _COM_Outptr_ void **ppvObject);
15446
15447 ULONG ( STDMETHODCALLTYPE *AddRef )(
15448 ICorProfilerAssemblyReferenceProvider * This);
15449
15450 ULONG ( STDMETHODCALLTYPE *Release )(
15451 ICorProfilerAssemblyReferenceProvider * This);
15452
15453 HRESULT ( STDMETHODCALLTYPE *AddAssemblyReference )(
15454 ICorProfilerAssemblyReferenceProvider * This,
15455 const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo);
15456
15457 END_INTERFACE
15458 } ICorProfilerAssemblyReferenceProviderVtbl;
15459
15460 interface ICorProfilerAssemblyReferenceProvider
15461 {
15462 CONST_VTBL struct ICorProfilerAssemblyReferenceProviderVtbl *lpVtbl;
15463 };
15464
15465
15466
15467#ifdef COBJMACROS
15468
15469
15470#define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject) \
15471 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15472
15473#define ICorProfilerAssemblyReferenceProvider_AddRef(This) \
15474 ( (This)->lpVtbl -> AddRef(This) )
15475
15476#define ICorProfilerAssemblyReferenceProvider_Release(This) \
15477 ( (This)->lpVtbl -> Release(This) )
15478
15479
15480#define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo) \
15481 ( (This)->lpVtbl -> AddAssemblyReference(This,pAssemblyRefInfo) )
15482
15483#endif /* COBJMACROS */
15484
15485
15486#endif /* C style interface */
15487
15488
15489
15490
15491#endif /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */
15492
15493
15494#ifndef __ICLRProfiling_INTERFACE_DEFINED__
15495#define __ICLRProfiling_INTERFACE_DEFINED__
15496
15497/* interface ICLRProfiling */
15498/* [object][local][helpstring][version][uuid] */
15499
15500
15501EXTERN_C const IID IID_ICLRProfiling;
15502
15503#if defined(__cplusplus) && !defined(CINTERFACE)
15504
15505 MIDL_INTERFACE("B349ABE3-B56F-4689-BFCD-76BF39D888EA")
15506 ICLRProfiling : public IUnknown
15507 {
15508 public:
15509 virtual HRESULT STDMETHODCALLTYPE AttachProfiler(
15510 /* [in] */ DWORD dwProfileeProcessID,
15511 /* [in] */ DWORD dwMillisecondsMax,
15512 /* [in] */ const CLSID *pClsidProfiler,
15513 /* [in] */ LPCWSTR wszProfilerPath,
15514 /* [size_is][in] */ void *pvClientData,
15515 /* [in] */ UINT cbClientData) = 0;
15516
15517 };
15518
15519
15520#else /* C style interface */
15521
15522 typedef struct ICLRProfilingVtbl
15523 {
15524 BEGIN_INTERFACE
15525
15526 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15527 ICLRProfiling * This,
15528 /* [in] */ REFIID riid,
15529 /* [annotation][iid_is][out] */
15530 _COM_Outptr_ void **ppvObject);
15531
15532 ULONG ( STDMETHODCALLTYPE *AddRef )(
15533 ICLRProfiling * This);
15534
15535 ULONG ( STDMETHODCALLTYPE *Release )(
15536 ICLRProfiling * This);
15537
15538 HRESULT ( STDMETHODCALLTYPE *AttachProfiler )(
15539 ICLRProfiling * This,
15540 /* [in] */ DWORD dwProfileeProcessID,
15541 /* [in] */ DWORD dwMillisecondsMax,
15542 /* [in] */ const CLSID *pClsidProfiler,
15543 /* [in] */ LPCWSTR wszProfilerPath,
15544 /* [size_is][in] */ void *pvClientData,
15545 /* [in] */ UINT cbClientData);
15546
15547 END_INTERFACE
15548 } ICLRProfilingVtbl;
15549
15550 interface ICLRProfiling
15551 {
15552 CONST_VTBL struct ICLRProfilingVtbl *lpVtbl;
15553 };
15554
15555
15556
15557#ifdef COBJMACROS
15558
15559
15560#define ICLRProfiling_QueryInterface(This,riid,ppvObject) \
15561 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15562
15563#define ICLRProfiling_AddRef(This) \
15564 ( (This)->lpVtbl -> AddRef(This) )
15565
15566#define ICLRProfiling_Release(This) \
15567 ( (This)->lpVtbl -> Release(This) )
15568
15569
15570#define ICLRProfiling_AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) \
15571 ( (This)->lpVtbl -> AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) )
15572
15573#endif /* COBJMACROS */
15574
15575
15576#endif /* C style interface */
15577
15578
15579
15580
15581#endif /* __ICLRProfiling_INTERFACE_DEFINED__ */
15582
15583
15584#ifndef __ICLRProfiling_INTERFACE_DEFINED__
15585#define __ICLRProfiling_INTERFACE_DEFINED__
15586
15587/* interface ICLRProfiling */
15588/* [object][local][helpstring][version][uuid] */
15589
15590
15591EXTERN_C const IID IID_ICLRProfiling;
15592
15593#if defined(__cplusplus) && !defined(CINTERFACE)
15594
15595 MIDL_INTERFACE("B349ABE3-B56F-4689-BFCD-76BF39D888EA")
15596 ICLRProfiling : public IUnknown
15597 {
15598 public:
15599 virtual HRESULT STDMETHODCALLTYPE AttachProfiler(
15600 /* [in] */ DWORD dwProfileeProcessID,
15601 /* [in] */ DWORD dwMillisecondsMax,
15602 /* [in] */ const CLSID *pClsidProfiler,
15603 /* [in] */ LPCWSTR wszProfilerPath,
15604 /* [size_is][in] */ void *pvClientData,
15605 /* [in] */ UINT cbClientData) = 0;
15606
15607 };
15608
15609
15610#else /* C style interface */
15611
15612 typedef struct ICLRProfilingVtbl
15613 {
15614 BEGIN_INTERFACE
15615
15616 HRESULT ( STDMETHODCALLTYPE *QueryInterface )(
15617 ICLRProfiling * This,
15618 /* [in] */ REFIID riid,
15619 /* [annotation][iid_is][out] */
15620 _COM_Outptr_ void **ppvObject);
15621
15622 ULONG ( STDMETHODCALLTYPE *AddRef )(
15623 ICLRProfiling * This);
15624
15625 ULONG ( STDMETHODCALLTYPE *Release )(
15626 ICLRProfiling * This);
15627
15628 HRESULT ( STDMETHODCALLTYPE *AttachProfiler )(
15629 ICLRProfiling * This,
15630 /* [in] */ DWORD dwProfileeProcessID,
15631 /* [in] */ DWORD dwMillisecondsMax,
15632 /* [in] */ const CLSID *pClsidProfiler,
15633 /* [in] */ LPCWSTR wszProfilerPath,
15634 /* [size_is][in] */ void *pvClientData,
15635 /* [in] */ UINT cbClientData);
15636
15637 END_INTERFACE
15638 } ICLRProfilingVtbl;
15639
15640 interface ICLRProfiling
15641 {
15642 CONST_VTBL struct ICLRProfilingVtbl *lpVtbl;
15643 };
15644
15645
15646
15647#ifdef COBJMACROS
15648
15649
15650#define ICLRProfiling_QueryInterface(This,riid,ppvObject) \
15651 ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) )
15652
15653#define ICLRProfiling_AddRef(This) \
15654 ( (This)->lpVtbl -> AddRef(This) )
15655
15656#define ICLRProfiling_Release(This) \
15657 ( (This)->lpVtbl -> Release(This) )
15658
15659
15660#define ICLRProfiling_AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) \
15661 ( (This)->lpVtbl -> AttachProfiler(This,dwProfileeProcessID,dwMillisecondsMax,pClsidProfiler,wszProfilerPath,pvClientData,cbClientData) )
15662
15663#endif /* COBJMACROS */
15664
15665
15666#endif /* C style interface */
15667
15668
15669
15670
15671#endif /* __ICLRProfiling_INTERFACE_DEFINED__ */
15672
15673
15674/* Additional Prototypes for ALL interfaces */
15675
15676/* end of Additional Prototypes */
15677
15678#ifdef __cplusplus
15679}
15680#endif
15681
15682#endif
15683
15684
15685