[Tizen] Fix call convension for profiler wrappers with clang 5 support
[platform/upstream/coreclr.git] / src / pal / prebuilt / inc / corprof.h
1 // Licensed to the .NET Foundation under one or more agreements.
2 // The .NET Foundation licenses this file to you under the MIT license.
3 // See the LICENSE file in the project root for more information.
4
5 /* this ALWAYS GENERATED file contains the definitions for the interfaces */
6
7
8  /* File created by MIDL compiler version 8.01.0622 */
9 /* @@MIDL_FILE_HEADING(  ) */
10
11 #pragma warning( disable: 4049 )  /* more than 64k source lines */
12
13
14 /* verify that the <rpcndr.h> version is high enough to compile this file*/
15 #ifndef __REQUIRED_RPCNDR_H_VERSION__
16 #define __REQUIRED_RPCNDR_H_VERSION__ 475
17 #endif
18
19 #include "rpc.h"
20 #include "rpcndr.h"
21
22 #ifndef __RPCNDR_H_VERSION__
23 #error this stub requires an updated version of <rpcndr.h>
24 #endif /* __RPCNDR_H_VERSION__ */
25
26 #ifndef COM_NO_WINDOWS_H
27 #include "windows.h"
28 #include "ole2.h"
29 #endif /*COM_NO_WINDOWS_H*/
30
31 #ifndef __corprof_h__
32 #define __corprof_h__
33
34 #if defined(_MSC_VER) && (_MSC_VER >= 1020)
35 #pragma once
36 #endif
37
38 /* Forward Declarations */ 
39
40 #ifndef __ICorProfilerCallback_FWD_DEFINED__
41 #define __ICorProfilerCallback_FWD_DEFINED__
42 typedef interface ICorProfilerCallback ICorProfilerCallback;
43
44 #endif  /* __ICorProfilerCallback_FWD_DEFINED__ */
45
46
47 #ifndef __ICorProfilerCallback2_FWD_DEFINED__
48 #define __ICorProfilerCallback2_FWD_DEFINED__
49 typedef interface ICorProfilerCallback2 ICorProfilerCallback2;
50
51 #endif  /* __ICorProfilerCallback2_FWD_DEFINED__ */
52
53
54 #ifndef __ICorProfilerCallback3_FWD_DEFINED__
55 #define __ICorProfilerCallback3_FWD_DEFINED__
56 typedef interface ICorProfilerCallback3 ICorProfilerCallback3;
57
58 #endif  /* __ICorProfilerCallback3_FWD_DEFINED__ */
59
60
61 #ifndef __ICorProfilerCallback4_FWD_DEFINED__
62 #define __ICorProfilerCallback4_FWD_DEFINED__
63 typedef interface ICorProfilerCallback4 ICorProfilerCallback4;
64
65 #endif  /* __ICorProfilerCallback4_FWD_DEFINED__ */
66
67
68 #ifndef __ICorProfilerCallback5_FWD_DEFINED__
69 #define __ICorProfilerCallback5_FWD_DEFINED__
70 typedef interface ICorProfilerCallback5 ICorProfilerCallback5;
71
72 #endif  /* __ICorProfilerCallback5_FWD_DEFINED__ */
73
74
75 #ifndef __ICorProfilerCallback6_FWD_DEFINED__
76 #define __ICorProfilerCallback6_FWD_DEFINED__
77 typedef interface ICorProfilerCallback6 ICorProfilerCallback6;
78
79 #endif  /* __ICorProfilerCallback6_FWD_DEFINED__ */
80
81
82 #ifndef __ICorProfilerCallback7_FWD_DEFINED__
83 #define __ICorProfilerCallback7_FWD_DEFINED__
84 typedef interface ICorProfilerCallback7 ICorProfilerCallback7;
85
86 #endif  /* __ICorProfilerCallback7_FWD_DEFINED__ */
87
88
89 #ifndef __ICorProfilerCallback8_FWD_DEFINED__
90 #define __ICorProfilerCallback8_FWD_DEFINED__
91 typedef interface ICorProfilerCallback8 ICorProfilerCallback8;
92
93 #endif  /* __ICorProfilerCallback8_FWD_DEFINED__ */
94
95
96 #ifndef __ICorProfilerCallback9_FWD_DEFINED__
97 #define __ICorProfilerCallback9_FWD_DEFINED__
98 typedef interface ICorProfilerCallback9 ICorProfilerCallback9;
99
100 #endif  /* __ICorProfilerCallback9_FWD_DEFINED__ */
101
102
103 #ifndef __ICorProfilerInfo_FWD_DEFINED__
104 #define __ICorProfilerInfo_FWD_DEFINED__
105 typedef interface ICorProfilerInfo ICorProfilerInfo;
106
107 #endif  /* __ICorProfilerInfo_FWD_DEFINED__ */
108
109
110 #ifndef __ICorProfilerInfo2_FWD_DEFINED__
111 #define __ICorProfilerInfo2_FWD_DEFINED__
112 typedef interface ICorProfilerInfo2 ICorProfilerInfo2;
113
114 #endif  /* __ICorProfilerInfo2_FWD_DEFINED__ */
115
116
117 #ifndef __ICorProfilerInfo3_FWD_DEFINED__
118 #define __ICorProfilerInfo3_FWD_DEFINED__
119 typedef interface ICorProfilerInfo3 ICorProfilerInfo3;
120
121 #endif  /* __ICorProfilerInfo3_FWD_DEFINED__ */
122
123
124 #ifndef __ICorProfilerObjectEnum_FWD_DEFINED__
125 #define __ICorProfilerObjectEnum_FWD_DEFINED__
126 typedef interface ICorProfilerObjectEnum ICorProfilerObjectEnum;
127
128 #endif  /* __ICorProfilerObjectEnum_FWD_DEFINED__ */
129
130
131 #ifndef __ICorProfilerFunctionEnum_FWD_DEFINED__
132 #define __ICorProfilerFunctionEnum_FWD_DEFINED__
133 typedef interface ICorProfilerFunctionEnum ICorProfilerFunctionEnum;
134
135 #endif  /* __ICorProfilerFunctionEnum_FWD_DEFINED__ */
136
137
138 #ifndef __ICorProfilerModuleEnum_FWD_DEFINED__
139 #define __ICorProfilerModuleEnum_FWD_DEFINED__
140 typedef interface ICorProfilerModuleEnum ICorProfilerModuleEnum;
141
142 #endif  /* __ICorProfilerModuleEnum_FWD_DEFINED__ */
143
144
145 #ifndef __IMethodMalloc_FWD_DEFINED__
146 #define __IMethodMalloc_FWD_DEFINED__
147 typedef interface IMethodMalloc IMethodMalloc;
148
149 #endif  /* __IMethodMalloc_FWD_DEFINED__ */
150
151
152 #ifndef __ICorProfilerFunctionControl_FWD_DEFINED__
153 #define __ICorProfilerFunctionControl_FWD_DEFINED__
154 typedef interface ICorProfilerFunctionControl ICorProfilerFunctionControl;
155
156 #endif  /* __ICorProfilerFunctionControl_FWD_DEFINED__ */
157
158
159 #ifndef __ICorProfilerInfo4_FWD_DEFINED__
160 #define __ICorProfilerInfo4_FWD_DEFINED__
161 typedef interface ICorProfilerInfo4 ICorProfilerInfo4;
162
163 #endif  /* __ICorProfilerInfo4_FWD_DEFINED__ */
164
165
166 #ifndef __ICorProfilerInfo5_FWD_DEFINED__
167 #define __ICorProfilerInfo5_FWD_DEFINED__
168 typedef interface ICorProfilerInfo5 ICorProfilerInfo5;
169
170 #endif  /* __ICorProfilerInfo5_FWD_DEFINED__ */
171
172
173 #ifndef __ICorProfilerInfo6_FWD_DEFINED__
174 #define __ICorProfilerInfo6_FWD_DEFINED__
175 typedef interface ICorProfilerInfo6 ICorProfilerInfo6;
176
177 #endif  /* __ICorProfilerInfo6_FWD_DEFINED__ */
178
179
180 #ifndef __ICorProfilerInfo7_FWD_DEFINED__
181 #define __ICorProfilerInfo7_FWD_DEFINED__
182 typedef interface ICorProfilerInfo7 ICorProfilerInfo7;
183
184 #endif  /* __ICorProfilerInfo7_FWD_DEFINED__ */
185
186
187 #ifndef __ICorProfilerInfo8_FWD_DEFINED__
188 #define __ICorProfilerInfo8_FWD_DEFINED__
189 typedef interface ICorProfilerInfo8 ICorProfilerInfo8;
190
191 #endif  /* __ICorProfilerInfo8_FWD_DEFINED__ */
192
193
194 #ifndef __ICorProfilerInfo9_FWD_DEFINED__
195 #define __ICorProfilerInfo9_FWD_DEFINED__
196 typedef interface ICorProfilerInfo9 ICorProfilerInfo9;
197
198 #endif  /* __ICorProfilerInfo9_FWD_DEFINED__ */
199
200
201 #ifndef __ICorProfilerMethodEnum_FWD_DEFINED__
202 #define __ICorProfilerMethodEnum_FWD_DEFINED__
203 typedef interface ICorProfilerMethodEnum ICorProfilerMethodEnum;
204
205 #endif  /* __ICorProfilerMethodEnum_FWD_DEFINED__ */
206
207
208 #ifndef __ICorProfilerThreadEnum_FWD_DEFINED__
209 #define __ICorProfilerThreadEnum_FWD_DEFINED__
210 typedef interface ICorProfilerThreadEnum ICorProfilerThreadEnum;
211
212 #endif  /* __ICorProfilerThreadEnum_FWD_DEFINED__ */
213
214
215 #ifndef __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
216 #define __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__
217 typedef interface ICorProfilerAssemblyReferenceProvider ICorProfilerAssemblyReferenceProvider;
218
219 #endif  /* __ICorProfilerAssemblyReferenceProvider_FWD_DEFINED__ */
220
221
222 /* header files for imported files */
223 #include "unknwn.h"
224
225 #ifdef __cplusplus
226 extern "C"{
227 #endif 
228
229
230 /* interface __MIDL_itf_corprof_0000_0000 */
231 /* [local] */ 
232
233 #define CorDB_CONTROL_Profiling         "Cor_Enable_Profiling"
234 #define CorDB_CONTROL_ProfilingL       L"Cor_Enable_Profiling"
235 #if 0
236 typedef LONG32 mdToken;
237
238 typedef mdToken mdModule;
239
240 typedef mdToken mdTypeDef;
241
242 typedef mdToken mdMethodDef;
243
244 typedef mdToken mdFieldDef;
245
246 typedef ULONG CorElementType;
247
248
249 typedef /* [public][public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0001
250     {
251     DWORD dwOSPlatformId;
252     DWORD dwOSMajorVersion;
253     DWORD dwOSMinorVersion;
254     }   OSINFO;
255
256 typedef /* [public][public][public] */ struct __MIDL___MIDL_itf_corprof_0000_0000_0002
257     {
258     USHORT usMajorVersion;
259     USHORT usMinorVersion;
260     USHORT usBuildNumber;
261     USHORT usRevisionNumber;
262     LPWSTR szLocale;
263     ULONG cbLocale;
264     DWORD *rProcessor;
265     ULONG ulProcessor;
266     OSINFO *rOS;
267     ULONG ulOS;
268     }   ASSEMBLYMETADATA;
269
270 #endif
271 typedef const BYTE *LPCBYTE;
272
273 typedef BYTE *LPBYTE;
274
275 typedef BYTE COR_SIGNATURE;
276
277 typedef COR_SIGNATURE *PCOR_SIGNATURE;
278
279 typedef const COR_SIGNATURE *PCCOR_SIGNATURE;
280
281 #ifndef _COR_IL_MAP
282 #define _COR_IL_MAP
283 typedef struct _COR_IL_MAP
284     {
285     ULONG32 oldOffset;
286     ULONG32 newOffset;
287     BOOL fAccurate;
288     }   COR_IL_MAP;
289
290 #endif //_COR_IL_MAP
291 #ifndef _COR_DEBUG_IL_TO_NATIVE_MAP_
292 #define _COR_DEBUG_IL_TO_NATIVE_MAP_
293 typedef 
294 enum CorDebugIlToNativeMappingTypes
295     {
296         NO_MAPPING      = -1,
297         PROLOG  = -2,
298         EPILOG  = -3
299     }   CorDebugIlToNativeMappingTypes;
300
301 typedef struct COR_DEBUG_IL_TO_NATIVE_MAP
302     {
303     ULONG32 ilOffset;
304     ULONG32 nativeStartOffset;
305     ULONG32 nativeEndOffset;
306     }   COR_DEBUG_IL_TO_NATIVE_MAP;
307
308 #endif // _COR_DEBUG_IL_TO_NATIVE_MAP_
309 #ifndef _COR_FIELD_OFFSET_
310 #define _COR_FIELD_OFFSET_
311 typedef struct _COR_FIELD_OFFSET
312     {
313     mdFieldDef ridOfField;
314     ULONG ulOffset;
315     }   COR_FIELD_OFFSET;
316
317 #endif // _COR_FIELD_OFFSET_
318 typedef UINT_PTR ProcessID;
319
320 typedef UINT_PTR AssemblyID;
321
322 typedef UINT_PTR AppDomainID;
323
324 typedef UINT_PTR ModuleID;
325
326 typedef UINT_PTR ClassID;
327
328 typedef UINT_PTR ThreadID;
329
330 typedef UINT_PTR ContextID;
331
332 typedef UINT_PTR FunctionID;
333
334 typedef UINT_PTR ObjectID;
335
336 typedef UINT_PTR GCHandleID;
337
338 typedef UINT_PTR COR_PRF_ELT_INFO;
339
340 typedef UINT_PTR ReJITID;
341
342 typedef /* [public][public][public][public][public][public][public][public][public][public][public][public][public] */ union __MIDL___MIDL_itf_corprof_0000_0000_0003
343     {
344     FunctionID functionID;
345     UINT_PTR clientID;
346     }   FunctionIDOrClientID;
347
348 typedef UINT_PTR __stdcall __stdcall FunctionIDMapper( 
349     FunctionID funcId,
350     BOOL *pbHookFunction);
351
352 typedef UINT_PTR __stdcall __stdcall FunctionIDMapper2( 
353     FunctionID funcId,
354     void *clientData,
355     BOOL *pbHookFunction);
356
357 typedef 
358 enum _COR_PRF_SNAPSHOT_INFO
359     {
360         COR_PRF_SNAPSHOT_DEFAULT        = 0,
361         COR_PRF_SNAPSHOT_REGISTER_CONTEXT       = 0x1,
362         COR_PRF_SNAPSHOT_X86_OPTIMIZED  = 0x2
363     }   COR_PRF_SNAPSHOT_INFO;
364
365 typedef UINT_PTR COR_PRF_FRAME_INFO;
366
367 typedef struct _COR_PRF_FUNCTION_ARGUMENT_RANGE
368     {
369     UINT_PTR startAddress;
370     ULONG length;
371     }   COR_PRF_FUNCTION_ARGUMENT_RANGE;
372
373 typedef struct _COR_PRF_FUNCTION_ARGUMENT_INFO
374     {
375     ULONG numRanges;
376     ULONG totalArgumentSize;
377     COR_PRF_FUNCTION_ARGUMENT_RANGE ranges[ 1 ];
378     }   COR_PRF_FUNCTION_ARGUMENT_INFO;
379
380 typedef struct _COR_PRF_CODE_INFO
381     {
382     UINT_PTR startAddress;
383     SIZE_T size;
384     }   COR_PRF_CODE_INFO;
385
386 typedef /* [public][public] */ 
387 enum __MIDL___MIDL_itf_corprof_0000_0000_0004
388     {
389         COR_PRF_FIELD_NOT_A_STATIC      = 0,
390         COR_PRF_FIELD_APP_DOMAIN_STATIC = 0x1,
391         COR_PRF_FIELD_THREAD_STATIC     = 0x2,
392         COR_PRF_FIELD_CONTEXT_STATIC    = 0x4,
393         COR_PRF_FIELD_RVA_STATIC        = 0x8
394     }   COR_PRF_STATIC_TYPE;
395
396 typedef struct _COR_PRF_FUNCTION
397     {
398     FunctionID functionId;
399     ReJITID reJitId;
400     }   COR_PRF_FUNCTION;
401
402 typedef struct _COR_PRF_ASSEMBLY_REFERENCE_INFO
403     {
404     void *pbPublicKeyOrToken;
405     ULONG cbPublicKeyOrToken;
406     LPCWSTR szName;
407     ASSEMBLYMETADATA *pMetaData;
408     void *pbHashValue;
409     ULONG cbHashValue;
410     DWORD dwAssemblyRefFlags;
411     }   COR_PRF_ASSEMBLY_REFERENCE_INFO;
412
413 typedef struct _COR_PRF_METHOD
414     {
415     ModuleID moduleId;
416     mdMethodDef methodId;
417     }   COR_PRF_METHOD;
418
419 typedef void __stdcall __stdcall FunctionEnter( 
420     FunctionID funcID);
421
422 typedef void __stdcall __stdcall FunctionLeave( 
423     FunctionID funcID);
424
425 typedef void __stdcall __stdcall FunctionTailcall( 
426     FunctionID funcID);
427
428 typedef void __stdcall __stdcall FunctionEnter2( 
429     FunctionID funcId,
430     UINT_PTR clientData,
431     COR_PRF_FRAME_INFO func,
432     COR_PRF_FUNCTION_ARGUMENT_INFO *argumentInfo);
433
434 typedef void __stdcall __stdcall FunctionLeave2( 
435     FunctionID funcId,
436     UINT_PTR clientData,
437     COR_PRF_FRAME_INFO func,
438     COR_PRF_FUNCTION_ARGUMENT_RANGE *retvalRange);
439
440 typedef void __stdcall __stdcall FunctionTailcall2( 
441     FunctionID funcId,
442     UINT_PTR clientData,
443     COR_PRF_FRAME_INFO func);
444
445 typedef void __stdcall __stdcall FunctionEnter3(
446     FunctionIDOrClientID functionIDOrClientID);
447
448 typedef void __stdcall __stdcall FunctionLeave3(
449     FunctionIDOrClientID functionIDOrClientID);
450
451 typedef void __stdcall __stdcall FunctionTailcall3(
452     FunctionIDOrClientID functionIDOrClientID);
453
454 typedef void __stdcall __stdcall FunctionEnter3WithInfo( 
455     FunctionIDOrClientID functionIDOrClientID,
456     COR_PRF_ELT_INFO eltInfo);
457
458 typedef void __stdcall __stdcall FunctionLeave3WithInfo( 
459     FunctionIDOrClientID functionIDOrClientID,
460     COR_PRF_ELT_INFO eltInfo);
461
462 typedef void __stdcall __stdcall FunctionTailcall3WithInfo( 
463     FunctionIDOrClientID functionIDOrClientID,
464     COR_PRF_ELT_INFO eltInfo);
465
466 typedef HRESULT __stdcall __stdcall StackSnapshotCallback( 
467     FunctionID funcId,
468     UINT_PTR ip,
469     COR_PRF_FRAME_INFO frameInfo,
470     ULONG32 contextSize,
471     BYTE context[  ],
472     void *clientData);
473
474 typedef /* [public] */ 
475 enum __MIDL___MIDL_itf_corprof_0000_0000_0005
476     {
477         COR_PRF_MONITOR_NONE    = 0,
478         COR_PRF_MONITOR_FUNCTION_UNLOADS        = 0x1,
479         COR_PRF_MONITOR_CLASS_LOADS     = 0x2,
480         COR_PRF_MONITOR_MODULE_LOADS    = 0x4,
481         COR_PRF_MONITOR_ASSEMBLY_LOADS  = 0x8,
482         COR_PRF_MONITOR_APPDOMAIN_LOADS = 0x10,
483         COR_PRF_MONITOR_JIT_COMPILATION = 0x20,
484         COR_PRF_MONITOR_EXCEPTIONS      = 0x40,
485         COR_PRF_MONITOR_GC      = 0x80,
486         COR_PRF_MONITOR_OBJECT_ALLOCATED        = 0x100,
487         COR_PRF_MONITOR_THREADS = 0x200,
488         COR_PRF_MONITOR_REMOTING        = 0x400,
489         COR_PRF_MONITOR_CODE_TRANSITIONS        = 0x800,
490         COR_PRF_MONITOR_ENTERLEAVE      = 0x1000,
491         COR_PRF_MONITOR_CCW     = 0x2000,
492         COR_PRF_MONITOR_REMOTING_COOKIE = ( 0x4000 | COR_PRF_MONITOR_REMOTING ) ,
493         COR_PRF_MONITOR_REMOTING_ASYNC  = ( 0x8000 | COR_PRF_MONITOR_REMOTING ) ,
494         COR_PRF_MONITOR_SUSPENDS        = 0x10000,
495         COR_PRF_MONITOR_CACHE_SEARCHES  = 0x20000,
496         COR_PRF_ENABLE_REJIT    = 0x40000,
497         COR_PRF_ENABLE_INPROC_DEBUGGING = 0x80000,
498         COR_PRF_ENABLE_JIT_MAPS = 0x100000,
499         COR_PRF_DISABLE_INLINING        = 0x200000,
500         COR_PRF_DISABLE_OPTIMIZATIONS   = 0x400000,
501         COR_PRF_ENABLE_OBJECT_ALLOCATED = 0x800000,
502         COR_PRF_MONITOR_CLR_EXCEPTIONS  = 0x1000000,
503         COR_PRF_MONITOR_ALL     = 0x107ffff,
504         COR_PRF_ENABLE_FUNCTION_ARGS    = 0x2000000,
505         COR_PRF_ENABLE_FUNCTION_RETVAL  = 0x4000000,
506         COR_PRF_ENABLE_FRAME_INFO       = 0x8000000,
507         COR_PRF_ENABLE_STACK_SNAPSHOT   = 0x10000000,
508         COR_PRF_USE_PROFILE_IMAGES      = 0x20000000,
509         COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST    = 0x40000000,
510         COR_PRF_DISABLE_ALL_NGEN_IMAGES = 0x80000000,
511         COR_PRF_ALL     = 0x8fffffff,
512         COR_PRF_REQUIRE_PROFILE_IMAGE   = ( ( COR_PRF_USE_PROFILE_IMAGES | COR_PRF_MONITOR_CODE_TRANSITIONS )  | COR_PRF_MONITOR_ENTERLEAVE ) ,
513         COR_PRF_ALLOWABLE_AFTER_ATTACH  = ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_THREADS | COR_PRF_MONITOR_MODULE_LOADS )  | COR_PRF_MONITOR_ASSEMBLY_LOADS )  | COR_PRF_MONITOR_APPDOMAIN_LOADS )  | COR_PRF_ENABLE_STACK_SNAPSHOT )  | COR_PRF_MONITOR_GC )  | COR_PRF_MONITOR_SUSPENDS )  | COR_PRF_MONITOR_CLASS_LOADS )  | COR_PRF_MONITOR_EXCEPTIONS )  | COR_PRF_MONITOR_JIT_COMPILATION ) ,
514         COR_PRF_MONITOR_IMMUTABLE       = ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( COR_PRF_MONITOR_CODE_TRANSITIONS | COR_PRF_MONITOR_REMOTING )  | COR_PRF_MONITOR_REMOTING_COOKIE )  | COR_PRF_MONITOR_REMOTING_ASYNC )  | COR_PRF_ENABLE_REJIT )  | COR_PRF_ENABLE_INPROC_DEBUGGING )  | COR_PRF_ENABLE_JIT_MAPS )  | COR_PRF_DISABLE_OPTIMIZATIONS )  | COR_PRF_DISABLE_INLINING )  | COR_PRF_ENABLE_OBJECT_ALLOCATED )  | COR_PRF_ENABLE_FUNCTION_ARGS )  | COR_PRF_ENABLE_FUNCTION_RETVAL )  | COR_PRF_ENABLE_FRAME_INFO )  | COR_PRF_USE_PROFILE_IMAGES )  | COR_PRF_DISABLE_TRANSPARENCY_CHECKS_UNDER_FULL_TRUST )  | COR_PRF_DISABLE_ALL_NGEN_IMAGES ) 
515     }   COR_PRF_MONITOR;
516
517 typedef /* [public] */ 
518 enum __MIDL___MIDL_itf_corprof_0000_0000_0006
519     {
520         COR_PRF_HIGH_MONITOR_NONE       = 0,
521         COR_PRF_HIGH_ADD_ASSEMBLY_REFERENCES    = 0x1,
522         COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED  = 0x2,
523         COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS   = 0x4,
524         COR_PRF_HIGH_DISABLE_TIERED_COMPILATION = 0x8,
525         COR_PRF_HIGH_REQUIRE_PROFILE_IMAGE      = 0,
526         COR_PRF_HIGH_ALLOWABLE_AFTER_ATTACH     = ( COR_PRF_HIGH_IN_MEMORY_SYMBOLS_UPDATED | COR_PRF_HIGH_MONITOR_DYNAMIC_FUNCTION_UNLOADS ) ,
527         COR_PRF_HIGH_MONITOR_IMMUTABLE  = ( COR_PRF_HIGH_DISABLE_TIERED_COMPILATION )    
528     }   COR_PRF_HIGH_MONITOR;
529
530 typedef /* [public] */ 
531 enum __MIDL___MIDL_itf_corprof_0000_0000_0007
532     {
533         PROFILER_PARENT_UNKNOWN = 0xfffffffd,
534         PROFILER_GLOBAL_CLASS   = 0xfffffffe,
535         PROFILER_GLOBAL_MODULE  = 0xffffffff
536     }   COR_PRF_MISC;
537
538 typedef /* [public][public] */ 
539 enum __MIDL___MIDL_itf_corprof_0000_0000_0008
540     {
541         COR_PRF_CACHED_FUNCTION_FOUND   = 0,
542         COR_PRF_CACHED_FUNCTION_NOT_FOUND       = ( COR_PRF_CACHED_FUNCTION_FOUND + 1 ) 
543     }   COR_PRF_JIT_CACHE;
544
545 typedef /* [public][public][public] */ 
546 enum __MIDL___MIDL_itf_corprof_0000_0000_0009
547     {
548         COR_PRF_TRANSITION_CALL = 0,
549         COR_PRF_TRANSITION_RETURN       = ( COR_PRF_TRANSITION_CALL + 1 ) 
550     }   COR_PRF_TRANSITION_REASON;
551
552 typedef /* [public][public] */ 
553 enum __MIDL___MIDL_itf_corprof_0000_0000_0010
554     {
555         COR_PRF_SUSPEND_OTHER   = 0,
556         COR_PRF_SUSPEND_FOR_GC  = 1,
557         COR_PRF_SUSPEND_FOR_APPDOMAIN_SHUTDOWN  = 2,
558         COR_PRF_SUSPEND_FOR_CODE_PITCHING       = 3,
559         COR_PRF_SUSPEND_FOR_SHUTDOWN    = 4,
560         COR_PRF_SUSPEND_FOR_INPROC_DEBUGGER     = 6,
561         COR_PRF_SUSPEND_FOR_GC_PREP     = 7,
562         COR_PRF_SUSPEND_FOR_REJIT       = 8
563     }   COR_PRF_SUSPEND_REASON;
564
565 typedef /* [public][public] */ 
566 enum __MIDL___MIDL_itf_corprof_0000_0000_0011
567     {
568         COR_PRF_DESKTOP_CLR     = 0x1,
569         COR_PRF_CORE_CLR        = 0x2
570     }   COR_PRF_RUNTIME_TYPE;
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_c_ifspec;
591 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0000_v0_0_s_ifspec;
592
593 #ifndef __ICorProfilerCallback_INTERFACE_DEFINED__
594 #define __ICorProfilerCallback_INTERFACE_DEFINED__
595
596 /* interface ICorProfilerCallback */
597 /* [local][unique][uuid][object] */ 
598
599
600 EXTERN_C const IID IID_ICorProfilerCallback;
601
602 #if defined(__cplusplus) && !defined(CINTERFACE)
603     
604     MIDL_INTERFACE("176FBED1-A55C-4796-98CA-A9DA0EF883E7")
605     ICorProfilerCallback : public IUnknown
606     {
607     public:
608         virtual HRESULT STDMETHODCALLTYPE Initialize( 
609             /* [in] */ IUnknown *pICorProfilerInfoUnk) = 0;
610         
611         virtual HRESULT STDMETHODCALLTYPE Shutdown( void) = 0;
612         
613         virtual HRESULT STDMETHODCALLTYPE AppDomainCreationStarted( 
614             /* [in] */ AppDomainID appDomainId) = 0;
615         
616         virtual HRESULT STDMETHODCALLTYPE AppDomainCreationFinished( 
617             /* [in] */ AppDomainID appDomainId,
618             /* [in] */ HRESULT hrStatus) = 0;
619         
620         virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownStarted( 
621             /* [in] */ AppDomainID appDomainId) = 0;
622         
623         virtual HRESULT STDMETHODCALLTYPE AppDomainShutdownFinished( 
624             /* [in] */ AppDomainID appDomainId,
625             /* [in] */ HRESULT hrStatus) = 0;
626         
627         virtual HRESULT STDMETHODCALLTYPE AssemblyLoadStarted( 
628             /* [in] */ AssemblyID assemblyId) = 0;
629         
630         virtual HRESULT STDMETHODCALLTYPE AssemblyLoadFinished( 
631             /* [in] */ AssemblyID assemblyId,
632             /* [in] */ HRESULT hrStatus) = 0;
633         
634         virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadStarted( 
635             /* [in] */ AssemblyID assemblyId) = 0;
636         
637         virtual HRESULT STDMETHODCALLTYPE AssemblyUnloadFinished( 
638             /* [in] */ AssemblyID assemblyId,
639             /* [in] */ HRESULT hrStatus) = 0;
640         
641         virtual HRESULT STDMETHODCALLTYPE ModuleLoadStarted( 
642             /* [in] */ ModuleID moduleId) = 0;
643         
644         virtual HRESULT STDMETHODCALLTYPE ModuleLoadFinished( 
645             /* [in] */ ModuleID moduleId,
646             /* [in] */ HRESULT hrStatus) = 0;
647         
648         virtual HRESULT STDMETHODCALLTYPE ModuleUnloadStarted( 
649             /* [in] */ ModuleID moduleId) = 0;
650         
651         virtual HRESULT STDMETHODCALLTYPE ModuleUnloadFinished( 
652             /* [in] */ ModuleID moduleId,
653             /* [in] */ HRESULT hrStatus) = 0;
654         
655         virtual HRESULT STDMETHODCALLTYPE ModuleAttachedToAssembly( 
656             /* [in] */ ModuleID moduleId,
657             /* [in] */ AssemblyID AssemblyId) = 0;
658         
659         virtual HRESULT STDMETHODCALLTYPE ClassLoadStarted( 
660             /* [in] */ ClassID classId) = 0;
661         
662         virtual HRESULT STDMETHODCALLTYPE ClassLoadFinished( 
663             /* [in] */ ClassID classId,
664             /* [in] */ HRESULT hrStatus) = 0;
665         
666         virtual HRESULT STDMETHODCALLTYPE ClassUnloadStarted( 
667             /* [in] */ ClassID classId) = 0;
668         
669         virtual HRESULT STDMETHODCALLTYPE ClassUnloadFinished( 
670             /* [in] */ ClassID classId,
671             /* [in] */ HRESULT hrStatus) = 0;
672         
673         virtual HRESULT STDMETHODCALLTYPE FunctionUnloadStarted( 
674             /* [in] */ FunctionID functionId) = 0;
675         
676         virtual HRESULT STDMETHODCALLTYPE JITCompilationStarted( 
677             /* [in] */ FunctionID functionId,
678             /* [in] */ BOOL fIsSafeToBlock) = 0;
679         
680         virtual HRESULT STDMETHODCALLTYPE JITCompilationFinished( 
681             /* [in] */ FunctionID functionId,
682             /* [in] */ HRESULT hrStatus,
683             /* [in] */ BOOL fIsSafeToBlock) = 0;
684         
685         virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchStarted( 
686             /* [in] */ FunctionID functionId,
687             /* [out] */ BOOL *pbUseCachedFunction) = 0;
688         
689         virtual HRESULT STDMETHODCALLTYPE JITCachedFunctionSearchFinished( 
690             /* [in] */ FunctionID functionId,
691             /* [in] */ COR_PRF_JIT_CACHE result) = 0;
692         
693         virtual HRESULT STDMETHODCALLTYPE JITFunctionPitched( 
694             /* [in] */ FunctionID functionId) = 0;
695         
696         virtual HRESULT STDMETHODCALLTYPE JITInlining( 
697             /* [in] */ FunctionID callerId,
698             /* [in] */ FunctionID calleeId,
699             /* [out] */ BOOL *pfShouldInline) = 0;
700         
701         virtual HRESULT STDMETHODCALLTYPE ThreadCreated( 
702             /* [in] */ ThreadID threadId) = 0;
703         
704         virtual HRESULT STDMETHODCALLTYPE ThreadDestroyed( 
705             /* [in] */ ThreadID threadId) = 0;
706         
707         virtual HRESULT STDMETHODCALLTYPE ThreadAssignedToOSThread( 
708             /* [in] */ ThreadID managedThreadId,
709             /* [in] */ DWORD osThreadId) = 0;
710         
711         virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationStarted( void) = 0;
712         
713         virtual HRESULT STDMETHODCALLTYPE RemotingClientSendingMessage( 
714             /* [in] */ GUID *pCookie,
715             /* [in] */ BOOL fIsAsync) = 0;
716         
717         virtual HRESULT STDMETHODCALLTYPE RemotingClientReceivingReply( 
718             /* [in] */ GUID *pCookie,
719             /* [in] */ BOOL fIsAsync) = 0;
720         
721         virtual HRESULT STDMETHODCALLTYPE RemotingClientInvocationFinished( void) = 0;
722         
723         virtual HRESULT STDMETHODCALLTYPE RemotingServerReceivingMessage( 
724             /* [in] */ GUID *pCookie,
725             /* [in] */ BOOL fIsAsync) = 0;
726         
727         virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationStarted( void) = 0;
728         
729         virtual HRESULT STDMETHODCALLTYPE RemotingServerInvocationReturned( void) = 0;
730         
731         virtual HRESULT STDMETHODCALLTYPE RemotingServerSendingReply( 
732             /* [in] */ GUID *pCookie,
733             /* [in] */ BOOL fIsAsync) = 0;
734         
735         virtual HRESULT STDMETHODCALLTYPE UnmanagedToManagedTransition( 
736             /* [in] */ FunctionID functionId,
737             /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
738         
739         virtual HRESULT STDMETHODCALLTYPE ManagedToUnmanagedTransition( 
740             /* [in] */ FunctionID functionId,
741             /* [in] */ COR_PRF_TRANSITION_REASON reason) = 0;
742         
743         virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendStarted( 
744             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason) = 0;
745         
746         virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendFinished( void) = 0;
747         
748         virtual HRESULT STDMETHODCALLTYPE RuntimeSuspendAborted( void) = 0;
749         
750         virtual HRESULT STDMETHODCALLTYPE RuntimeResumeStarted( void) = 0;
751         
752         virtual HRESULT STDMETHODCALLTYPE RuntimeResumeFinished( void) = 0;
753         
754         virtual HRESULT STDMETHODCALLTYPE RuntimeThreadSuspended( 
755             /* [in] */ ThreadID threadId) = 0;
756         
757         virtual HRESULT STDMETHODCALLTYPE RuntimeThreadResumed( 
758             /* [in] */ ThreadID threadId) = 0;
759         
760         virtual HRESULT STDMETHODCALLTYPE MovedReferences( 
761             /* [in] */ ULONG cMovedObjectIDRanges,
762             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
763             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
764             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]) = 0;
765         
766         virtual HRESULT STDMETHODCALLTYPE ObjectAllocated( 
767             /* [in] */ ObjectID objectId,
768             /* [in] */ ClassID classId) = 0;
769         
770         virtual HRESULT STDMETHODCALLTYPE ObjectsAllocatedByClass( 
771             /* [in] */ ULONG cClassCount,
772             /* [size_is][in] */ ClassID classIds[  ],
773             /* [size_is][in] */ ULONG cObjects[  ]) = 0;
774         
775         virtual HRESULT STDMETHODCALLTYPE ObjectReferences( 
776             /* [in] */ ObjectID objectId,
777             /* [in] */ ClassID classId,
778             /* [in] */ ULONG cObjectRefs,
779             /* [size_is][in] */ ObjectID objectRefIds[  ]) = 0;
780         
781         virtual HRESULT STDMETHODCALLTYPE RootReferences( 
782             /* [in] */ ULONG cRootRefs,
783             /* [size_is][in] */ ObjectID rootRefIds[  ]) = 0;
784         
785         virtual HRESULT STDMETHODCALLTYPE ExceptionThrown( 
786             /* [in] */ ObjectID thrownObjectId) = 0;
787         
788         virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionEnter( 
789             /* [in] */ FunctionID functionId) = 0;
790         
791         virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFunctionLeave( void) = 0;
792         
793         virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterEnter( 
794             /* [in] */ FunctionID functionId) = 0;
795         
796         virtual HRESULT STDMETHODCALLTYPE ExceptionSearchFilterLeave( void) = 0;
797         
798         virtual HRESULT STDMETHODCALLTYPE ExceptionSearchCatcherFound( 
799             /* [in] */ FunctionID functionId) = 0;
800         
801         virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerEnter( 
802             /* [in] */ UINT_PTR __unused) = 0;
803         
804         virtual HRESULT STDMETHODCALLTYPE ExceptionOSHandlerLeave( 
805             /* [in] */ UINT_PTR __unused) = 0;
806         
807         virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionEnter( 
808             /* [in] */ FunctionID functionId) = 0;
809         
810         virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFunctionLeave( void) = 0;
811         
812         virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyEnter( 
813             /* [in] */ FunctionID functionId) = 0;
814         
815         virtual HRESULT STDMETHODCALLTYPE ExceptionUnwindFinallyLeave( void) = 0;
816         
817         virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherEnter( 
818             /* [in] */ FunctionID functionId,
819             /* [in] */ ObjectID objectId) = 0;
820         
821         virtual HRESULT STDMETHODCALLTYPE ExceptionCatcherLeave( void) = 0;
822         
823         virtual HRESULT STDMETHODCALLTYPE COMClassicVTableCreated( 
824             /* [in] */ ClassID wrappedClassId,
825             /* [in] */ REFGUID implementedIID,
826             /* [in] */ void *pVTable,
827             /* [in] */ ULONG cSlots) = 0;
828         
829         virtual HRESULT STDMETHODCALLTYPE COMClassicVTableDestroyed( 
830             /* [in] */ ClassID wrappedClassId,
831             /* [in] */ REFGUID implementedIID,
832             /* [in] */ void *pVTable) = 0;
833         
834         virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherFound( void) = 0;
835         
836         virtual HRESULT STDMETHODCALLTYPE ExceptionCLRCatcherExecute( void) = 0;
837         
838     };
839     
840     
841 #else   /* C style interface */
842
843     typedef struct ICorProfilerCallbackVtbl
844     {
845         BEGIN_INTERFACE
846         
847         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
848             ICorProfilerCallback * This,
849             /* [in] */ REFIID riid,
850             /* [annotation][iid_is][out] */ 
851             _COM_Outptr_  void **ppvObject);
852         
853         ULONG ( STDMETHODCALLTYPE *AddRef )( 
854             ICorProfilerCallback * This);
855         
856         ULONG ( STDMETHODCALLTYPE *Release )( 
857             ICorProfilerCallback * This);
858         
859         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
860             ICorProfilerCallback * This,
861             /* [in] */ IUnknown *pICorProfilerInfoUnk);
862         
863         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
864             ICorProfilerCallback * This);
865         
866         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
867             ICorProfilerCallback * This,
868             /* [in] */ AppDomainID appDomainId);
869         
870         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
871             ICorProfilerCallback * This,
872             /* [in] */ AppDomainID appDomainId,
873             /* [in] */ HRESULT hrStatus);
874         
875         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
876             ICorProfilerCallback * This,
877             /* [in] */ AppDomainID appDomainId);
878         
879         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
880             ICorProfilerCallback * This,
881             /* [in] */ AppDomainID appDomainId,
882             /* [in] */ HRESULT hrStatus);
883         
884         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
885             ICorProfilerCallback * This,
886             /* [in] */ AssemblyID assemblyId);
887         
888         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
889             ICorProfilerCallback * This,
890             /* [in] */ AssemblyID assemblyId,
891             /* [in] */ HRESULT hrStatus);
892         
893         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
894             ICorProfilerCallback * This,
895             /* [in] */ AssemblyID assemblyId);
896         
897         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
898             ICorProfilerCallback * This,
899             /* [in] */ AssemblyID assemblyId,
900             /* [in] */ HRESULT hrStatus);
901         
902         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
903             ICorProfilerCallback * This,
904             /* [in] */ ModuleID moduleId);
905         
906         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
907             ICorProfilerCallback * This,
908             /* [in] */ ModuleID moduleId,
909             /* [in] */ HRESULT hrStatus);
910         
911         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
912             ICorProfilerCallback * This,
913             /* [in] */ ModuleID moduleId);
914         
915         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
916             ICorProfilerCallback * This,
917             /* [in] */ ModuleID moduleId,
918             /* [in] */ HRESULT hrStatus);
919         
920         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
921             ICorProfilerCallback * This,
922             /* [in] */ ModuleID moduleId,
923             /* [in] */ AssemblyID AssemblyId);
924         
925         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
926             ICorProfilerCallback * This,
927             /* [in] */ ClassID classId);
928         
929         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
930             ICorProfilerCallback * This,
931             /* [in] */ ClassID classId,
932             /* [in] */ HRESULT hrStatus);
933         
934         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
935             ICorProfilerCallback * This,
936             /* [in] */ ClassID classId);
937         
938         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
939             ICorProfilerCallback * This,
940             /* [in] */ ClassID classId,
941             /* [in] */ HRESULT hrStatus);
942         
943         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
944             ICorProfilerCallback * This,
945             /* [in] */ FunctionID functionId);
946         
947         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
948             ICorProfilerCallback * This,
949             /* [in] */ FunctionID functionId,
950             /* [in] */ BOOL fIsSafeToBlock);
951         
952         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
953             ICorProfilerCallback * This,
954             /* [in] */ FunctionID functionId,
955             /* [in] */ HRESULT hrStatus,
956             /* [in] */ BOOL fIsSafeToBlock);
957         
958         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
959             ICorProfilerCallback * This,
960             /* [in] */ FunctionID functionId,
961             /* [out] */ BOOL *pbUseCachedFunction);
962         
963         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
964             ICorProfilerCallback * This,
965             /* [in] */ FunctionID functionId,
966             /* [in] */ COR_PRF_JIT_CACHE result);
967         
968         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
969             ICorProfilerCallback * This,
970             /* [in] */ FunctionID functionId);
971         
972         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
973             ICorProfilerCallback * This,
974             /* [in] */ FunctionID callerId,
975             /* [in] */ FunctionID calleeId,
976             /* [out] */ BOOL *pfShouldInline);
977         
978         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
979             ICorProfilerCallback * This,
980             /* [in] */ ThreadID threadId);
981         
982         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
983             ICorProfilerCallback * This,
984             /* [in] */ ThreadID threadId);
985         
986         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
987             ICorProfilerCallback * This,
988             /* [in] */ ThreadID managedThreadId,
989             /* [in] */ DWORD osThreadId);
990         
991         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
992             ICorProfilerCallback * This);
993         
994         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
995             ICorProfilerCallback * This,
996             /* [in] */ GUID *pCookie,
997             /* [in] */ BOOL fIsAsync);
998         
999         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
1000             ICorProfilerCallback * This,
1001             /* [in] */ GUID *pCookie,
1002             /* [in] */ BOOL fIsAsync);
1003         
1004         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
1005             ICorProfilerCallback * This);
1006         
1007         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
1008             ICorProfilerCallback * This,
1009             /* [in] */ GUID *pCookie,
1010             /* [in] */ BOOL fIsAsync);
1011         
1012         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
1013             ICorProfilerCallback * This);
1014         
1015         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
1016             ICorProfilerCallback * This);
1017         
1018         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
1019             ICorProfilerCallback * This,
1020             /* [in] */ GUID *pCookie,
1021             /* [in] */ BOOL fIsAsync);
1022         
1023         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
1024             ICorProfilerCallback * This,
1025             /* [in] */ FunctionID functionId,
1026             /* [in] */ COR_PRF_TRANSITION_REASON reason);
1027         
1028         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
1029             ICorProfilerCallback * This,
1030             /* [in] */ FunctionID functionId,
1031             /* [in] */ COR_PRF_TRANSITION_REASON reason);
1032         
1033         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
1034             ICorProfilerCallback * This,
1035             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1036         
1037         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
1038             ICorProfilerCallback * This);
1039         
1040         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
1041             ICorProfilerCallback * This);
1042         
1043         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
1044             ICorProfilerCallback * This);
1045         
1046         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
1047             ICorProfilerCallback * This);
1048         
1049         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
1050             ICorProfilerCallback * This,
1051             /* [in] */ ThreadID threadId);
1052         
1053         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
1054             ICorProfilerCallback * This,
1055             /* [in] */ ThreadID threadId);
1056         
1057         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
1058             ICorProfilerCallback * This,
1059             /* [in] */ ULONG cMovedObjectIDRanges,
1060             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
1061             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
1062             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
1063         
1064         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
1065             ICorProfilerCallback * This,
1066             /* [in] */ ObjectID objectId,
1067             /* [in] */ ClassID classId);
1068         
1069         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
1070             ICorProfilerCallback * This,
1071             /* [in] */ ULONG cClassCount,
1072             /* [size_is][in] */ ClassID classIds[  ],
1073             /* [size_is][in] */ ULONG cObjects[  ]);
1074         
1075         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
1076             ICorProfilerCallback * This,
1077             /* [in] */ ObjectID objectId,
1078             /* [in] */ ClassID classId,
1079             /* [in] */ ULONG cObjectRefs,
1080             /* [size_is][in] */ ObjectID objectRefIds[  ]);
1081         
1082         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
1083             ICorProfilerCallback * This,
1084             /* [in] */ ULONG cRootRefs,
1085             /* [size_is][in] */ ObjectID rootRefIds[  ]);
1086         
1087         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
1088             ICorProfilerCallback * This,
1089             /* [in] */ ObjectID thrownObjectId);
1090         
1091         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
1092             ICorProfilerCallback * This,
1093             /* [in] */ FunctionID functionId);
1094         
1095         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
1096             ICorProfilerCallback * This);
1097         
1098         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
1099             ICorProfilerCallback * This,
1100             /* [in] */ FunctionID functionId);
1101         
1102         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
1103             ICorProfilerCallback * This);
1104         
1105         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
1106             ICorProfilerCallback * This,
1107             /* [in] */ FunctionID functionId);
1108         
1109         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
1110             ICorProfilerCallback * This,
1111             /* [in] */ UINT_PTR __unused);
1112         
1113         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
1114             ICorProfilerCallback * This,
1115             /* [in] */ UINT_PTR __unused);
1116         
1117         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
1118             ICorProfilerCallback * This,
1119             /* [in] */ FunctionID functionId);
1120         
1121         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
1122             ICorProfilerCallback * This);
1123         
1124         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
1125             ICorProfilerCallback * This,
1126             /* [in] */ FunctionID functionId);
1127         
1128         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
1129             ICorProfilerCallback * This);
1130         
1131         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
1132             ICorProfilerCallback * This,
1133             /* [in] */ FunctionID functionId,
1134             /* [in] */ ObjectID objectId);
1135         
1136         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
1137             ICorProfilerCallback * This);
1138         
1139         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
1140             ICorProfilerCallback * This,
1141             /* [in] */ ClassID wrappedClassId,
1142             /* [in] */ REFGUID implementedIID,
1143             /* [in] */ void *pVTable,
1144             /* [in] */ ULONG cSlots);
1145         
1146         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
1147             ICorProfilerCallback * This,
1148             /* [in] */ ClassID wrappedClassId,
1149             /* [in] */ REFGUID implementedIID,
1150             /* [in] */ void *pVTable);
1151         
1152         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
1153             ICorProfilerCallback * This);
1154         
1155         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
1156             ICorProfilerCallback * This);
1157         
1158         END_INTERFACE
1159     } ICorProfilerCallbackVtbl;
1160
1161     interface ICorProfilerCallback
1162     {
1163         CONST_VTBL struct ICorProfilerCallbackVtbl *lpVtbl;
1164     };
1165
1166     
1167
1168 #ifdef COBJMACROS
1169
1170
1171 #define ICorProfilerCallback_QueryInterface(This,riid,ppvObject)        \
1172     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1173
1174 #define ICorProfilerCallback_AddRef(This)       \
1175     ( (This)->lpVtbl -> AddRef(This) ) 
1176
1177 #define ICorProfilerCallback_Release(This)      \
1178     ( (This)->lpVtbl -> Release(This) ) 
1179
1180
1181 #define ICorProfilerCallback_Initialize(This,pICorProfilerInfoUnk)      \
1182     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
1183
1184 #define ICorProfilerCallback_Shutdown(This)     \
1185     ( (This)->lpVtbl -> Shutdown(This) ) 
1186
1187 #define ICorProfilerCallback_AppDomainCreationStarted(This,appDomainId) \
1188     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
1189
1190 #define ICorProfilerCallback_AppDomainCreationFinished(This,appDomainId,hrStatus)       \
1191     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
1192
1193 #define ICorProfilerCallback_AppDomainShutdownStarted(This,appDomainId) \
1194     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
1195
1196 #define ICorProfilerCallback_AppDomainShutdownFinished(This,appDomainId,hrStatus)       \
1197     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
1198
1199 #define ICorProfilerCallback_AssemblyLoadStarted(This,assemblyId)       \
1200     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
1201
1202 #define ICorProfilerCallback_AssemblyLoadFinished(This,assemblyId,hrStatus)     \
1203     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
1204
1205 #define ICorProfilerCallback_AssemblyUnloadStarted(This,assemblyId)     \
1206     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
1207
1208 #define ICorProfilerCallback_AssemblyUnloadFinished(This,assemblyId,hrStatus)   \
1209     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
1210
1211 #define ICorProfilerCallback_ModuleLoadStarted(This,moduleId)   \
1212     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
1213
1214 #define ICorProfilerCallback_ModuleLoadFinished(This,moduleId,hrStatus) \
1215     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
1216
1217 #define ICorProfilerCallback_ModuleUnloadStarted(This,moduleId) \
1218     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
1219
1220 #define ICorProfilerCallback_ModuleUnloadFinished(This,moduleId,hrStatus)       \
1221     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
1222
1223 #define ICorProfilerCallback_ModuleAttachedToAssembly(This,moduleId,AssemblyId) \
1224     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
1225
1226 #define ICorProfilerCallback_ClassLoadStarted(This,classId)     \
1227     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
1228
1229 #define ICorProfilerCallback_ClassLoadFinished(This,classId,hrStatus)   \
1230     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
1231
1232 #define ICorProfilerCallback_ClassUnloadStarted(This,classId)   \
1233     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
1234
1235 #define ICorProfilerCallback_ClassUnloadFinished(This,classId,hrStatus) \
1236     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
1237
1238 #define ICorProfilerCallback_FunctionUnloadStarted(This,functionId)     \
1239     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
1240
1241 #define ICorProfilerCallback_JITCompilationStarted(This,functionId,fIsSafeToBlock)      \
1242     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
1243
1244 #define ICorProfilerCallback_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)    \
1245     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
1246
1247 #define ICorProfilerCallback_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)        \
1248     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
1249
1250 #define ICorProfilerCallback_JITCachedFunctionSearchFinished(This,functionId,result)    \
1251     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
1252
1253 #define ICorProfilerCallback_JITFunctionPitched(This,functionId)        \
1254     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
1255
1256 #define ICorProfilerCallback_JITInlining(This,callerId,calleeId,pfShouldInline) \
1257     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
1258
1259 #define ICorProfilerCallback_ThreadCreated(This,threadId)       \
1260     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
1261
1262 #define ICorProfilerCallback_ThreadDestroyed(This,threadId)     \
1263     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
1264
1265 #define ICorProfilerCallback_ThreadAssignedToOSThread(This,managedThreadId,osThreadId)  \
1266     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
1267
1268 #define ICorProfilerCallback_RemotingClientInvocationStarted(This)      \
1269     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
1270
1271 #define ICorProfilerCallback_RemotingClientSendingMessage(This,pCookie,fIsAsync)        \
1272     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
1273
1274 #define ICorProfilerCallback_RemotingClientReceivingReply(This,pCookie,fIsAsync)        \
1275     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
1276
1277 #define ICorProfilerCallback_RemotingClientInvocationFinished(This)     \
1278     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
1279
1280 #define ICorProfilerCallback_RemotingServerReceivingMessage(This,pCookie,fIsAsync)      \
1281     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
1282
1283 #define ICorProfilerCallback_RemotingServerInvocationStarted(This)      \
1284     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
1285
1286 #define ICorProfilerCallback_RemotingServerInvocationReturned(This)     \
1287     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
1288
1289 #define ICorProfilerCallback_RemotingServerSendingReply(This,pCookie,fIsAsync)  \
1290     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
1291
1292 #define ICorProfilerCallback_UnmanagedToManagedTransition(This,functionId,reason)       \
1293     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
1294
1295 #define ICorProfilerCallback_ManagedToUnmanagedTransition(This,functionId,reason)       \
1296     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
1297
1298 #define ICorProfilerCallback_RuntimeSuspendStarted(This,suspendReason)  \
1299     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
1300
1301 #define ICorProfilerCallback_RuntimeSuspendFinished(This)       \
1302     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
1303
1304 #define ICorProfilerCallback_RuntimeSuspendAborted(This)        \
1305     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
1306
1307 #define ICorProfilerCallback_RuntimeResumeStarted(This) \
1308     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
1309
1310 #define ICorProfilerCallback_RuntimeResumeFinished(This)        \
1311     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
1312
1313 #define ICorProfilerCallback_RuntimeThreadSuspended(This,threadId)      \
1314     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
1315
1316 #define ICorProfilerCallback_RuntimeThreadResumed(This,threadId)        \
1317     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
1318
1319 #define ICorProfilerCallback_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)        \
1320     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
1321
1322 #define ICorProfilerCallback_ObjectAllocated(This,objectId,classId)     \
1323     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
1324
1325 #define ICorProfilerCallback_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)        \
1326     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
1327
1328 #define ICorProfilerCallback_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)   \
1329     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
1330
1331 #define ICorProfilerCallback_RootReferences(This,cRootRefs,rootRefIds)  \
1332     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
1333
1334 #define ICorProfilerCallback_ExceptionThrown(This,thrownObjectId)       \
1335     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
1336
1337 #define ICorProfilerCallback_ExceptionSearchFunctionEnter(This,functionId)      \
1338     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
1339
1340 #define ICorProfilerCallback_ExceptionSearchFunctionLeave(This) \
1341     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
1342
1343 #define ICorProfilerCallback_ExceptionSearchFilterEnter(This,functionId)        \
1344     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
1345
1346 #define ICorProfilerCallback_ExceptionSearchFilterLeave(This)   \
1347     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
1348
1349 #define ICorProfilerCallback_ExceptionSearchCatcherFound(This,functionId)       \
1350     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
1351
1352 #define ICorProfilerCallback_ExceptionOSHandlerEnter(This,__unused)     \
1353     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
1354
1355 #define ICorProfilerCallback_ExceptionOSHandlerLeave(This,__unused)     \
1356     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
1357
1358 #define ICorProfilerCallback_ExceptionUnwindFunctionEnter(This,functionId)      \
1359     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
1360
1361 #define ICorProfilerCallback_ExceptionUnwindFunctionLeave(This) \
1362     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
1363
1364 #define ICorProfilerCallback_ExceptionUnwindFinallyEnter(This,functionId)       \
1365     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
1366
1367 #define ICorProfilerCallback_ExceptionUnwindFinallyLeave(This)  \
1368     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
1369
1370 #define ICorProfilerCallback_ExceptionCatcherEnter(This,functionId,objectId)    \
1371     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
1372
1373 #define ICorProfilerCallback_ExceptionCatcherLeave(This)        \
1374     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
1375
1376 #define ICorProfilerCallback_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) \
1377     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
1378
1379 #define ICorProfilerCallback_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)      \
1380     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
1381
1382 #define ICorProfilerCallback_ExceptionCLRCatcherFound(This)     \
1383     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
1384
1385 #define ICorProfilerCallback_ExceptionCLRCatcherExecute(This)   \
1386     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
1387
1388 #endif /* COBJMACROS */
1389
1390
1391 #endif  /* C style interface */
1392
1393
1394
1395
1396 #endif  /* __ICorProfilerCallback_INTERFACE_DEFINED__ */
1397
1398
1399 /* interface __MIDL_itf_corprof_0000_0001 */
1400 /* [local] */ 
1401
1402 typedef /* [public][public] */ 
1403 enum __MIDL___MIDL_itf_corprof_0000_0001_0001
1404     {
1405         COR_PRF_GC_ROOT_STACK   = 1,
1406         COR_PRF_GC_ROOT_FINALIZER       = 2,
1407         COR_PRF_GC_ROOT_HANDLE  = 3,
1408         COR_PRF_GC_ROOT_OTHER   = 0
1409     }   COR_PRF_GC_ROOT_KIND;
1410
1411 typedef /* [public][public] */ 
1412 enum __MIDL___MIDL_itf_corprof_0000_0001_0002
1413     {
1414         COR_PRF_GC_ROOT_PINNING = 0x1,
1415         COR_PRF_GC_ROOT_WEAKREF = 0x2,
1416         COR_PRF_GC_ROOT_INTERIOR        = 0x4,
1417         COR_PRF_GC_ROOT_REFCOUNTED      = 0x8
1418     }   COR_PRF_GC_ROOT_FLAGS;
1419
1420 typedef /* [public] */ 
1421 enum __MIDL___MIDL_itf_corprof_0000_0001_0003
1422     {
1423         COR_PRF_FINALIZER_CRITICAL      = 0x1
1424     }   COR_PRF_FINALIZER_FLAGS;
1425
1426 typedef /* [public][public][public][public] */ 
1427 enum __MIDL___MIDL_itf_corprof_0000_0001_0004
1428     {
1429         COR_PRF_GC_GEN_0        = 0,
1430         COR_PRF_GC_GEN_1        = 1,
1431         COR_PRF_GC_GEN_2        = 2,
1432         COR_PRF_GC_LARGE_OBJECT_HEAP    = 3
1433     }   COR_PRF_GC_GENERATION;
1434
1435 typedef struct COR_PRF_GC_GENERATION_RANGE
1436     {
1437     COR_PRF_GC_GENERATION generation;
1438     ObjectID rangeStart;
1439     UINT_PTR rangeLength;
1440     UINT_PTR rangeLengthReserved;
1441     }   COR_PRF_GC_GENERATION_RANGE;
1442
1443 typedef /* [public][public][public] */ 
1444 enum __MIDL___MIDL_itf_corprof_0000_0001_0005
1445     {
1446         COR_PRF_CLAUSE_NONE     = 0,
1447         COR_PRF_CLAUSE_FILTER   = 1,
1448         COR_PRF_CLAUSE_CATCH    = 2,
1449         COR_PRF_CLAUSE_FINALLY  = 3
1450     }   COR_PRF_CLAUSE_TYPE;
1451
1452 typedef struct COR_PRF_EX_CLAUSE_INFO
1453     {
1454     COR_PRF_CLAUSE_TYPE clauseType;
1455     UINT_PTR programCounter;
1456     UINT_PTR framePointer;
1457     UINT_PTR shadowStackPointer;
1458     }   COR_PRF_EX_CLAUSE_INFO;
1459
1460 typedef /* [public][public] */ 
1461 enum __MIDL___MIDL_itf_corprof_0000_0001_0006
1462     {
1463         COR_PRF_GC_INDUCED      = 1,
1464         COR_PRF_GC_OTHER        = 0
1465     }   COR_PRF_GC_REASON;
1466
1467 typedef /* [public] */ 
1468 enum __MIDL___MIDL_itf_corprof_0000_0001_0007
1469     {
1470         COR_PRF_MODULE_DISK     = 0x1,
1471         COR_PRF_MODULE_NGEN     = 0x2,
1472         COR_PRF_MODULE_DYNAMIC  = 0x4,
1473         COR_PRF_MODULE_COLLECTIBLE      = 0x8,
1474         COR_PRF_MODULE_RESOURCE = 0x10,
1475         COR_PRF_MODULE_FLAT_LAYOUT      = 0x20,
1476         COR_PRF_MODULE_WINDOWS_RUNTIME  = 0x40
1477     }   COR_PRF_MODULE_FLAGS;
1478
1479
1480
1481 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_c_ifspec;
1482 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0001_v0_0_s_ifspec;
1483
1484 #ifndef __ICorProfilerCallback2_INTERFACE_DEFINED__
1485 #define __ICorProfilerCallback2_INTERFACE_DEFINED__
1486
1487 /* interface ICorProfilerCallback2 */
1488 /* [local][unique][uuid][object] */ 
1489
1490
1491 EXTERN_C const IID IID_ICorProfilerCallback2;
1492
1493 #if defined(__cplusplus) && !defined(CINTERFACE)
1494     
1495     MIDL_INTERFACE("8A8CC829-CCF2-49fe-BBAE-0F022228071A")
1496     ICorProfilerCallback2 : public ICorProfilerCallback
1497     {
1498     public:
1499         virtual HRESULT STDMETHODCALLTYPE ThreadNameChanged( 
1500             /* [in] */ ThreadID threadId,
1501             /* [in] */ ULONG cchName,
1502             /* [annotation][in] */ 
1503             _In_reads_opt_(cchName)  WCHAR name[  ]) = 0;
1504         
1505         virtual HRESULT STDMETHODCALLTYPE GarbageCollectionStarted( 
1506             /* [in] */ int cGenerations,
1507             /* [size_is][in] */ BOOL generationCollected[  ],
1508             /* [in] */ COR_PRF_GC_REASON reason) = 0;
1509         
1510         virtual HRESULT STDMETHODCALLTYPE SurvivingReferences( 
1511             /* [in] */ ULONG cSurvivingObjectIDRanges,
1512             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
1513             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]) = 0;
1514         
1515         virtual HRESULT STDMETHODCALLTYPE GarbageCollectionFinished( void) = 0;
1516         
1517         virtual HRESULT STDMETHODCALLTYPE FinalizeableObjectQueued( 
1518             /* [in] */ DWORD finalizerFlags,
1519             /* [in] */ ObjectID objectID) = 0;
1520         
1521         virtual HRESULT STDMETHODCALLTYPE RootReferences2( 
1522             /* [in] */ ULONG cRootRefs,
1523             /* [size_is][in] */ ObjectID rootRefIds[  ],
1524             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
1525             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
1526             /* [size_is][in] */ UINT_PTR rootIds[  ]) = 0;
1527         
1528         virtual HRESULT STDMETHODCALLTYPE HandleCreated( 
1529             /* [in] */ GCHandleID handleId,
1530             /* [in] */ ObjectID initialObjectId) = 0;
1531         
1532         virtual HRESULT STDMETHODCALLTYPE HandleDestroyed( 
1533             /* [in] */ GCHandleID handleId) = 0;
1534         
1535     };
1536     
1537     
1538 #else   /* C style interface */
1539
1540     typedef struct ICorProfilerCallback2Vtbl
1541     {
1542         BEGIN_INTERFACE
1543         
1544         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
1545             ICorProfilerCallback2 * This,
1546             /* [in] */ REFIID riid,
1547             /* [annotation][iid_is][out] */ 
1548             _COM_Outptr_  void **ppvObject);
1549         
1550         ULONG ( STDMETHODCALLTYPE *AddRef )( 
1551             ICorProfilerCallback2 * This);
1552         
1553         ULONG ( STDMETHODCALLTYPE *Release )( 
1554             ICorProfilerCallback2 * This);
1555         
1556         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
1557             ICorProfilerCallback2 * This,
1558             /* [in] */ IUnknown *pICorProfilerInfoUnk);
1559         
1560         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
1561             ICorProfilerCallback2 * This);
1562         
1563         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
1564             ICorProfilerCallback2 * This,
1565             /* [in] */ AppDomainID appDomainId);
1566         
1567         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
1568             ICorProfilerCallback2 * This,
1569             /* [in] */ AppDomainID appDomainId,
1570             /* [in] */ HRESULT hrStatus);
1571         
1572         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
1573             ICorProfilerCallback2 * This,
1574             /* [in] */ AppDomainID appDomainId);
1575         
1576         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
1577             ICorProfilerCallback2 * This,
1578             /* [in] */ AppDomainID appDomainId,
1579             /* [in] */ HRESULT hrStatus);
1580         
1581         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
1582             ICorProfilerCallback2 * This,
1583             /* [in] */ AssemblyID assemblyId);
1584         
1585         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
1586             ICorProfilerCallback2 * This,
1587             /* [in] */ AssemblyID assemblyId,
1588             /* [in] */ HRESULT hrStatus);
1589         
1590         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
1591             ICorProfilerCallback2 * This,
1592             /* [in] */ AssemblyID assemblyId);
1593         
1594         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
1595             ICorProfilerCallback2 * This,
1596             /* [in] */ AssemblyID assemblyId,
1597             /* [in] */ HRESULT hrStatus);
1598         
1599         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
1600             ICorProfilerCallback2 * This,
1601             /* [in] */ ModuleID moduleId);
1602         
1603         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
1604             ICorProfilerCallback2 * This,
1605             /* [in] */ ModuleID moduleId,
1606             /* [in] */ HRESULT hrStatus);
1607         
1608         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
1609             ICorProfilerCallback2 * This,
1610             /* [in] */ ModuleID moduleId);
1611         
1612         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
1613             ICorProfilerCallback2 * This,
1614             /* [in] */ ModuleID moduleId,
1615             /* [in] */ HRESULT hrStatus);
1616         
1617         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
1618             ICorProfilerCallback2 * This,
1619             /* [in] */ ModuleID moduleId,
1620             /* [in] */ AssemblyID AssemblyId);
1621         
1622         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
1623             ICorProfilerCallback2 * This,
1624             /* [in] */ ClassID classId);
1625         
1626         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
1627             ICorProfilerCallback2 * This,
1628             /* [in] */ ClassID classId,
1629             /* [in] */ HRESULT hrStatus);
1630         
1631         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
1632             ICorProfilerCallback2 * This,
1633             /* [in] */ ClassID classId);
1634         
1635         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
1636             ICorProfilerCallback2 * This,
1637             /* [in] */ ClassID classId,
1638             /* [in] */ HRESULT hrStatus);
1639         
1640         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
1641             ICorProfilerCallback2 * This,
1642             /* [in] */ FunctionID functionId);
1643         
1644         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
1645             ICorProfilerCallback2 * This,
1646             /* [in] */ FunctionID functionId,
1647             /* [in] */ BOOL fIsSafeToBlock);
1648         
1649         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
1650             ICorProfilerCallback2 * This,
1651             /* [in] */ FunctionID functionId,
1652             /* [in] */ HRESULT hrStatus,
1653             /* [in] */ BOOL fIsSafeToBlock);
1654         
1655         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
1656             ICorProfilerCallback2 * This,
1657             /* [in] */ FunctionID functionId,
1658             /* [out] */ BOOL *pbUseCachedFunction);
1659         
1660         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
1661             ICorProfilerCallback2 * This,
1662             /* [in] */ FunctionID functionId,
1663             /* [in] */ COR_PRF_JIT_CACHE result);
1664         
1665         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
1666             ICorProfilerCallback2 * This,
1667             /* [in] */ FunctionID functionId);
1668         
1669         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
1670             ICorProfilerCallback2 * This,
1671             /* [in] */ FunctionID callerId,
1672             /* [in] */ FunctionID calleeId,
1673             /* [out] */ BOOL *pfShouldInline);
1674         
1675         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
1676             ICorProfilerCallback2 * This,
1677             /* [in] */ ThreadID threadId);
1678         
1679         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
1680             ICorProfilerCallback2 * This,
1681             /* [in] */ ThreadID threadId);
1682         
1683         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
1684             ICorProfilerCallback2 * This,
1685             /* [in] */ ThreadID managedThreadId,
1686             /* [in] */ DWORD osThreadId);
1687         
1688         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
1689             ICorProfilerCallback2 * This);
1690         
1691         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
1692             ICorProfilerCallback2 * This,
1693             /* [in] */ GUID *pCookie,
1694             /* [in] */ BOOL fIsAsync);
1695         
1696         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
1697             ICorProfilerCallback2 * This,
1698             /* [in] */ GUID *pCookie,
1699             /* [in] */ BOOL fIsAsync);
1700         
1701         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
1702             ICorProfilerCallback2 * This);
1703         
1704         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
1705             ICorProfilerCallback2 * This,
1706             /* [in] */ GUID *pCookie,
1707             /* [in] */ BOOL fIsAsync);
1708         
1709         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
1710             ICorProfilerCallback2 * This);
1711         
1712         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
1713             ICorProfilerCallback2 * This);
1714         
1715         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
1716             ICorProfilerCallback2 * This,
1717             /* [in] */ GUID *pCookie,
1718             /* [in] */ BOOL fIsAsync);
1719         
1720         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
1721             ICorProfilerCallback2 * This,
1722             /* [in] */ FunctionID functionId,
1723             /* [in] */ COR_PRF_TRANSITION_REASON reason);
1724         
1725         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
1726             ICorProfilerCallback2 * This,
1727             /* [in] */ FunctionID functionId,
1728             /* [in] */ COR_PRF_TRANSITION_REASON reason);
1729         
1730         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
1731             ICorProfilerCallback2 * This,
1732             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
1733         
1734         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
1735             ICorProfilerCallback2 * This);
1736         
1737         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
1738             ICorProfilerCallback2 * This);
1739         
1740         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
1741             ICorProfilerCallback2 * This);
1742         
1743         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
1744             ICorProfilerCallback2 * This);
1745         
1746         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
1747             ICorProfilerCallback2 * This,
1748             /* [in] */ ThreadID threadId);
1749         
1750         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
1751             ICorProfilerCallback2 * This,
1752             /* [in] */ ThreadID threadId);
1753         
1754         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
1755             ICorProfilerCallback2 * This,
1756             /* [in] */ ULONG cMovedObjectIDRanges,
1757             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
1758             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
1759             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
1760         
1761         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
1762             ICorProfilerCallback2 * This,
1763             /* [in] */ ObjectID objectId,
1764             /* [in] */ ClassID classId);
1765         
1766         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
1767             ICorProfilerCallback2 * This,
1768             /* [in] */ ULONG cClassCount,
1769             /* [size_is][in] */ ClassID classIds[  ],
1770             /* [size_is][in] */ ULONG cObjects[  ]);
1771         
1772         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
1773             ICorProfilerCallback2 * This,
1774             /* [in] */ ObjectID objectId,
1775             /* [in] */ ClassID classId,
1776             /* [in] */ ULONG cObjectRefs,
1777             /* [size_is][in] */ ObjectID objectRefIds[  ]);
1778         
1779         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
1780             ICorProfilerCallback2 * This,
1781             /* [in] */ ULONG cRootRefs,
1782             /* [size_is][in] */ ObjectID rootRefIds[  ]);
1783         
1784         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
1785             ICorProfilerCallback2 * This,
1786             /* [in] */ ObjectID thrownObjectId);
1787         
1788         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
1789             ICorProfilerCallback2 * This,
1790             /* [in] */ FunctionID functionId);
1791         
1792         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
1793             ICorProfilerCallback2 * This);
1794         
1795         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
1796             ICorProfilerCallback2 * This,
1797             /* [in] */ FunctionID functionId);
1798         
1799         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
1800             ICorProfilerCallback2 * This);
1801         
1802         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
1803             ICorProfilerCallback2 * This,
1804             /* [in] */ FunctionID functionId);
1805         
1806         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
1807             ICorProfilerCallback2 * This,
1808             /* [in] */ UINT_PTR __unused);
1809         
1810         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
1811             ICorProfilerCallback2 * This,
1812             /* [in] */ UINT_PTR __unused);
1813         
1814         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
1815             ICorProfilerCallback2 * This,
1816             /* [in] */ FunctionID functionId);
1817         
1818         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
1819             ICorProfilerCallback2 * This);
1820         
1821         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
1822             ICorProfilerCallback2 * This,
1823             /* [in] */ FunctionID functionId);
1824         
1825         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
1826             ICorProfilerCallback2 * This);
1827         
1828         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
1829             ICorProfilerCallback2 * This,
1830             /* [in] */ FunctionID functionId,
1831             /* [in] */ ObjectID objectId);
1832         
1833         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
1834             ICorProfilerCallback2 * This);
1835         
1836         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
1837             ICorProfilerCallback2 * This,
1838             /* [in] */ ClassID wrappedClassId,
1839             /* [in] */ REFGUID implementedIID,
1840             /* [in] */ void *pVTable,
1841             /* [in] */ ULONG cSlots);
1842         
1843         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
1844             ICorProfilerCallback2 * This,
1845             /* [in] */ ClassID wrappedClassId,
1846             /* [in] */ REFGUID implementedIID,
1847             /* [in] */ void *pVTable);
1848         
1849         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
1850             ICorProfilerCallback2 * This);
1851         
1852         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
1853             ICorProfilerCallback2 * This);
1854         
1855         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
1856             ICorProfilerCallback2 * This,
1857             /* [in] */ ThreadID threadId,
1858             /* [in] */ ULONG cchName,
1859             /* [annotation][in] */ 
1860             _In_reads_opt_(cchName)  WCHAR name[  ]);
1861         
1862         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
1863             ICorProfilerCallback2 * This,
1864             /* [in] */ int cGenerations,
1865             /* [size_is][in] */ BOOL generationCollected[  ],
1866             /* [in] */ COR_PRF_GC_REASON reason);
1867         
1868         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
1869             ICorProfilerCallback2 * This,
1870             /* [in] */ ULONG cSurvivingObjectIDRanges,
1871             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
1872             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
1873         
1874         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
1875             ICorProfilerCallback2 * This);
1876         
1877         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
1878             ICorProfilerCallback2 * This,
1879             /* [in] */ DWORD finalizerFlags,
1880             /* [in] */ ObjectID objectID);
1881         
1882         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
1883             ICorProfilerCallback2 * This,
1884             /* [in] */ ULONG cRootRefs,
1885             /* [size_is][in] */ ObjectID rootRefIds[  ],
1886             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
1887             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
1888             /* [size_is][in] */ UINT_PTR rootIds[  ]);
1889         
1890         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
1891             ICorProfilerCallback2 * This,
1892             /* [in] */ GCHandleID handleId,
1893             /* [in] */ ObjectID initialObjectId);
1894         
1895         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
1896             ICorProfilerCallback2 * This,
1897             /* [in] */ GCHandleID handleId);
1898         
1899         END_INTERFACE
1900     } ICorProfilerCallback2Vtbl;
1901
1902     interface ICorProfilerCallback2
1903     {
1904         CONST_VTBL struct ICorProfilerCallback2Vtbl *lpVtbl;
1905     };
1906
1907     
1908
1909 #ifdef COBJMACROS
1910
1911
1912 #define ICorProfilerCallback2_QueryInterface(This,riid,ppvObject)       \
1913     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
1914
1915 #define ICorProfilerCallback2_AddRef(This)      \
1916     ( (This)->lpVtbl -> AddRef(This) ) 
1917
1918 #define ICorProfilerCallback2_Release(This)     \
1919     ( (This)->lpVtbl -> Release(This) ) 
1920
1921
1922 #define ICorProfilerCallback2_Initialize(This,pICorProfilerInfoUnk)     \
1923     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
1924
1925 #define ICorProfilerCallback2_Shutdown(This)    \
1926     ( (This)->lpVtbl -> Shutdown(This) ) 
1927
1928 #define ICorProfilerCallback2_AppDomainCreationStarted(This,appDomainId)        \
1929     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
1930
1931 #define ICorProfilerCallback2_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
1932     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
1933
1934 #define ICorProfilerCallback2_AppDomainShutdownStarted(This,appDomainId)        \
1935     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
1936
1937 #define ICorProfilerCallback2_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
1938     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
1939
1940 #define ICorProfilerCallback2_AssemblyLoadStarted(This,assemblyId)      \
1941     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
1942
1943 #define ICorProfilerCallback2_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
1944     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
1945
1946 #define ICorProfilerCallback2_AssemblyUnloadStarted(This,assemblyId)    \
1947     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
1948
1949 #define ICorProfilerCallback2_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
1950     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
1951
1952 #define ICorProfilerCallback2_ModuleLoadStarted(This,moduleId)  \
1953     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
1954
1955 #define ICorProfilerCallback2_ModuleLoadFinished(This,moduleId,hrStatus)        \
1956     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
1957
1958 #define ICorProfilerCallback2_ModuleUnloadStarted(This,moduleId)        \
1959     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
1960
1961 #define ICorProfilerCallback2_ModuleUnloadFinished(This,moduleId,hrStatus)      \
1962     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
1963
1964 #define ICorProfilerCallback2_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
1965     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
1966
1967 #define ICorProfilerCallback2_ClassLoadStarted(This,classId)    \
1968     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
1969
1970 #define ICorProfilerCallback2_ClassLoadFinished(This,classId,hrStatus)  \
1971     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
1972
1973 #define ICorProfilerCallback2_ClassUnloadStarted(This,classId)  \
1974     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
1975
1976 #define ICorProfilerCallback2_ClassUnloadFinished(This,classId,hrStatus)        \
1977     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
1978
1979 #define ICorProfilerCallback2_FunctionUnloadStarted(This,functionId)    \
1980     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
1981
1982 #define ICorProfilerCallback2_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
1983     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
1984
1985 #define ICorProfilerCallback2_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
1986     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
1987
1988 #define ICorProfilerCallback2_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
1989     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
1990
1991 #define ICorProfilerCallback2_JITCachedFunctionSearchFinished(This,functionId,result)   \
1992     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
1993
1994 #define ICorProfilerCallback2_JITFunctionPitched(This,functionId)       \
1995     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
1996
1997 #define ICorProfilerCallback2_JITInlining(This,callerId,calleeId,pfShouldInline)        \
1998     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
1999
2000 #define ICorProfilerCallback2_ThreadCreated(This,threadId)      \
2001     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
2002
2003 #define ICorProfilerCallback2_ThreadDestroyed(This,threadId)    \
2004     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
2005
2006 #define ICorProfilerCallback2_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2007     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
2008
2009 #define ICorProfilerCallback2_RemotingClientInvocationStarted(This)     \
2010     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
2011
2012 #define ICorProfilerCallback2_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
2013     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
2014
2015 #define ICorProfilerCallback2_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
2016     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
2017
2018 #define ICorProfilerCallback2_RemotingClientInvocationFinished(This)    \
2019     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
2020
2021 #define ICorProfilerCallback2_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
2022     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
2023
2024 #define ICorProfilerCallback2_RemotingServerInvocationStarted(This)     \
2025     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
2026
2027 #define ICorProfilerCallback2_RemotingServerInvocationReturned(This)    \
2028     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
2029
2030 #define ICorProfilerCallback2_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2031     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
2032
2033 #define ICorProfilerCallback2_UnmanagedToManagedTransition(This,functionId,reason)      \
2034     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
2035
2036 #define ICorProfilerCallback2_ManagedToUnmanagedTransition(This,functionId,reason)      \
2037     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
2038
2039 #define ICorProfilerCallback2_RuntimeSuspendStarted(This,suspendReason) \
2040     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
2041
2042 #define ICorProfilerCallback2_RuntimeSuspendFinished(This)      \
2043     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
2044
2045 #define ICorProfilerCallback2_RuntimeSuspendAborted(This)       \
2046     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
2047
2048 #define ICorProfilerCallback2_RuntimeResumeStarted(This)        \
2049     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
2050
2051 #define ICorProfilerCallback2_RuntimeResumeFinished(This)       \
2052     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
2053
2054 #define ICorProfilerCallback2_RuntimeThreadSuspended(This,threadId)     \
2055     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
2056
2057 #define ICorProfilerCallback2_RuntimeThreadResumed(This,threadId)       \
2058     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
2059
2060 #define ICorProfilerCallback2_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
2061     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
2062
2063 #define ICorProfilerCallback2_ObjectAllocated(This,objectId,classId)    \
2064     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
2065
2066 #define ICorProfilerCallback2_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
2067     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
2068
2069 #define ICorProfilerCallback2_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
2070     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
2071
2072 #define ICorProfilerCallback2_RootReferences(This,cRootRefs,rootRefIds) \
2073     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
2074
2075 #define ICorProfilerCallback2_ExceptionThrown(This,thrownObjectId)      \
2076     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
2077
2078 #define ICorProfilerCallback2_ExceptionSearchFunctionEnter(This,functionId)     \
2079     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
2080
2081 #define ICorProfilerCallback2_ExceptionSearchFunctionLeave(This)        \
2082     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
2083
2084 #define ICorProfilerCallback2_ExceptionSearchFilterEnter(This,functionId)       \
2085     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
2086
2087 #define ICorProfilerCallback2_ExceptionSearchFilterLeave(This)  \
2088     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
2089
2090 #define ICorProfilerCallback2_ExceptionSearchCatcherFound(This,functionId)      \
2091     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
2092
2093 #define ICorProfilerCallback2_ExceptionOSHandlerEnter(This,__unused)    \
2094     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
2095
2096 #define ICorProfilerCallback2_ExceptionOSHandlerLeave(This,__unused)    \
2097     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
2098
2099 #define ICorProfilerCallback2_ExceptionUnwindFunctionEnter(This,functionId)     \
2100     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
2101
2102 #define ICorProfilerCallback2_ExceptionUnwindFunctionLeave(This)        \
2103     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
2104
2105 #define ICorProfilerCallback2_ExceptionUnwindFinallyEnter(This,functionId)      \
2106     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
2107
2108 #define ICorProfilerCallback2_ExceptionUnwindFinallyLeave(This) \
2109     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
2110
2111 #define ICorProfilerCallback2_ExceptionCatcherEnter(This,functionId,objectId)   \
2112     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
2113
2114 #define ICorProfilerCallback2_ExceptionCatcherLeave(This)       \
2115     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
2116
2117 #define ICorProfilerCallback2_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
2118     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
2119
2120 #define ICorProfilerCallback2_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
2121     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
2122
2123 #define ICorProfilerCallback2_ExceptionCLRCatcherFound(This)    \
2124     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
2125
2126 #define ICorProfilerCallback2_ExceptionCLRCatcherExecute(This)  \
2127     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
2128
2129
2130 #define ICorProfilerCallback2_ThreadNameChanged(This,threadId,cchName,name)     \
2131     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
2132
2133 #define ICorProfilerCallback2_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
2134     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
2135
2136 #define ICorProfilerCallback2_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
2137     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
2138
2139 #define ICorProfilerCallback2_GarbageCollectionFinished(This)   \
2140     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
2141
2142 #define ICorProfilerCallback2_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
2143     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
2144
2145 #define ICorProfilerCallback2_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
2146     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
2147
2148 #define ICorProfilerCallback2_HandleCreated(This,handleId,initialObjectId)      \
2149     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
2150
2151 #define ICorProfilerCallback2_HandleDestroyed(This,handleId)    \
2152     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
2153
2154 #endif /* COBJMACROS */
2155
2156
2157 #endif  /* C style interface */
2158
2159
2160
2161
2162 #endif  /* __ICorProfilerCallback2_INTERFACE_DEFINED__ */
2163
2164
2165 #ifndef __ICorProfilerCallback3_INTERFACE_DEFINED__
2166 #define __ICorProfilerCallback3_INTERFACE_DEFINED__
2167
2168 /* interface ICorProfilerCallback3 */
2169 /* [local][unique][uuid][object] */ 
2170
2171
2172 EXTERN_C const IID IID_ICorProfilerCallback3;
2173
2174 #if defined(__cplusplus) && !defined(CINTERFACE)
2175     
2176     MIDL_INTERFACE("4FD2ED52-7731-4b8d-9469-03D2CC3086C5")
2177     ICorProfilerCallback3 : public ICorProfilerCallback2
2178     {
2179     public:
2180         virtual HRESULT STDMETHODCALLTYPE InitializeForAttach( 
2181             /* [in] */ IUnknown *pCorProfilerInfoUnk,
2182             /* [in] */ void *pvClientData,
2183             /* [in] */ UINT cbClientData) = 0;
2184         
2185         virtual HRESULT STDMETHODCALLTYPE ProfilerAttachComplete( void) = 0;
2186         
2187         virtual HRESULT STDMETHODCALLTYPE ProfilerDetachSucceeded( void) = 0;
2188         
2189     };
2190     
2191     
2192 #else   /* C style interface */
2193
2194     typedef struct ICorProfilerCallback3Vtbl
2195     {
2196         BEGIN_INTERFACE
2197         
2198         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2199             ICorProfilerCallback3 * This,
2200             /* [in] */ REFIID riid,
2201             /* [annotation][iid_is][out] */ 
2202             _COM_Outptr_  void **ppvObject);
2203         
2204         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2205             ICorProfilerCallback3 * This);
2206         
2207         ULONG ( STDMETHODCALLTYPE *Release )( 
2208             ICorProfilerCallback3 * This);
2209         
2210         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
2211             ICorProfilerCallback3 * This,
2212             /* [in] */ IUnknown *pICorProfilerInfoUnk);
2213         
2214         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
2215             ICorProfilerCallback3 * This);
2216         
2217         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
2218             ICorProfilerCallback3 * This,
2219             /* [in] */ AppDomainID appDomainId);
2220         
2221         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
2222             ICorProfilerCallback3 * This,
2223             /* [in] */ AppDomainID appDomainId,
2224             /* [in] */ HRESULT hrStatus);
2225         
2226         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
2227             ICorProfilerCallback3 * This,
2228             /* [in] */ AppDomainID appDomainId);
2229         
2230         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
2231             ICorProfilerCallback3 * This,
2232             /* [in] */ AppDomainID appDomainId,
2233             /* [in] */ HRESULT hrStatus);
2234         
2235         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
2236             ICorProfilerCallback3 * This,
2237             /* [in] */ AssemblyID assemblyId);
2238         
2239         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
2240             ICorProfilerCallback3 * This,
2241             /* [in] */ AssemblyID assemblyId,
2242             /* [in] */ HRESULT hrStatus);
2243         
2244         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
2245             ICorProfilerCallback3 * This,
2246             /* [in] */ AssemblyID assemblyId);
2247         
2248         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
2249             ICorProfilerCallback3 * This,
2250             /* [in] */ AssemblyID assemblyId,
2251             /* [in] */ HRESULT hrStatus);
2252         
2253         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
2254             ICorProfilerCallback3 * This,
2255             /* [in] */ ModuleID moduleId);
2256         
2257         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
2258             ICorProfilerCallback3 * This,
2259             /* [in] */ ModuleID moduleId,
2260             /* [in] */ HRESULT hrStatus);
2261         
2262         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
2263             ICorProfilerCallback3 * This,
2264             /* [in] */ ModuleID moduleId);
2265         
2266         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
2267             ICorProfilerCallback3 * This,
2268             /* [in] */ ModuleID moduleId,
2269             /* [in] */ HRESULT hrStatus);
2270         
2271         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
2272             ICorProfilerCallback3 * This,
2273             /* [in] */ ModuleID moduleId,
2274             /* [in] */ AssemblyID AssemblyId);
2275         
2276         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
2277             ICorProfilerCallback3 * This,
2278             /* [in] */ ClassID classId);
2279         
2280         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
2281             ICorProfilerCallback3 * This,
2282             /* [in] */ ClassID classId,
2283             /* [in] */ HRESULT hrStatus);
2284         
2285         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
2286             ICorProfilerCallback3 * This,
2287             /* [in] */ ClassID classId);
2288         
2289         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
2290             ICorProfilerCallback3 * This,
2291             /* [in] */ ClassID classId,
2292             /* [in] */ HRESULT hrStatus);
2293         
2294         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
2295             ICorProfilerCallback3 * This,
2296             /* [in] */ FunctionID functionId);
2297         
2298         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
2299             ICorProfilerCallback3 * This,
2300             /* [in] */ FunctionID functionId,
2301             /* [in] */ BOOL fIsSafeToBlock);
2302         
2303         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
2304             ICorProfilerCallback3 * This,
2305             /* [in] */ FunctionID functionId,
2306             /* [in] */ HRESULT hrStatus,
2307             /* [in] */ BOOL fIsSafeToBlock);
2308         
2309         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
2310             ICorProfilerCallback3 * This,
2311             /* [in] */ FunctionID functionId,
2312             /* [out] */ BOOL *pbUseCachedFunction);
2313         
2314         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
2315             ICorProfilerCallback3 * This,
2316             /* [in] */ FunctionID functionId,
2317             /* [in] */ COR_PRF_JIT_CACHE result);
2318         
2319         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
2320             ICorProfilerCallback3 * This,
2321             /* [in] */ FunctionID functionId);
2322         
2323         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
2324             ICorProfilerCallback3 * This,
2325             /* [in] */ FunctionID callerId,
2326             /* [in] */ FunctionID calleeId,
2327             /* [out] */ BOOL *pfShouldInline);
2328         
2329         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
2330             ICorProfilerCallback3 * This,
2331             /* [in] */ ThreadID threadId);
2332         
2333         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
2334             ICorProfilerCallback3 * This,
2335             /* [in] */ ThreadID threadId);
2336         
2337         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
2338             ICorProfilerCallback3 * This,
2339             /* [in] */ ThreadID managedThreadId,
2340             /* [in] */ DWORD osThreadId);
2341         
2342         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
2343             ICorProfilerCallback3 * This);
2344         
2345         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
2346             ICorProfilerCallback3 * This,
2347             /* [in] */ GUID *pCookie,
2348             /* [in] */ BOOL fIsAsync);
2349         
2350         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
2351             ICorProfilerCallback3 * This,
2352             /* [in] */ GUID *pCookie,
2353             /* [in] */ BOOL fIsAsync);
2354         
2355         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
2356             ICorProfilerCallback3 * This);
2357         
2358         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
2359             ICorProfilerCallback3 * This,
2360             /* [in] */ GUID *pCookie,
2361             /* [in] */ BOOL fIsAsync);
2362         
2363         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
2364             ICorProfilerCallback3 * This);
2365         
2366         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
2367             ICorProfilerCallback3 * This);
2368         
2369         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
2370             ICorProfilerCallback3 * This,
2371             /* [in] */ GUID *pCookie,
2372             /* [in] */ BOOL fIsAsync);
2373         
2374         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
2375             ICorProfilerCallback3 * This,
2376             /* [in] */ FunctionID functionId,
2377             /* [in] */ COR_PRF_TRANSITION_REASON reason);
2378         
2379         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
2380             ICorProfilerCallback3 * This,
2381             /* [in] */ FunctionID functionId,
2382             /* [in] */ COR_PRF_TRANSITION_REASON reason);
2383         
2384         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
2385             ICorProfilerCallback3 * This,
2386             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
2387         
2388         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
2389             ICorProfilerCallback3 * This);
2390         
2391         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
2392             ICorProfilerCallback3 * This);
2393         
2394         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
2395             ICorProfilerCallback3 * This);
2396         
2397         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
2398             ICorProfilerCallback3 * This);
2399         
2400         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
2401             ICorProfilerCallback3 * This,
2402             /* [in] */ ThreadID threadId);
2403         
2404         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
2405             ICorProfilerCallback3 * This,
2406             /* [in] */ ThreadID threadId);
2407         
2408         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
2409             ICorProfilerCallback3 * This,
2410             /* [in] */ ULONG cMovedObjectIDRanges,
2411             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
2412             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
2413             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
2414         
2415         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
2416             ICorProfilerCallback3 * This,
2417             /* [in] */ ObjectID objectId,
2418             /* [in] */ ClassID classId);
2419         
2420         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
2421             ICorProfilerCallback3 * This,
2422             /* [in] */ ULONG cClassCount,
2423             /* [size_is][in] */ ClassID classIds[  ],
2424             /* [size_is][in] */ ULONG cObjects[  ]);
2425         
2426         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
2427             ICorProfilerCallback3 * This,
2428             /* [in] */ ObjectID objectId,
2429             /* [in] */ ClassID classId,
2430             /* [in] */ ULONG cObjectRefs,
2431             /* [size_is][in] */ ObjectID objectRefIds[  ]);
2432         
2433         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
2434             ICorProfilerCallback3 * This,
2435             /* [in] */ ULONG cRootRefs,
2436             /* [size_is][in] */ ObjectID rootRefIds[  ]);
2437         
2438         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
2439             ICorProfilerCallback3 * This,
2440             /* [in] */ ObjectID thrownObjectId);
2441         
2442         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
2443             ICorProfilerCallback3 * This,
2444             /* [in] */ FunctionID functionId);
2445         
2446         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
2447             ICorProfilerCallback3 * This);
2448         
2449         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
2450             ICorProfilerCallback3 * This,
2451             /* [in] */ FunctionID functionId);
2452         
2453         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
2454             ICorProfilerCallback3 * This);
2455         
2456         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
2457             ICorProfilerCallback3 * This,
2458             /* [in] */ FunctionID functionId);
2459         
2460         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
2461             ICorProfilerCallback3 * This,
2462             /* [in] */ UINT_PTR __unused);
2463         
2464         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
2465             ICorProfilerCallback3 * This,
2466             /* [in] */ UINT_PTR __unused);
2467         
2468         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
2469             ICorProfilerCallback3 * This,
2470             /* [in] */ FunctionID functionId);
2471         
2472         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
2473             ICorProfilerCallback3 * This);
2474         
2475         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
2476             ICorProfilerCallback3 * This,
2477             /* [in] */ FunctionID functionId);
2478         
2479         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
2480             ICorProfilerCallback3 * This);
2481         
2482         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
2483             ICorProfilerCallback3 * This,
2484             /* [in] */ FunctionID functionId,
2485             /* [in] */ ObjectID objectId);
2486         
2487         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
2488             ICorProfilerCallback3 * This);
2489         
2490         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
2491             ICorProfilerCallback3 * This,
2492             /* [in] */ ClassID wrappedClassId,
2493             /* [in] */ REFGUID implementedIID,
2494             /* [in] */ void *pVTable,
2495             /* [in] */ ULONG cSlots);
2496         
2497         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
2498             ICorProfilerCallback3 * This,
2499             /* [in] */ ClassID wrappedClassId,
2500             /* [in] */ REFGUID implementedIID,
2501             /* [in] */ void *pVTable);
2502         
2503         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
2504             ICorProfilerCallback3 * This);
2505         
2506         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
2507             ICorProfilerCallback3 * This);
2508         
2509         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
2510             ICorProfilerCallback3 * This,
2511             /* [in] */ ThreadID threadId,
2512             /* [in] */ ULONG cchName,
2513             /* [annotation][in] */ 
2514             _In_reads_opt_(cchName)  WCHAR name[  ]);
2515         
2516         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
2517             ICorProfilerCallback3 * This,
2518             /* [in] */ int cGenerations,
2519             /* [size_is][in] */ BOOL generationCollected[  ],
2520             /* [in] */ COR_PRF_GC_REASON reason);
2521         
2522         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
2523             ICorProfilerCallback3 * This,
2524             /* [in] */ ULONG cSurvivingObjectIDRanges,
2525             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
2526             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
2527         
2528         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
2529             ICorProfilerCallback3 * This);
2530         
2531         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
2532             ICorProfilerCallback3 * This,
2533             /* [in] */ DWORD finalizerFlags,
2534             /* [in] */ ObjectID objectID);
2535         
2536         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
2537             ICorProfilerCallback3 * This,
2538             /* [in] */ ULONG cRootRefs,
2539             /* [size_is][in] */ ObjectID rootRefIds[  ],
2540             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
2541             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
2542             /* [size_is][in] */ UINT_PTR rootIds[  ]);
2543         
2544         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
2545             ICorProfilerCallback3 * This,
2546             /* [in] */ GCHandleID handleId,
2547             /* [in] */ ObjectID initialObjectId);
2548         
2549         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
2550             ICorProfilerCallback3 * This,
2551             /* [in] */ GCHandleID handleId);
2552         
2553         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
2554             ICorProfilerCallback3 * This,
2555             /* [in] */ IUnknown *pCorProfilerInfoUnk,
2556             /* [in] */ void *pvClientData,
2557             /* [in] */ UINT cbClientData);
2558         
2559         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
2560             ICorProfilerCallback3 * This);
2561         
2562         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
2563             ICorProfilerCallback3 * This);
2564         
2565         END_INTERFACE
2566     } ICorProfilerCallback3Vtbl;
2567
2568     interface ICorProfilerCallback3
2569     {
2570         CONST_VTBL struct ICorProfilerCallback3Vtbl *lpVtbl;
2571     };
2572
2573     
2574
2575 #ifdef COBJMACROS
2576
2577
2578 #define ICorProfilerCallback3_QueryInterface(This,riid,ppvObject)       \
2579     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
2580
2581 #define ICorProfilerCallback3_AddRef(This)      \
2582     ( (This)->lpVtbl -> AddRef(This) ) 
2583
2584 #define ICorProfilerCallback3_Release(This)     \
2585     ( (This)->lpVtbl -> Release(This) ) 
2586
2587
2588 #define ICorProfilerCallback3_Initialize(This,pICorProfilerInfoUnk)     \
2589     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
2590
2591 #define ICorProfilerCallback3_Shutdown(This)    \
2592     ( (This)->lpVtbl -> Shutdown(This) ) 
2593
2594 #define ICorProfilerCallback3_AppDomainCreationStarted(This,appDomainId)        \
2595     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
2596
2597 #define ICorProfilerCallback3_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
2598     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
2599
2600 #define ICorProfilerCallback3_AppDomainShutdownStarted(This,appDomainId)        \
2601     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
2602
2603 #define ICorProfilerCallback3_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
2604     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
2605
2606 #define ICorProfilerCallback3_AssemblyLoadStarted(This,assemblyId)      \
2607     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
2608
2609 #define ICorProfilerCallback3_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
2610     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
2611
2612 #define ICorProfilerCallback3_AssemblyUnloadStarted(This,assemblyId)    \
2613     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
2614
2615 #define ICorProfilerCallback3_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
2616     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
2617
2618 #define ICorProfilerCallback3_ModuleLoadStarted(This,moduleId)  \
2619     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
2620
2621 #define ICorProfilerCallback3_ModuleLoadFinished(This,moduleId,hrStatus)        \
2622     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
2623
2624 #define ICorProfilerCallback3_ModuleUnloadStarted(This,moduleId)        \
2625     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
2626
2627 #define ICorProfilerCallback3_ModuleUnloadFinished(This,moduleId,hrStatus)      \
2628     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
2629
2630 #define ICorProfilerCallback3_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
2631     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
2632
2633 #define ICorProfilerCallback3_ClassLoadStarted(This,classId)    \
2634     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
2635
2636 #define ICorProfilerCallback3_ClassLoadFinished(This,classId,hrStatus)  \
2637     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
2638
2639 #define ICorProfilerCallback3_ClassUnloadStarted(This,classId)  \
2640     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
2641
2642 #define ICorProfilerCallback3_ClassUnloadFinished(This,classId,hrStatus)        \
2643     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
2644
2645 #define ICorProfilerCallback3_FunctionUnloadStarted(This,functionId)    \
2646     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
2647
2648 #define ICorProfilerCallback3_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
2649     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
2650
2651 #define ICorProfilerCallback3_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
2652     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
2653
2654 #define ICorProfilerCallback3_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
2655     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
2656
2657 #define ICorProfilerCallback3_JITCachedFunctionSearchFinished(This,functionId,result)   \
2658     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
2659
2660 #define ICorProfilerCallback3_JITFunctionPitched(This,functionId)       \
2661     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
2662
2663 #define ICorProfilerCallback3_JITInlining(This,callerId,calleeId,pfShouldInline)        \
2664     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
2665
2666 #define ICorProfilerCallback3_ThreadCreated(This,threadId)      \
2667     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
2668
2669 #define ICorProfilerCallback3_ThreadDestroyed(This,threadId)    \
2670     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
2671
2672 #define ICorProfilerCallback3_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
2673     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
2674
2675 #define ICorProfilerCallback3_RemotingClientInvocationStarted(This)     \
2676     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
2677
2678 #define ICorProfilerCallback3_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
2679     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
2680
2681 #define ICorProfilerCallback3_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
2682     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
2683
2684 #define ICorProfilerCallback3_RemotingClientInvocationFinished(This)    \
2685     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
2686
2687 #define ICorProfilerCallback3_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
2688     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
2689
2690 #define ICorProfilerCallback3_RemotingServerInvocationStarted(This)     \
2691     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
2692
2693 #define ICorProfilerCallback3_RemotingServerInvocationReturned(This)    \
2694     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
2695
2696 #define ICorProfilerCallback3_RemotingServerSendingReply(This,pCookie,fIsAsync) \
2697     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
2698
2699 #define ICorProfilerCallback3_UnmanagedToManagedTransition(This,functionId,reason)      \
2700     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
2701
2702 #define ICorProfilerCallback3_ManagedToUnmanagedTransition(This,functionId,reason)      \
2703     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
2704
2705 #define ICorProfilerCallback3_RuntimeSuspendStarted(This,suspendReason) \
2706     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
2707
2708 #define ICorProfilerCallback3_RuntimeSuspendFinished(This)      \
2709     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
2710
2711 #define ICorProfilerCallback3_RuntimeSuspendAborted(This)       \
2712     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
2713
2714 #define ICorProfilerCallback3_RuntimeResumeStarted(This)        \
2715     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
2716
2717 #define ICorProfilerCallback3_RuntimeResumeFinished(This)       \
2718     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
2719
2720 #define ICorProfilerCallback3_RuntimeThreadSuspended(This,threadId)     \
2721     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
2722
2723 #define ICorProfilerCallback3_RuntimeThreadResumed(This,threadId)       \
2724     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
2725
2726 #define ICorProfilerCallback3_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
2727     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
2728
2729 #define ICorProfilerCallback3_ObjectAllocated(This,objectId,classId)    \
2730     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
2731
2732 #define ICorProfilerCallback3_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
2733     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
2734
2735 #define ICorProfilerCallback3_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
2736     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
2737
2738 #define ICorProfilerCallback3_RootReferences(This,cRootRefs,rootRefIds) \
2739     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
2740
2741 #define ICorProfilerCallback3_ExceptionThrown(This,thrownObjectId)      \
2742     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
2743
2744 #define ICorProfilerCallback3_ExceptionSearchFunctionEnter(This,functionId)     \
2745     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
2746
2747 #define ICorProfilerCallback3_ExceptionSearchFunctionLeave(This)        \
2748     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
2749
2750 #define ICorProfilerCallback3_ExceptionSearchFilterEnter(This,functionId)       \
2751     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
2752
2753 #define ICorProfilerCallback3_ExceptionSearchFilterLeave(This)  \
2754     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
2755
2756 #define ICorProfilerCallback3_ExceptionSearchCatcherFound(This,functionId)      \
2757     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
2758
2759 #define ICorProfilerCallback3_ExceptionOSHandlerEnter(This,__unused)    \
2760     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
2761
2762 #define ICorProfilerCallback3_ExceptionOSHandlerLeave(This,__unused)    \
2763     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
2764
2765 #define ICorProfilerCallback3_ExceptionUnwindFunctionEnter(This,functionId)     \
2766     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
2767
2768 #define ICorProfilerCallback3_ExceptionUnwindFunctionLeave(This)        \
2769     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
2770
2771 #define ICorProfilerCallback3_ExceptionUnwindFinallyEnter(This,functionId)      \
2772     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
2773
2774 #define ICorProfilerCallback3_ExceptionUnwindFinallyLeave(This) \
2775     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
2776
2777 #define ICorProfilerCallback3_ExceptionCatcherEnter(This,functionId,objectId)   \
2778     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
2779
2780 #define ICorProfilerCallback3_ExceptionCatcherLeave(This)       \
2781     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
2782
2783 #define ICorProfilerCallback3_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
2784     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
2785
2786 #define ICorProfilerCallback3_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
2787     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
2788
2789 #define ICorProfilerCallback3_ExceptionCLRCatcherFound(This)    \
2790     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
2791
2792 #define ICorProfilerCallback3_ExceptionCLRCatcherExecute(This)  \
2793     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
2794
2795
2796 #define ICorProfilerCallback3_ThreadNameChanged(This,threadId,cchName,name)     \
2797     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
2798
2799 #define ICorProfilerCallback3_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
2800     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
2801
2802 #define ICorProfilerCallback3_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
2803     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
2804
2805 #define ICorProfilerCallback3_GarbageCollectionFinished(This)   \
2806     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
2807
2808 #define ICorProfilerCallback3_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
2809     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
2810
2811 #define ICorProfilerCallback3_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
2812     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
2813
2814 #define ICorProfilerCallback3_HandleCreated(This,handleId,initialObjectId)      \
2815     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
2816
2817 #define ICorProfilerCallback3_HandleDestroyed(This,handleId)    \
2818     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
2819
2820
2821 #define ICorProfilerCallback3_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
2822     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
2823
2824 #define ICorProfilerCallback3_ProfilerAttachComplete(This)      \
2825     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
2826
2827 #define ICorProfilerCallback3_ProfilerDetachSucceeded(This)     \
2828     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
2829
2830 #endif /* COBJMACROS */
2831
2832
2833 #endif  /* C style interface */
2834
2835
2836
2837
2838 #endif  /* __ICorProfilerCallback3_INTERFACE_DEFINED__ */
2839
2840
2841 #ifndef __ICorProfilerCallback4_INTERFACE_DEFINED__
2842 #define __ICorProfilerCallback4_INTERFACE_DEFINED__
2843
2844 /* interface ICorProfilerCallback4 */
2845 /* [local][unique][uuid][object] */ 
2846
2847
2848 EXTERN_C const IID IID_ICorProfilerCallback4;
2849
2850 #if defined(__cplusplus) && !defined(CINTERFACE)
2851     
2852     MIDL_INTERFACE("7B63B2E3-107D-4d48-B2F6-F61E229470D2")
2853     ICorProfilerCallback4 : public ICorProfilerCallback3
2854     {
2855     public:
2856         virtual HRESULT STDMETHODCALLTYPE ReJITCompilationStarted( 
2857             /* [in] */ FunctionID functionId,
2858             /* [in] */ ReJITID rejitId,
2859             /* [in] */ BOOL fIsSafeToBlock) = 0;
2860         
2861         virtual HRESULT STDMETHODCALLTYPE GetReJITParameters( 
2862             /* [in] */ ModuleID moduleId,
2863             /* [in] */ mdMethodDef methodId,
2864             /* [in] */ ICorProfilerFunctionControl *pFunctionControl) = 0;
2865         
2866         virtual HRESULT STDMETHODCALLTYPE ReJITCompilationFinished( 
2867             /* [in] */ FunctionID functionId,
2868             /* [in] */ ReJITID rejitId,
2869             /* [in] */ HRESULT hrStatus,
2870             /* [in] */ BOOL fIsSafeToBlock) = 0;
2871         
2872         virtual HRESULT STDMETHODCALLTYPE ReJITError( 
2873             /* [in] */ ModuleID moduleId,
2874             /* [in] */ mdMethodDef methodId,
2875             /* [in] */ FunctionID functionId,
2876             /* [in] */ HRESULT hrStatus) = 0;
2877         
2878         virtual HRESULT STDMETHODCALLTYPE MovedReferences2( 
2879             /* [in] */ ULONG cMovedObjectIDRanges,
2880             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
2881             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
2882             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]) = 0;
2883         
2884         virtual HRESULT STDMETHODCALLTYPE SurvivingReferences2( 
2885             /* [in] */ ULONG cSurvivingObjectIDRanges,
2886             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
2887             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]) = 0;
2888         
2889     };
2890     
2891     
2892 #else   /* C style interface */
2893
2894     typedef struct ICorProfilerCallback4Vtbl
2895     {
2896         BEGIN_INTERFACE
2897         
2898         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
2899             ICorProfilerCallback4 * This,
2900             /* [in] */ REFIID riid,
2901             /* [annotation][iid_is][out] */ 
2902             _COM_Outptr_  void **ppvObject);
2903         
2904         ULONG ( STDMETHODCALLTYPE *AddRef )( 
2905             ICorProfilerCallback4 * This);
2906         
2907         ULONG ( STDMETHODCALLTYPE *Release )( 
2908             ICorProfilerCallback4 * This);
2909         
2910         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
2911             ICorProfilerCallback4 * This,
2912             /* [in] */ IUnknown *pICorProfilerInfoUnk);
2913         
2914         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
2915             ICorProfilerCallback4 * This);
2916         
2917         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
2918             ICorProfilerCallback4 * This,
2919             /* [in] */ AppDomainID appDomainId);
2920         
2921         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
2922             ICorProfilerCallback4 * This,
2923             /* [in] */ AppDomainID appDomainId,
2924             /* [in] */ HRESULT hrStatus);
2925         
2926         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
2927             ICorProfilerCallback4 * This,
2928             /* [in] */ AppDomainID appDomainId);
2929         
2930         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
2931             ICorProfilerCallback4 * This,
2932             /* [in] */ AppDomainID appDomainId,
2933             /* [in] */ HRESULT hrStatus);
2934         
2935         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
2936             ICorProfilerCallback4 * This,
2937             /* [in] */ AssemblyID assemblyId);
2938         
2939         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
2940             ICorProfilerCallback4 * This,
2941             /* [in] */ AssemblyID assemblyId,
2942             /* [in] */ HRESULT hrStatus);
2943         
2944         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
2945             ICorProfilerCallback4 * This,
2946             /* [in] */ AssemblyID assemblyId);
2947         
2948         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
2949             ICorProfilerCallback4 * This,
2950             /* [in] */ AssemblyID assemblyId,
2951             /* [in] */ HRESULT hrStatus);
2952         
2953         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
2954             ICorProfilerCallback4 * This,
2955             /* [in] */ ModuleID moduleId);
2956         
2957         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
2958             ICorProfilerCallback4 * This,
2959             /* [in] */ ModuleID moduleId,
2960             /* [in] */ HRESULT hrStatus);
2961         
2962         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
2963             ICorProfilerCallback4 * This,
2964             /* [in] */ ModuleID moduleId);
2965         
2966         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
2967             ICorProfilerCallback4 * This,
2968             /* [in] */ ModuleID moduleId,
2969             /* [in] */ HRESULT hrStatus);
2970         
2971         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
2972             ICorProfilerCallback4 * This,
2973             /* [in] */ ModuleID moduleId,
2974             /* [in] */ AssemblyID AssemblyId);
2975         
2976         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
2977             ICorProfilerCallback4 * This,
2978             /* [in] */ ClassID classId);
2979         
2980         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
2981             ICorProfilerCallback4 * This,
2982             /* [in] */ ClassID classId,
2983             /* [in] */ HRESULT hrStatus);
2984         
2985         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
2986             ICorProfilerCallback4 * This,
2987             /* [in] */ ClassID classId);
2988         
2989         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
2990             ICorProfilerCallback4 * This,
2991             /* [in] */ ClassID classId,
2992             /* [in] */ HRESULT hrStatus);
2993         
2994         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
2995             ICorProfilerCallback4 * This,
2996             /* [in] */ FunctionID functionId);
2997         
2998         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
2999             ICorProfilerCallback4 * This,
3000             /* [in] */ FunctionID functionId,
3001             /* [in] */ BOOL fIsSafeToBlock);
3002         
3003         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
3004             ICorProfilerCallback4 * This,
3005             /* [in] */ FunctionID functionId,
3006             /* [in] */ HRESULT hrStatus,
3007             /* [in] */ BOOL fIsSafeToBlock);
3008         
3009         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
3010             ICorProfilerCallback4 * This,
3011             /* [in] */ FunctionID functionId,
3012             /* [out] */ BOOL *pbUseCachedFunction);
3013         
3014         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
3015             ICorProfilerCallback4 * This,
3016             /* [in] */ FunctionID functionId,
3017             /* [in] */ COR_PRF_JIT_CACHE result);
3018         
3019         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
3020             ICorProfilerCallback4 * This,
3021             /* [in] */ FunctionID functionId);
3022         
3023         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
3024             ICorProfilerCallback4 * This,
3025             /* [in] */ FunctionID callerId,
3026             /* [in] */ FunctionID calleeId,
3027             /* [out] */ BOOL *pfShouldInline);
3028         
3029         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
3030             ICorProfilerCallback4 * This,
3031             /* [in] */ ThreadID threadId);
3032         
3033         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
3034             ICorProfilerCallback4 * This,
3035             /* [in] */ ThreadID threadId);
3036         
3037         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
3038             ICorProfilerCallback4 * This,
3039             /* [in] */ ThreadID managedThreadId,
3040             /* [in] */ DWORD osThreadId);
3041         
3042         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
3043             ICorProfilerCallback4 * This);
3044         
3045         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
3046             ICorProfilerCallback4 * This,
3047             /* [in] */ GUID *pCookie,
3048             /* [in] */ BOOL fIsAsync);
3049         
3050         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
3051             ICorProfilerCallback4 * This,
3052             /* [in] */ GUID *pCookie,
3053             /* [in] */ BOOL fIsAsync);
3054         
3055         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
3056             ICorProfilerCallback4 * This);
3057         
3058         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
3059             ICorProfilerCallback4 * This,
3060             /* [in] */ GUID *pCookie,
3061             /* [in] */ BOOL fIsAsync);
3062         
3063         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
3064             ICorProfilerCallback4 * This);
3065         
3066         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
3067             ICorProfilerCallback4 * This);
3068         
3069         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
3070             ICorProfilerCallback4 * This,
3071             /* [in] */ GUID *pCookie,
3072             /* [in] */ BOOL fIsAsync);
3073         
3074         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
3075             ICorProfilerCallback4 * This,
3076             /* [in] */ FunctionID functionId,
3077             /* [in] */ COR_PRF_TRANSITION_REASON reason);
3078         
3079         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
3080             ICorProfilerCallback4 * This,
3081             /* [in] */ FunctionID functionId,
3082             /* [in] */ COR_PRF_TRANSITION_REASON reason);
3083         
3084         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
3085             ICorProfilerCallback4 * This,
3086             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3087         
3088         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
3089             ICorProfilerCallback4 * This);
3090         
3091         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
3092             ICorProfilerCallback4 * This);
3093         
3094         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
3095             ICorProfilerCallback4 * This);
3096         
3097         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
3098             ICorProfilerCallback4 * This);
3099         
3100         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
3101             ICorProfilerCallback4 * This,
3102             /* [in] */ ThreadID threadId);
3103         
3104         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
3105             ICorProfilerCallback4 * This,
3106             /* [in] */ ThreadID threadId);
3107         
3108         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
3109             ICorProfilerCallback4 * This,
3110             /* [in] */ ULONG cMovedObjectIDRanges,
3111             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
3112             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
3113             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
3114         
3115         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
3116             ICorProfilerCallback4 * This,
3117             /* [in] */ ObjectID objectId,
3118             /* [in] */ ClassID classId);
3119         
3120         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
3121             ICorProfilerCallback4 * This,
3122             /* [in] */ ULONG cClassCount,
3123             /* [size_is][in] */ ClassID classIds[  ],
3124             /* [size_is][in] */ ULONG cObjects[  ]);
3125         
3126         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
3127             ICorProfilerCallback4 * This,
3128             /* [in] */ ObjectID objectId,
3129             /* [in] */ ClassID classId,
3130             /* [in] */ ULONG cObjectRefs,
3131             /* [size_is][in] */ ObjectID objectRefIds[  ]);
3132         
3133         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
3134             ICorProfilerCallback4 * This,
3135             /* [in] */ ULONG cRootRefs,
3136             /* [size_is][in] */ ObjectID rootRefIds[  ]);
3137         
3138         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
3139             ICorProfilerCallback4 * This,
3140             /* [in] */ ObjectID thrownObjectId);
3141         
3142         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
3143             ICorProfilerCallback4 * This,
3144             /* [in] */ FunctionID functionId);
3145         
3146         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
3147             ICorProfilerCallback4 * This);
3148         
3149         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
3150             ICorProfilerCallback4 * This,
3151             /* [in] */ FunctionID functionId);
3152         
3153         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
3154             ICorProfilerCallback4 * This);
3155         
3156         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
3157             ICorProfilerCallback4 * This,
3158             /* [in] */ FunctionID functionId);
3159         
3160         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
3161             ICorProfilerCallback4 * This,
3162             /* [in] */ UINT_PTR __unused);
3163         
3164         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
3165             ICorProfilerCallback4 * This,
3166             /* [in] */ UINT_PTR __unused);
3167         
3168         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
3169             ICorProfilerCallback4 * This,
3170             /* [in] */ FunctionID functionId);
3171         
3172         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
3173             ICorProfilerCallback4 * This);
3174         
3175         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
3176             ICorProfilerCallback4 * This,
3177             /* [in] */ FunctionID functionId);
3178         
3179         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
3180             ICorProfilerCallback4 * This);
3181         
3182         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
3183             ICorProfilerCallback4 * This,
3184             /* [in] */ FunctionID functionId,
3185             /* [in] */ ObjectID objectId);
3186         
3187         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
3188             ICorProfilerCallback4 * This);
3189         
3190         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
3191             ICorProfilerCallback4 * This,
3192             /* [in] */ ClassID wrappedClassId,
3193             /* [in] */ REFGUID implementedIID,
3194             /* [in] */ void *pVTable,
3195             /* [in] */ ULONG cSlots);
3196         
3197         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
3198             ICorProfilerCallback4 * This,
3199             /* [in] */ ClassID wrappedClassId,
3200             /* [in] */ REFGUID implementedIID,
3201             /* [in] */ void *pVTable);
3202         
3203         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
3204             ICorProfilerCallback4 * This);
3205         
3206         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
3207             ICorProfilerCallback4 * This);
3208         
3209         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
3210             ICorProfilerCallback4 * This,
3211             /* [in] */ ThreadID threadId,
3212             /* [in] */ ULONG cchName,
3213             /* [annotation][in] */ 
3214             _In_reads_opt_(cchName)  WCHAR name[  ]);
3215         
3216         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
3217             ICorProfilerCallback4 * This,
3218             /* [in] */ int cGenerations,
3219             /* [size_is][in] */ BOOL generationCollected[  ],
3220             /* [in] */ COR_PRF_GC_REASON reason);
3221         
3222         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
3223             ICorProfilerCallback4 * This,
3224             /* [in] */ ULONG cSurvivingObjectIDRanges,
3225             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
3226             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
3227         
3228         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
3229             ICorProfilerCallback4 * This);
3230         
3231         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
3232             ICorProfilerCallback4 * This,
3233             /* [in] */ DWORD finalizerFlags,
3234             /* [in] */ ObjectID objectID);
3235         
3236         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
3237             ICorProfilerCallback4 * This,
3238             /* [in] */ ULONG cRootRefs,
3239             /* [size_is][in] */ ObjectID rootRefIds[  ],
3240             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
3241             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
3242             /* [size_is][in] */ UINT_PTR rootIds[  ]);
3243         
3244         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
3245             ICorProfilerCallback4 * This,
3246             /* [in] */ GCHandleID handleId,
3247             /* [in] */ ObjectID initialObjectId);
3248         
3249         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
3250             ICorProfilerCallback4 * This,
3251             /* [in] */ GCHandleID handleId);
3252         
3253         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
3254             ICorProfilerCallback4 * This,
3255             /* [in] */ IUnknown *pCorProfilerInfoUnk,
3256             /* [in] */ void *pvClientData,
3257             /* [in] */ UINT cbClientData);
3258         
3259         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
3260             ICorProfilerCallback4 * This);
3261         
3262         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
3263             ICorProfilerCallback4 * This);
3264         
3265         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
3266             ICorProfilerCallback4 * This,
3267             /* [in] */ FunctionID functionId,
3268             /* [in] */ ReJITID rejitId,
3269             /* [in] */ BOOL fIsSafeToBlock);
3270         
3271         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
3272             ICorProfilerCallback4 * This,
3273             /* [in] */ ModuleID moduleId,
3274             /* [in] */ mdMethodDef methodId,
3275             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
3276         
3277         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
3278             ICorProfilerCallback4 * This,
3279             /* [in] */ FunctionID functionId,
3280             /* [in] */ ReJITID rejitId,
3281             /* [in] */ HRESULT hrStatus,
3282             /* [in] */ BOOL fIsSafeToBlock);
3283         
3284         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
3285             ICorProfilerCallback4 * This,
3286             /* [in] */ ModuleID moduleId,
3287             /* [in] */ mdMethodDef methodId,
3288             /* [in] */ FunctionID functionId,
3289             /* [in] */ HRESULT hrStatus);
3290         
3291         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
3292             ICorProfilerCallback4 * This,
3293             /* [in] */ ULONG cMovedObjectIDRanges,
3294             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
3295             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
3296             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
3297         
3298         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
3299             ICorProfilerCallback4 * This,
3300             /* [in] */ ULONG cSurvivingObjectIDRanges,
3301             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
3302             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
3303         
3304         END_INTERFACE
3305     } ICorProfilerCallback4Vtbl;
3306
3307     interface ICorProfilerCallback4
3308     {
3309         CONST_VTBL struct ICorProfilerCallback4Vtbl *lpVtbl;
3310     };
3311
3312     
3313
3314 #ifdef COBJMACROS
3315
3316
3317 #define ICorProfilerCallback4_QueryInterface(This,riid,ppvObject)       \
3318     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
3319
3320 #define ICorProfilerCallback4_AddRef(This)      \
3321     ( (This)->lpVtbl -> AddRef(This) ) 
3322
3323 #define ICorProfilerCallback4_Release(This)     \
3324     ( (This)->lpVtbl -> Release(This) ) 
3325
3326
3327 #define ICorProfilerCallback4_Initialize(This,pICorProfilerInfoUnk)     \
3328     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
3329
3330 #define ICorProfilerCallback4_Shutdown(This)    \
3331     ( (This)->lpVtbl -> Shutdown(This) ) 
3332
3333 #define ICorProfilerCallback4_AppDomainCreationStarted(This,appDomainId)        \
3334     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
3335
3336 #define ICorProfilerCallback4_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
3337     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
3338
3339 #define ICorProfilerCallback4_AppDomainShutdownStarted(This,appDomainId)        \
3340     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
3341
3342 #define ICorProfilerCallback4_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
3343     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
3344
3345 #define ICorProfilerCallback4_AssemblyLoadStarted(This,assemblyId)      \
3346     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
3347
3348 #define ICorProfilerCallback4_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
3349     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
3350
3351 #define ICorProfilerCallback4_AssemblyUnloadStarted(This,assemblyId)    \
3352     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
3353
3354 #define ICorProfilerCallback4_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
3355     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
3356
3357 #define ICorProfilerCallback4_ModuleLoadStarted(This,moduleId)  \
3358     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
3359
3360 #define ICorProfilerCallback4_ModuleLoadFinished(This,moduleId,hrStatus)        \
3361     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
3362
3363 #define ICorProfilerCallback4_ModuleUnloadStarted(This,moduleId)        \
3364     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
3365
3366 #define ICorProfilerCallback4_ModuleUnloadFinished(This,moduleId,hrStatus)      \
3367     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
3368
3369 #define ICorProfilerCallback4_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
3370     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
3371
3372 #define ICorProfilerCallback4_ClassLoadStarted(This,classId)    \
3373     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
3374
3375 #define ICorProfilerCallback4_ClassLoadFinished(This,classId,hrStatus)  \
3376     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
3377
3378 #define ICorProfilerCallback4_ClassUnloadStarted(This,classId)  \
3379     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
3380
3381 #define ICorProfilerCallback4_ClassUnloadFinished(This,classId,hrStatus)        \
3382     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
3383
3384 #define ICorProfilerCallback4_FunctionUnloadStarted(This,functionId)    \
3385     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
3386
3387 #define ICorProfilerCallback4_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
3388     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
3389
3390 #define ICorProfilerCallback4_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
3391     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
3392
3393 #define ICorProfilerCallback4_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
3394     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
3395
3396 #define ICorProfilerCallback4_JITCachedFunctionSearchFinished(This,functionId,result)   \
3397     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
3398
3399 #define ICorProfilerCallback4_JITFunctionPitched(This,functionId)       \
3400     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
3401
3402 #define ICorProfilerCallback4_JITInlining(This,callerId,calleeId,pfShouldInline)        \
3403     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
3404
3405 #define ICorProfilerCallback4_ThreadCreated(This,threadId)      \
3406     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
3407
3408 #define ICorProfilerCallback4_ThreadDestroyed(This,threadId)    \
3409     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
3410
3411 #define ICorProfilerCallback4_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
3412     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
3413
3414 #define ICorProfilerCallback4_RemotingClientInvocationStarted(This)     \
3415     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
3416
3417 #define ICorProfilerCallback4_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
3418     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
3419
3420 #define ICorProfilerCallback4_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
3421     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
3422
3423 #define ICorProfilerCallback4_RemotingClientInvocationFinished(This)    \
3424     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
3425
3426 #define ICorProfilerCallback4_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
3427     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
3428
3429 #define ICorProfilerCallback4_RemotingServerInvocationStarted(This)     \
3430     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
3431
3432 #define ICorProfilerCallback4_RemotingServerInvocationReturned(This)    \
3433     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
3434
3435 #define ICorProfilerCallback4_RemotingServerSendingReply(This,pCookie,fIsAsync) \
3436     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
3437
3438 #define ICorProfilerCallback4_UnmanagedToManagedTransition(This,functionId,reason)      \
3439     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
3440
3441 #define ICorProfilerCallback4_ManagedToUnmanagedTransition(This,functionId,reason)      \
3442     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
3443
3444 #define ICorProfilerCallback4_RuntimeSuspendStarted(This,suspendReason) \
3445     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
3446
3447 #define ICorProfilerCallback4_RuntimeSuspendFinished(This)      \
3448     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
3449
3450 #define ICorProfilerCallback4_RuntimeSuspendAborted(This)       \
3451     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
3452
3453 #define ICorProfilerCallback4_RuntimeResumeStarted(This)        \
3454     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
3455
3456 #define ICorProfilerCallback4_RuntimeResumeFinished(This)       \
3457     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
3458
3459 #define ICorProfilerCallback4_RuntimeThreadSuspended(This,threadId)     \
3460     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
3461
3462 #define ICorProfilerCallback4_RuntimeThreadResumed(This,threadId)       \
3463     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
3464
3465 #define ICorProfilerCallback4_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
3466     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
3467
3468 #define ICorProfilerCallback4_ObjectAllocated(This,objectId,classId)    \
3469     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
3470
3471 #define ICorProfilerCallback4_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
3472     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
3473
3474 #define ICorProfilerCallback4_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
3475     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
3476
3477 #define ICorProfilerCallback4_RootReferences(This,cRootRefs,rootRefIds) \
3478     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
3479
3480 #define ICorProfilerCallback4_ExceptionThrown(This,thrownObjectId)      \
3481     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
3482
3483 #define ICorProfilerCallback4_ExceptionSearchFunctionEnter(This,functionId)     \
3484     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
3485
3486 #define ICorProfilerCallback4_ExceptionSearchFunctionLeave(This)        \
3487     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
3488
3489 #define ICorProfilerCallback4_ExceptionSearchFilterEnter(This,functionId)       \
3490     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
3491
3492 #define ICorProfilerCallback4_ExceptionSearchFilterLeave(This)  \
3493     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
3494
3495 #define ICorProfilerCallback4_ExceptionSearchCatcherFound(This,functionId)      \
3496     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
3497
3498 #define ICorProfilerCallback4_ExceptionOSHandlerEnter(This,__unused)    \
3499     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
3500
3501 #define ICorProfilerCallback4_ExceptionOSHandlerLeave(This,__unused)    \
3502     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
3503
3504 #define ICorProfilerCallback4_ExceptionUnwindFunctionEnter(This,functionId)     \
3505     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
3506
3507 #define ICorProfilerCallback4_ExceptionUnwindFunctionLeave(This)        \
3508     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
3509
3510 #define ICorProfilerCallback4_ExceptionUnwindFinallyEnter(This,functionId)      \
3511     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
3512
3513 #define ICorProfilerCallback4_ExceptionUnwindFinallyLeave(This) \
3514     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
3515
3516 #define ICorProfilerCallback4_ExceptionCatcherEnter(This,functionId,objectId)   \
3517     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
3518
3519 #define ICorProfilerCallback4_ExceptionCatcherLeave(This)       \
3520     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
3521
3522 #define ICorProfilerCallback4_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
3523     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
3524
3525 #define ICorProfilerCallback4_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
3526     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
3527
3528 #define ICorProfilerCallback4_ExceptionCLRCatcherFound(This)    \
3529     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
3530
3531 #define ICorProfilerCallback4_ExceptionCLRCatcherExecute(This)  \
3532     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
3533
3534
3535 #define ICorProfilerCallback4_ThreadNameChanged(This,threadId,cchName,name)     \
3536     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
3537
3538 #define ICorProfilerCallback4_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
3539     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
3540
3541 #define ICorProfilerCallback4_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
3542     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
3543
3544 #define ICorProfilerCallback4_GarbageCollectionFinished(This)   \
3545     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
3546
3547 #define ICorProfilerCallback4_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
3548     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
3549
3550 #define ICorProfilerCallback4_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
3551     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
3552
3553 #define ICorProfilerCallback4_HandleCreated(This,handleId,initialObjectId)      \
3554     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
3555
3556 #define ICorProfilerCallback4_HandleDestroyed(This,handleId)    \
3557     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
3558
3559
3560 #define ICorProfilerCallback4_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
3561     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
3562
3563 #define ICorProfilerCallback4_ProfilerAttachComplete(This)      \
3564     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
3565
3566 #define ICorProfilerCallback4_ProfilerDetachSucceeded(This)     \
3567     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
3568
3569
3570 #define ICorProfilerCallback4_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
3571     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
3572
3573 #define ICorProfilerCallback4_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
3574     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
3575
3576 #define ICorProfilerCallback4_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
3577     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
3578
3579 #define ICorProfilerCallback4_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
3580     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
3581
3582 #define ICorProfilerCallback4_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
3583     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
3584
3585 #define ICorProfilerCallback4_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
3586     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
3587
3588 #endif /* COBJMACROS */
3589
3590
3591 #endif  /* C style interface */
3592
3593
3594
3595
3596 #endif  /* __ICorProfilerCallback4_INTERFACE_DEFINED__ */
3597
3598
3599 #ifndef __ICorProfilerCallback5_INTERFACE_DEFINED__
3600 #define __ICorProfilerCallback5_INTERFACE_DEFINED__
3601
3602 /* interface ICorProfilerCallback5 */
3603 /* [local][unique][uuid][object] */ 
3604
3605
3606 EXTERN_C const IID IID_ICorProfilerCallback5;
3607
3608 #if defined(__cplusplus) && !defined(CINTERFACE)
3609     
3610     MIDL_INTERFACE("8DFBA405-8C9F-45F8-BFFA-83B14CEF78B5")
3611     ICorProfilerCallback5 : public ICorProfilerCallback4
3612     {
3613     public:
3614         virtual HRESULT STDMETHODCALLTYPE ConditionalWeakTableElementReferences( 
3615             /* [in] */ ULONG cRootRefs,
3616             /* [size_is][in] */ ObjectID keyRefIds[  ],
3617             /* [size_is][in] */ ObjectID valueRefIds[  ],
3618             /* [size_is][in] */ GCHandleID rootIds[  ]) = 0;
3619         
3620     };
3621     
3622     
3623 #else   /* C style interface */
3624
3625     typedef struct ICorProfilerCallback5Vtbl
3626     {
3627         BEGIN_INTERFACE
3628         
3629         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
3630             ICorProfilerCallback5 * This,
3631             /* [in] */ REFIID riid,
3632             /* [annotation][iid_is][out] */ 
3633             _COM_Outptr_  void **ppvObject);
3634         
3635         ULONG ( STDMETHODCALLTYPE *AddRef )( 
3636             ICorProfilerCallback5 * This);
3637         
3638         ULONG ( STDMETHODCALLTYPE *Release )( 
3639             ICorProfilerCallback5 * This);
3640         
3641         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
3642             ICorProfilerCallback5 * This,
3643             /* [in] */ IUnknown *pICorProfilerInfoUnk);
3644         
3645         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
3646             ICorProfilerCallback5 * This);
3647         
3648         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
3649             ICorProfilerCallback5 * This,
3650             /* [in] */ AppDomainID appDomainId);
3651         
3652         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
3653             ICorProfilerCallback5 * This,
3654             /* [in] */ AppDomainID appDomainId,
3655             /* [in] */ HRESULT hrStatus);
3656         
3657         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
3658             ICorProfilerCallback5 * This,
3659             /* [in] */ AppDomainID appDomainId);
3660         
3661         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
3662             ICorProfilerCallback5 * This,
3663             /* [in] */ AppDomainID appDomainId,
3664             /* [in] */ HRESULT hrStatus);
3665         
3666         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
3667             ICorProfilerCallback5 * This,
3668             /* [in] */ AssemblyID assemblyId);
3669         
3670         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
3671             ICorProfilerCallback5 * This,
3672             /* [in] */ AssemblyID assemblyId,
3673             /* [in] */ HRESULT hrStatus);
3674         
3675         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
3676             ICorProfilerCallback5 * This,
3677             /* [in] */ AssemblyID assemblyId);
3678         
3679         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
3680             ICorProfilerCallback5 * This,
3681             /* [in] */ AssemblyID assemblyId,
3682             /* [in] */ HRESULT hrStatus);
3683         
3684         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
3685             ICorProfilerCallback5 * This,
3686             /* [in] */ ModuleID moduleId);
3687         
3688         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
3689             ICorProfilerCallback5 * This,
3690             /* [in] */ ModuleID moduleId,
3691             /* [in] */ HRESULT hrStatus);
3692         
3693         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
3694             ICorProfilerCallback5 * This,
3695             /* [in] */ ModuleID moduleId);
3696         
3697         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
3698             ICorProfilerCallback5 * This,
3699             /* [in] */ ModuleID moduleId,
3700             /* [in] */ HRESULT hrStatus);
3701         
3702         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
3703             ICorProfilerCallback5 * This,
3704             /* [in] */ ModuleID moduleId,
3705             /* [in] */ AssemblyID AssemblyId);
3706         
3707         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
3708             ICorProfilerCallback5 * This,
3709             /* [in] */ ClassID classId);
3710         
3711         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
3712             ICorProfilerCallback5 * This,
3713             /* [in] */ ClassID classId,
3714             /* [in] */ HRESULT hrStatus);
3715         
3716         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
3717             ICorProfilerCallback5 * This,
3718             /* [in] */ ClassID classId);
3719         
3720         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
3721             ICorProfilerCallback5 * This,
3722             /* [in] */ ClassID classId,
3723             /* [in] */ HRESULT hrStatus);
3724         
3725         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
3726             ICorProfilerCallback5 * This,
3727             /* [in] */ FunctionID functionId);
3728         
3729         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
3730             ICorProfilerCallback5 * This,
3731             /* [in] */ FunctionID functionId,
3732             /* [in] */ BOOL fIsSafeToBlock);
3733         
3734         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
3735             ICorProfilerCallback5 * This,
3736             /* [in] */ FunctionID functionId,
3737             /* [in] */ HRESULT hrStatus,
3738             /* [in] */ BOOL fIsSafeToBlock);
3739         
3740         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
3741             ICorProfilerCallback5 * This,
3742             /* [in] */ FunctionID functionId,
3743             /* [out] */ BOOL *pbUseCachedFunction);
3744         
3745         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
3746             ICorProfilerCallback5 * This,
3747             /* [in] */ FunctionID functionId,
3748             /* [in] */ COR_PRF_JIT_CACHE result);
3749         
3750         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
3751             ICorProfilerCallback5 * This,
3752             /* [in] */ FunctionID functionId);
3753         
3754         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
3755             ICorProfilerCallback5 * This,
3756             /* [in] */ FunctionID callerId,
3757             /* [in] */ FunctionID calleeId,
3758             /* [out] */ BOOL *pfShouldInline);
3759         
3760         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
3761             ICorProfilerCallback5 * This,
3762             /* [in] */ ThreadID threadId);
3763         
3764         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
3765             ICorProfilerCallback5 * This,
3766             /* [in] */ ThreadID threadId);
3767         
3768         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
3769             ICorProfilerCallback5 * This,
3770             /* [in] */ ThreadID managedThreadId,
3771             /* [in] */ DWORD osThreadId);
3772         
3773         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
3774             ICorProfilerCallback5 * This);
3775         
3776         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
3777             ICorProfilerCallback5 * This,
3778             /* [in] */ GUID *pCookie,
3779             /* [in] */ BOOL fIsAsync);
3780         
3781         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
3782             ICorProfilerCallback5 * This,
3783             /* [in] */ GUID *pCookie,
3784             /* [in] */ BOOL fIsAsync);
3785         
3786         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
3787             ICorProfilerCallback5 * This);
3788         
3789         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
3790             ICorProfilerCallback5 * This,
3791             /* [in] */ GUID *pCookie,
3792             /* [in] */ BOOL fIsAsync);
3793         
3794         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
3795             ICorProfilerCallback5 * This);
3796         
3797         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
3798             ICorProfilerCallback5 * This);
3799         
3800         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
3801             ICorProfilerCallback5 * This,
3802             /* [in] */ GUID *pCookie,
3803             /* [in] */ BOOL fIsAsync);
3804         
3805         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
3806             ICorProfilerCallback5 * This,
3807             /* [in] */ FunctionID functionId,
3808             /* [in] */ COR_PRF_TRANSITION_REASON reason);
3809         
3810         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
3811             ICorProfilerCallback5 * This,
3812             /* [in] */ FunctionID functionId,
3813             /* [in] */ COR_PRF_TRANSITION_REASON reason);
3814         
3815         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
3816             ICorProfilerCallback5 * This,
3817             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
3818         
3819         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
3820             ICorProfilerCallback5 * This);
3821         
3822         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
3823             ICorProfilerCallback5 * This);
3824         
3825         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
3826             ICorProfilerCallback5 * This);
3827         
3828         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
3829             ICorProfilerCallback5 * This);
3830         
3831         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
3832             ICorProfilerCallback5 * This,
3833             /* [in] */ ThreadID threadId);
3834         
3835         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
3836             ICorProfilerCallback5 * This,
3837             /* [in] */ ThreadID threadId);
3838         
3839         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
3840             ICorProfilerCallback5 * This,
3841             /* [in] */ ULONG cMovedObjectIDRanges,
3842             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
3843             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
3844             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
3845         
3846         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
3847             ICorProfilerCallback5 * This,
3848             /* [in] */ ObjectID objectId,
3849             /* [in] */ ClassID classId);
3850         
3851         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
3852             ICorProfilerCallback5 * This,
3853             /* [in] */ ULONG cClassCount,
3854             /* [size_is][in] */ ClassID classIds[  ],
3855             /* [size_is][in] */ ULONG cObjects[  ]);
3856         
3857         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
3858             ICorProfilerCallback5 * This,
3859             /* [in] */ ObjectID objectId,
3860             /* [in] */ ClassID classId,
3861             /* [in] */ ULONG cObjectRefs,
3862             /* [size_is][in] */ ObjectID objectRefIds[  ]);
3863         
3864         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
3865             ICorProfilerCallback5 * This,
3866             /* [in] */ ULONG cRootRefs,
3867             /* [size_is][in] */ ObjectID rootRefIds[  ]);
3868         
3869         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
3870             ICorProfilerCallback5 * This,
3871             /* [in] */ ObjectID thrownObjectId);
3872         
3873         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
3874             ICorProfilerCallback5 * This,
3875             /* [in] */ FunctionID functionId);
3876         
3877         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
3878             ICorProfilerCallback5 * This);
3879         
3880         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
3881             ICorProfilerCallback5 * This,
3882             /* [in] */ FunctionID functionId);
3883         
3884         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
3885             ICorProfilerCallback5 * This);
3886         
3887         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
3888             ICorProfilerCallback5 * This,
3889             /* [in] */ FunctionID functionId);
3890         
3891         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
3892             ICorProfilerCallback5 * This,
3893             /* [in] */ UINT_PTR __unused);
3894         
3895         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
3896             ICorProfilerCallback5 * This,
3897             /* [in] */ UINT_PTR __unused);
3898         
3899         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
3900             ICorProfilerCallback5 * This,
3901             /* [in] */ FunctionID functionId);
3902         
3903         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
3904             ICorProfilerCallback5 * This);
3905         
3906         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
3907             ICorProfilerCallback5 * This,
3908             /* [in] */ FunctionID functionId);
3909         
3910         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
3911             ICorProfilerCallback5 * This);
3912         
3913         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
3914             ICorProfilerCallback5 * This,
3915             /* [in] */ FunctionID functionId,
3916             /* [in] */ ObjectID objectId);
3917         
3918         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
3919             ICorProfilerCallback5 * This);
3920         
3921         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
3922             ICorProfilerCallback5 * This,
3923             /* [in] */ ClassID wrappedClassId,
3924             /* [in] */ REFGUID implementedIID,
3925             /* [in] */ void *pVTable,
3926             /* [in] */ ULONG cSlots);
3927         
3928         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
3929             ICorProfilerCallback5 * This,
3930             /* [in] */ ClassID wrappedClassId,
3931             /* [in] */ REFGUID implementedIID,
3932             /* [in] */ void *pVTable);
3933         
3934         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
3935             ICorProfilerCallback5 * This);
3936         
3937         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
3938             ICorProfilerCallback5 * This);
3939         
3940         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
3941             ICorProfilerCallback5 * This,
3942             /* [in] */ ThreadID threadId,
3943             /* [in] */ ULONG cchName,
3944             /* [annotation][in] */ 
3945             _In_reads_opt_(cchName)  WCHAR name[  ]);
3946         
3947         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
3948             ICorProfilerCallback5 * This,
3949             /* [in] */ int cGenerations,
3950             /* [size_is][in] */ BOOL generationCollected[  ],
3951             /* [in] */ COR_PRF_GC_REASON reason);
3952         
3953         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
3954             ICorProfilerCallback5 * This,
3955             /* [in] */ ULONG cSurvivingObjectIDRanges,
3956             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
3957             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
3958         
3959         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
3960             ICorProfilerCallback5 * This);
3961         
3962         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
3963             ICorProfilerCallback5 * This,
3964             /* [in] */ DWORD finalizerFlags,
3965             /* [in] */ ObjectID objectID);
3966         
3967         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
3968             ICorProfilerCallback5 * This,
3969             /* [in] */ ULONG cRootRefs,
3970             /* [size_is][in] */ ObjectID rootRefIds[  ],
3971             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
3972             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
3973             /* [size_is][in] */ UINT_PTR rootIds[  ]);
3974         
3975         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
3976             ICorProfilerCallback5 * This,
3977             /* [in] */ GCHandleID handleId,
3978             /* [in] */ ObjectID initialObjectId);
3979         
3980         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
3981             ICorProfilerCallback5 * This,
3982             /* [in] */ GCHandleID handleId);
3983         
3984         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
3985             ICorProfilerCallback5 * This,
3986             /* [in] */ IUnknown *pCorProfilerInfoUnk,
3987             /* [in] */ void *pvClientData,
3988             /* [in] */ UINT cbClientData);
3989         
3990         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
3991             ICorProfilerCallback5 * This);
3992         
3993         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
3994             ICorProfilerCallback5 * This);
3995         
3996         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
3997             ICorProfilerCallback5 * This,
3998             /* [in] */ FunctionID functionId,
3999             /* [in] */ ReJITID rejitId,
4000             /* [in] */ BOOL fIsSafeToBlock);
4001         
4002         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
4003             ICorProfilerCallback5 * This,
4004             /* [in] */ ModuleID moduleId,
4005             /* [in] */ mdMethodDef methodId,
4006             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4007         
4008         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
4009             ICorProfilerCallback5 * This,
4010             /* [in] */ FunctionID functionId,
4011             /* [in] */ ReJITID rejitId,
4012             /* [in] */ HRESULT hrStatus,
4013             /* [in] */ BOOL fIsSafeToBlock);
4014         
4015         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
4016             ICorProfilerCallback5 * This,
4017             /* [in] */ ModuleID moduleId,
4018             /* [in] */ mdMethodDef methodId,
4019             /* [in] */ FunctionID functionId,
4020             /* [in] */ HRESULT hrStatus);
4021         
4022         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
4023             ICorProfilerCallback5 * This,
4024             /* [in] */ ULONG cMovedObjectIDRanges,
4025             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
4026             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
4027             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
4028         
4029         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
4030             ICorProfilerCallback5 * This,
4031             /* [in] */ ULONG cSurvivingObjectIDRanges,
4032             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
4033             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
4034         
4035         HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )( 
4036             ICorProfilerCallback5 * This,
4037             /* [in] */ ULONG cRootRefs,
4038             /* [size_is][in] */ ObjectID keyRefIds[  ],
4039             /* [size_is][in] */ ObjectID valueRefIds[  ],
4040             /* [size_is][in] */ GCHandleID rootIds[  ]);
4041         
4042         END_INTERFACE
4043     } ICorProfilerCallback5Vtbl;
4044
4045     interface ICorProfilerCallback5
4046     {
4047         CONST_VTBL struct ICorProfilerCallback5Vtbl *lpVtbl;
4048     };
4049
4050     
4051
4052 #ifdef COBJMACROS
4053
4054
4055 #define ICorProfilerCallback5_QueryInterface(This,riid,ppvObject)       \
4056     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4057
4058 #define ICorProfilerCallback5_AddRef(This)      \
4059     ( (This)->lpVtbl -> AddRef(This) ) 
4060
4061 #define ICorProfilerCallback5_Release(This)     \
4062     ( (This)->lpVtbl -> Release(This) ) 
4063
4064
4065 #define ICorProfilerCallback5_Initialize(This,pICorProfilerInfoUnk)     \
4066     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
4067
4068 #define ICorProfilerCallback5_Shutdown(This)    \
4069     ( (This)->lpVtbl -> Shutdown(This) ) 
4070
4071 #define ICorProfilerCallback5_AppDomainCreationStarted(This,appDomainId)        \
4072     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
4073
4074 #define ICorProfilerCallback5_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
4075     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
4076
4077 #define ICorProfilerCallback5_AppDomainShutdownStarted(This,appDomainId)        \
4078     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
4079
4080 #define ICorProfilerCallback5_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
4081     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
4082
4083 #define ICorProfilerCallback5_AssemblyLoadStarted(This,assemblyId)      \
4084     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
4085
4086 #define ICorProfilerCallback5_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
4087     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
4088
4089 #define ICorProfilerCallback5_AssemblyUnloadStarted(This,assemblyId)    \
4090     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
4091
4092 #define ICorProfilerCallback5_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
4093     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
4094
4095 #define ICorProfilerCallback5_ModuleLoadStarted(This,moduleId)  \
4096     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
4097
4098 #define ICorProfilerCallback5_ModuleLoadFinished(This,moduleId,hrStatus)        \
4099     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
4100
4101 #define ICorProfilerCallback5_ModuleUnloadStarted(This,moduleId)        \
4102     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
4103
4104 #define ICorProfilerCallback5_ModuleUnloadFinished(This,moduleId,hrStatus)      \
4105     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
4106
4107 #define ICorProfilerCallback5_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
4108     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
4109
4110 #define ICorProfilerCallback5_ClassLoadStarted(This,classId)    \
4111     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
4112
4113 #define ICorProfilerCallback5_ClassLoadFinished(This,classId,hrStatus)  \
4114     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
4115
4116 #define ICorProfilerCallback5_ClassUnloadStarted(This,classId)  \
4117     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
4118
4119 #define ICorProfilerCallback5_ClassUnloadFinished(This,classId,hrStatus)        \
4120     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
4121
4122 #define ICorProfilerCallback5_FunctionUnloadStarted(This,functionId)    \
4123     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
4124
4125 #define ICorProfilerCallback5_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
4126     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
4127
4128 #define ICorProfilerCallback5_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
4129     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
4130
4131 #define ICorProfilerCallback5_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
4132     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
4133
4134 #define ICorProfilerCallback5_JITCachedFunctionSearchFinished(This,functionId,result)   \
4135     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
4136
4137 #define ICorProfilerCallback5_JITFunctionPitched(This,functionId)       \
4138     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
4139
4140 #define ICorProfilerCallback5_JITInlining(This,callerId,calleeId,pfShouldInline)        \
4141     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
4142
4143 #define ICorProfilerCallback5_ThreadCreated(This,threadId)      \
4144     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
4145
4146 #define ICorProfilerCallback5_ThreadDestroyed(This,threadId)    \
4147     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
4148
4149 #define ICorProfilerCallback5_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4150     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
4151
4152 #define ICorProfilerCallback5_RemotingClientInvocationStarted(This)     \
4153     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
4154
4155 #define ICorProfilerCallback5_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
4156     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
4157
4158 #define ICorProfilerCallback5_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
4159     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
4160
4161 #define ICorProfilerCallback5_RemotingClientInvocationFinished(This)    \
4162     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
4163
4164 #define ICorProfilerCallback5_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
4165     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
4166
4167 #define ICorProfilerCallback5_RemotingServerInvocationStarted(This)     \
4168     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
4169
4170 #define ICorProfilerCallback5_RemotingServerInvocationReturned(This)    \
4171     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
4172
4173 #define ICorProfilerCallback5_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4174     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
4175
4176 #define ICorProfilerCallback5_UnmanagedToManagedTransition(This,functionId,reason)      \
4177     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
4178
4179 #define ICorProfilerCallback5_ManagedToUnmanagedTransition(This,functionId,reason)      \
4180     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
4181
4182 #define ICorProfilerCallback5_RuntimeSuspendStarted(This,suspendReason) \
4183     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
4184
4185 #define ICorProfilerCallback5_RuntimeSuspendFinished(This)      \
4186     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
4187
4188 #define ICorProfilerCallback5_RuntimeSuspendAborted(This)       \
4189     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
4190
4191 #define ICorProfilerCallback5_RuntimeResumeStarted(This)        \
4192     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
4193
4194 #define ICorProfilerCallback5_RuntimeResumeFinished(This)       \
4195     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
4196
4197 #define ICorProfilerCallback5_RuntimeThreadSuspended(This,threadId)     \
4198     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
4199
4200 #define ICorProfilerCallback5_RuntimeThreadResumed(This,threadId)       \
4201     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
4202
4203 #define ICorProfilerCallback5_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
4204     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
4205
4206 #define ICorProfilerCallback5_ObjectAllocated(This,objectId,classId)    \
4207     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
4208
4209 #define ICorProfilerCallback5_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
4210     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
4211
4212 #define ICorProfilerCallback5_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
4213     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
4214
4215 #define ICorProfilerCallback5_RootReferences(This,cRootRefs,rootRefIds) \
4216     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
4217
4218 #define ICorProfilerCallback5_ExceptionThrown(This,thrownObjectId)      \
4219     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
4220
4221 #define ICorProfilerCallback5_ExceptionSearchFunctionEnter(This,functionId)     \
4222     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
4223
4224 #define ICorProfilerCallback5_ExceptionSearchFunctionLeave(This)        \
4225     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
4226
4227 #define ICorProfilerCallback5_ExceptionSearchFilterEnter(This,functionId)       \
4228     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
4229
4230 #define ICorProfilerCallback5_ExceptionSearchFilterLeave(This)  \
4231     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
4232
4233 #define ICorProfilerCallback5_ExceptionSearchCatcherFound(This,functionId)      \
4234     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
4235
4236 #define ICorProfilerCallback5_ExceptionOSHandlerEnter(This,__unused)    \
4237     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
4238
4239 #define ICorProfilerCallback5_ExceptionOSHandlerLeave(This,__unused)    \
4240     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
4241
4242 #define ICorProfilerCallback5_ExceptionUnwindFunctionEnter(This,functionId)     \
4243     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
4244
4245 #define ICorProfilerCallback5_ExceptionUnwindFunctionLeave(This)        \
4246     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
4247
4248 #define ICorProfilerCallback5_ExceptionUnwindFinallyEnter(This,functionId)      \
4249     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
4250
4251 #define ICorProfilerCallback5_ExceptionUnwindFinallyLeave(This) \
4252     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
4253
4254 #define ICorProfilerCallback5_ExceptionCatcherEnter(This,functionId,objectId)   \
4255     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
4256
4257 #define ICorProfilerCallback5_ExceptionCatcherLeave(This)       \
4258     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
4259
4260 #define ICorProfilerCallback5_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
4261     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
4262
4263 #define ICorProfilerCallback5_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
4264     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
4265
4266 #define ICorProfilerCallback5_ExceptionCLRCatcherFound(This)    \
4267     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
4268
4269 #define ICorProfilerCallback5_ExceptionCLRCatcherExecute(This)  \
4270     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
4271
4272
4273 #define ICorProfilerCallback5_ThreadNameChanged(This,threadId,cchName,name)     \
4274     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
4275
4276 #define ICorProfilerCallback5_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
4277     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
4278
4279 #define ICorProfilerCallback5_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
4280     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
4281
4282 #define ICorProfilerCallback5_GarbageCollectionFinished(This)   \
4283     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
4284
4285 #define ICorProfilerCallback5_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
4286     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
4287
4288 #define ICorProfilerCallback5_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
4289     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
4290
4291 #define ICorProfilerCallback5_HandleCreated(This,handleId,initialObjectId)      \
4292     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
4293
4294 #define ICorProfilerCallback5_HandleDestroyed(This,handleId)    \
4295     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
4296
4297
4298 #define ICorProfilerCallback5_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
4299     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
4300
4301 #define ICorProfilerCallback5_ProfilerAttachComplete(This)      \
4302     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
4303
4304 #define ICorProfilerCallback5_ProfilerDetachSucceeded(This)     \
4305     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
4306
4307
4308 #define ICorProfilerCallback5_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
4309     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
4310
4311 #define ICorProfilerCallback5_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
4312     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
4313
4314 #define ICorProfilerCallback5_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
4315     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
4316
4317 #define ICorProfilerCallback5_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
4318     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
4319
4320 #define ICorProfilerCallback5_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
4321     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
4322
4323 #define ICorProfilerCallback5_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
4324     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
4325
4326
4327 #define ICorProfilerCallback5_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds)       \
4328     ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) 
4329
4330 #endif /* COBJMACROS */
4331
4332
4333 #endif  /* C style interface */
4334
4335
4336
4337
4338 #endif  /* __ICorProfilerCallback5_INTERFACE_DEFINED__ */
4339
4340
4341 #ifndef __ICorProfilerCallback6_INTERFACE_DEFINED__
4342 #define __ICorProfilerCallback6_INTERFACE_DEFINED__
4343
4344 /* interface ICorProfilerCallback6 */
4345 /* [local][unique][uuid][object] */ 
4346
4347
4348 EXTERN_C const IID IID_ICorProfilerCallback6;
4349
4350 #if defined(__cplusplus) && !defined(CINTERFACE)
4351     
4352     MIDL_INTERFACE("FC13DF4B-4448-4F4F-950C-BA8D19D00C36")
4353     ICorProfilerCallback6 : public ICorProfilerCallback5
4354     {
4355     public:
4356         virtual HRESULT STDMETHODCALLTYPE GetAssemblyReferences( 
4357             /* [string][in] */ const WCHAR *wszAssemblyPath,
4358             /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider) = 0;
4359         
4360     };
4361     
4362     
4363 #else   /* C style interface */
4364
4365     typedef struct ICorProfilerCallback6Vtbl
4366     {
4367         BEGIN_INTERFACE
4368         
4369         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
4370             ICorProfilerCallback6 * This,
4371             /* [in] */ REFIID riid,
4372             /* [annotation][iid_is][out] */ 
4373             _COM_Outptr_  void **ppvObject);
4374         
4375         ULONG ( STDMETHODCALLTYPE *AddRef )( 
4376             ICorProfilerCallback6 * This);
4377         
4378         ULONG ( STDMETHODCALLTYPE *Release )( 
4379             ICorProfilerCallback6 * This);
4380         
4381         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
4382             ICorProfilerCallback6 * This,
4383             /* [in] */ IUnknown *pICorProfilerInfoUnk);
4384         
4385         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
4386             ICorProfilerCallback6 * This);
4387         
4388         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
4389             ICorProfilerCallback6 * This,
4390             /* [in] */ AppDomainID appDomainId);
4391         
4392         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
4393             ICorProfilerCallback6 * This,
4394             /* [in] */ AppDomainID appDomainId,
4395             /* [in] */ HRESULT hrStatus);
4396         
4397         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
4398             ICorProfilerCallback6 * This,
4399             /* [in] */ AppDomainID appDomainId);
4400         
4401         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
4402             ICorProfilerCallback6 * This,
4403             /* [in] */ AppDomainID appDomainId,
4404             /* [in] */ HRESULT hrStatus);
4405         
4406         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
4407             ICorProfilerCallback6 * This,
4408             /* [in] */ AssemblyID assemblyId);
4409         
4410         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
4411             ICorProfilerCallback6 * This,
4412             /* [in] */ AssemblyID assemblyId,
4413             /* [in] */ HRESULT hrStatus);
4414         
4415         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
4416             ICorProfilerCallback6 * This,
4417             /* [in] */ AssemblyID assemblyId);
4418         
4419         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
4420             ICorProfilerCallback6 * This,
4421             /* [in] */ AssemblyID assemblyId,
4422             /* [in] */ HRESULT hrStatus);
4423         
4424         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
4425             ICorProfilerCallback6 * This,
4426             /* [in] */ ModuleID moduleId);
4427         
4428         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
4429             ICorProfilerCallback6 * This,
4430             /* [in] */ ModuleID moduleId,
4431             /* [in] */ HRESULT hrStatus);
4432         
4433         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
4434             ICorProfilerCallback6 * This,
4435             /* [in] */ ModuleID moduleId);
4436         
4437         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
4438             ICorProfilerCallback6 * This,
4439             /* [in] */ ModuleID moduleId,
4440             /* [in] */ HRESULT hrStatus);
4441         
4442         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
4443             ICorProfilerCallback6 * This,
4444             /* [in] */ ModuleID moduleId,
4445             /* [in] */ AssemblyID AssemblyId);
4446         
4447         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
4448             ICorProfilerCallback6 * This,
4449             /* [in] */ ClassID classId);
4450         
4451         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
4452             ICorProfilerCallback6 * This,
4453             /* [in] */ ClassID classId,
4454             /* [in] */ HRESULT hrStatus);
4455         
4456         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
4457             ICorProfilerCallback6 * This,
4458             /* [in] */ ClassID classId);
4459         
4460         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
4461             ICorProfilerCallback6 * This,
4462             /* [in] */ ClassID classId,
4463             /* [in] */ HRESULT hrStatus);
4464         
4465         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
4466             ICorProfilerCallback6 * This,
4467             /* [in] */ FunctionID functionId);
4468         
4469         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
4470             ICorProfilerCallback6 * This,
4471             /* [in] */ FunctionID functionId,
4472             /* [in] */ BOOL fIsSafeToBlock);
4473         
4474         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
4475             ICorProfilerCallback6 * This,
4476             /* [in] */ FunctionID functionId,
4477             /* [in] */ HRESULT hrStatus,
4478             /* [in] */ BOOL fIsSafeToBlock);
4479         
4480         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
4481             ICorProfilerCallback6 * This,
4482             /* [in] */ FunctionID functionId,
4483             /* [out] */ BOOL *pbUseCachedFunction);
4484         
4485         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
4486             ICorProfilerCallback6 * This,
4487             /* [in] */ FunctionID functionId,
4488             /* [in] */ COR_PRF_JIT_CACHE result);
4489         
4490         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
4491             ICorProfilerCallback6 * This,
4492             /* [in] */ FunctionID functionId);
4493         
4494         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
4495             ICorProfilerCallback6 * This,
4496             /* [in] */ FunctionID callerId,
4497             /* [in] */ FunctionID calleeId,
4498             /* [out] */ BOOL *pfShouldInline);
4499         
4500         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
4501             ICorProfilerCallback6 * This,
4502             /* [in] */ ThreadID threadId);
4503         
4504         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
4505             ICorProfilerCallback6 * This,
4506             /* [in] */ ThreadID threadId);
4507         
4508         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
4509             ICorProfilerCallback6 * This,
4510             /* [in] */ ThreadID managedThreadId,
4511             /* [in] */ DWORD osThreadId);
4512         
4513         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
4514             ICorProfilerCallback6 * This);
4515         
4516         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
4517             ICorProfilerCallback6 * This,
4518             /* [in] */ GUID *pCookie,
4519             /* [in] */ BOOL fIsAsync);
4520         
4521         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
4522             ICorProfilerCallback6 * This,
4523             /* [in] */ GUID *pCookie,
4524             /* [in] */ BOOL fIsAsync);
4525         
4526         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
4527             ICorProfilerCallback6 * This);
4528         
4529         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
4530             ICorProfilerCallback6 * This,
4531             /* [in] */ GUID *pCookie,
4532             /* [in] */ BOOL fIsAsync);
4533         
4534         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
4535             ICorProfilerCallback6 * This);
4536         
4537         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
4538             ICorProfilerCallback6 * This);
4539         
4540         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
4541             ICorProfilerCallback6 * This,
4542             /* [in] */ GUID *pCookie,
4543             /* [in] */ BOOL fIsAsync);
4544         
4545         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
4546             ICorProfilerCallback6 * This,
4547             /* [in] */ FunctionID functionId,
4548             /* [in] */ COR_PRF_TRANSITION_REASON reason);
4549         
4550         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
4551             ICorProfilerCallback6 * This,
4552             /* [in] */ FunctionID functionId,
4553             /* [in] */ COR_PRF_TRANSITION_REASON reason);
4554         
4555         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
4556             ICorProfilerCallback6 * This,
4557             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
4558         
4559         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
4560             ICorProfilerCallback6 * This);
4561         
4562         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
4563             ICorProfilerCallback6 * This);
4564         
4565         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
4566             ICorProfilerCallback6 * This);
4567         
4568         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
4569             ICorProfilerCallback6 * This);
4570         
4571         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
4572             ICorProfilerCallback6 * This,
4573             /* [in] */ ThreadID threadId);
4574         
4575         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
4576             ICorProfilerCallback6 * This,
4577             /* [in] */ ThreadID threadId);
4578         
4579         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
4580             ICorProfilerCallback6 * This,
4581             /* [in] */ ULONG cMovedObjectIDRanges,
4582             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
4583             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
4584             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
4585         
4586         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
4587             ICorProfilerCallback6 * This,
4588             /* [in] */ ObjectID objectId,
4589             /* [in] */ ClassID classId);
4590         
4591         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
4592             ICorProfilerCallback6 * This,
4593             /* [in] */ ULONG cClassCount,
4594             /* [size_is][in] */ ClassID classIds[  ],
4595             /* [size_is][in] */ ULONG cObjects[  ]);
4596         
4597         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
4598             ICorProfilerCallback6 * This,
4599             /* [in] */ ObjectID objectId,
4600             /* [in] */ ClassID classId,
4601             /* [in] */ ULONG cObjectRefs,
4602             /* [size_is][in] */ ObjectID objectRefIds[  ]);
4603         
4604         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
4605             ICorProfilerCallback6 * This,
4606             /* [in] */ ULONG cRootRefs,
4607             /* [size_is][in] */ ObjectID rootRefIds[  ]);
4608         
4609         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
4610             ICorProfilerCallback6 * This,
4611             /* [in] */ ObjectID thrownObjectId);
4612         
4613         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
4614             ICorProfilerCallback6 * This,
4615             /* [in] */ FunctionID functionId);
4616         
4617         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
4618             ICorProfilerCallback6 * This);
4619         
4620         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
4621             ICorProfilerCallback6 * This,
4622             /* [in] */ FunctionID functionId);
4623         
4624         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
4625             ICorProfilerCallback6 * This);
4626         
4627         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
4628             ICorProfilerCallback6 * This,
4629             /* [in] */ FunctionID functionId);
4630         
4631         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
4632             ICorProfilerCallback6 * This,
4633             /* [in] */ UINT_PTR __unused);
4634         
4635         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
4636             ICorProfilerCallback6 * This,
4637             /* [in] */ UINT_PTR __unused);
4638         
4639         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
4640             ICorProfilerCallback6 * This,
4641             /* [in] */ FunctionID functionId);
4642         
4643         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
4644             ICorProfilerCallback6 * This);
4645         
4646         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
4647             ICorProfilerCallback6 * This,
4648             /* [in] */ FunctionID functionId);
4649         
4650         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
4651             ICorProfilerCallback6 * This);
4652         
4653         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
4654             ICorProfilerCallback6 * This,
4655             /* [in] */ FunctionID functionId,
4656             /* [in] */ ObjectID objectId);
4657         
4658         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
4659             ICorProfilerCallback6 * This);
4660         
4661         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
4662             ICorProfilerCallback6 * This,
4663             /* [in] */ ClassID wrappedClassId,
4664             /* [in] */ REFGUID implementedIID,
4665             /* [in] */ void *pVTable,
4666             /* [in] */ ULONG cSlots);
4667         
4668         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
4669             ICorProfilerCallback6 * This,
4670             /* [in] */ ClassID wrappedClassId,
4671             /* [in] */ REFGUID implementedIID,
4672             /* [in] */ void *pVTable);
4673         
4674         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
4675             ICorProfilerCallback6 * This);
4676         
4677         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
4678             ICorProfilerCallback6 * This);
4679         
4680         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
4681             ICorProfilerCallback6 * This,
4682             /* [in] */ ThreadID threadId,
4683             /* [in] */ ULONG cchName,
4684             /* [annotation][in] */ 
4685             _In_reads_opt_(cchName)  WCHAR name[  ]);
4686         
4687         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
4688             ICorProfilerCallback6 * This,
4689             /* [in] */ int cGenerations,
4690             /* [size_is][in] */ BOOL generationCollected[  ],
4691             /* [in] */ COR_PRF_GC_REASON reason);
4692         
4693         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
4694             ICorProfilerCallback6 * This,
4695             /* [in] */ ULONG cSurvivingObjectIDRanges,
4696             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
4697             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
4698         
4699         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
4700             ICorProfilerCallback6 * This);
4701         
4702         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
4703             ICorProfilerCallback6 * This,
4704             /* [in] */ DWORD finalizerFlags,
4705             /* [in] */ ObjectID objectID);
4706         
4707         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
4708             ICorProfilerCallback6 * This,
4709             /* [in] */ ULONG cRootRefs,
4710             /* [size_is][in] */ ObjectID rootRefIds[  ],
4711             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
4712             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
4713             /* [size_is][in] */ UINT_PTR rootIds[  ]);
4714         
4715         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
4716             ICorProfilerCallback6 * This,
4717             /* [in] */ GCHandleID handleId,
4718             /* [in] */ ObjectID initialObjectId);
4719         
4720         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
4721             ICorProfilerCallback6 * This,
4722             /* [in] */ GCHandleID handleId);
4723         
4724         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
4725             ICorProfilerCallback6 * This,
4726             /* [in] */ IUnknown *pCorProfilerInfoUnk,
4727             /* [in] */ void *pvClientData,
4728             /* [in] */ UINT cbClientData);
4729         
4730         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
4731             ICorProfilerCallback6 * This);
4732         
4733         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
4734             ICorProfilerCallback6 * This);
4735         
4736         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
4737             ICorProfilerCallback6 * This,
4738             /* [in] */ FunctionID functionId,
4739             /* [in] */ ReJITID rejitId,
4740             /* [in] */ BOOL fIsSafeToBlock);
4741         
4742         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
4743             ICorProfilerCallback6 * This,
4744             /* [in] */ ModuleID moduleId,
4745             /* [in] */ mdMethodDef methodId,
4746             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
4747         
4748         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
4749             ICorProfilerCallback6 * This,
4750             /* [in] */ FunctionID functionId,
4751             /* [in] */ ReJITID rejitId,
4752             /* [in] */ HRESULT hrStatus,
4753             /* [in] */ BOOL fIsSafeToBlock);
4754         
4755         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
4756             ICorProfilerCallback6 * This,
4757             /* [in] */ ModuleID moduleId,
4758             /* [in] */ mdMethodDef methodId,
4759             /* [in] */ FunctionID functionId,
4760             /* [in] */ HRESULT hrStatus);
4761         
4762         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
4763             ICorProfilerCallback6 * This,
4764             /* [in] */ ULONG cMovedObjectIDRanges,
4765             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
4766             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
4767             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
4768         
4769         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
4770             ICorProfilerCallback6 * This,
4771             /* [in] */ ULONG cSurvivingObjectIDRanges,
4772             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
4773             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
4774         
4775         HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )( 
4776             ICorProfilerCallback6 * This,
4777             /* [in] */ ULONG cRootRefs,
4778             /* [size_is][in] */ ObjectID keyRefIds[  ],
4779             /* [size_is][in] */ ObjectID valueRefIds[  ],
4780             /* [size_is][in] */ GCHandleID rootIds[  ]);
4781         
4782         HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )( 
4783             ICorProfilerCallback6 * This,
4784             /* [string][in] */ const WCHAR *wszAssemblyPath,
4785             /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
4786         
4787         END_INTERFACE
4788     } ICorProfilerCallback6Vtbl;
4789
4790     interface ICorProfilerCallback6
4791     {
4792         CONST_VTBL struct ICorProfilerCallback6Vtbl *lpVtbl;
4793     };
4794
4795     
4796
4797 #ifdef COBJMACROS
4798
4799
4800 #define ICorProfilerCallback6_QueryInterface(This,riid,ppvObject)       \
4801     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
4802
4803 #define ICorProfilerCallback6_AddRef(This)      \
4804     ( (This)->lpVtbl -> AddRef(This) ) 
4805
4806 #define ICorProfilerCallback6_Release(This)     \
4807     ( (This)->lpVtbl -> Release(This) ) 
4808
4809
4810 #define ICorProfilerCallback6_Initialize(This,pICorProfilerInfoUnk)     \
4811     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
4812
4813 #define ICorProfilerCallback6_Shutdown(This)    \
4814     ( (This)->lpVtbl -> Shutdown(This) ) 
4815
4816 #define ICorProfilerCallback6_AppDomainCreationStarted(This,appDomainId)        \
4817     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
4818
4819 #define ICorProfilerCallback6_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
4820     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
4821
4822 #define ICorProfilerCallback6_AppDomainShutdownStarted(This,appDomainId)        \
4823     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
4824
4825 #define ICorProfilerCallback6_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
4826     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
4827
4828 #define ICorProfilerCallback6_AssemblyLoadStarted(This,assemblyId)      \
4829     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
4830
4831 #define ICorProfilerCallback6_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
4832     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
4833
4834 #define ICorProfilerCallback6_AssemblyUnloadStarted(This,assemblyId)    \
4835     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
4836
4837 #define ICorProfilerCallback6_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
4838     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
4839
4840 #define ICorProfilerCallback6_ModuleLoadStarted(This,moduleId)  \
4841     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
4842
4843 #define ICorProfilerCallback6_ModuleLoadFinished(This,moduleId,hrStatus)        \
4844     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
4845
4846 #define ICorProfilerCallback6_ModuleUnloadStarted(This,moduleId)        \
4847     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
4848
4849 #define ICorProfilerCallback6_ModuleUnloadFinished(This,moduleId,hrStatus)      \
4850     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
4851
4852 #define ICorProfilerCallback6_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
4853     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
4854
4855 #define ICorProfilerCallback6_ClassLoadStarted(This,classId)    \
4856     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
4857
4858 #define ICorProfilerCallback6_ClassLoadFinished(This,classId,hrStatus)  \
4859     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
4860
4861 #define ICorProfilerCallback6_ClassUnloadStarted(This,classId)  \
4862     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
4863
4864 #define ICorProfilerCallback6_ClassUnloadFinished(This,classId,hrStatus)        \
4865     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
4866
4867 #define ICorProfilerCallback6_FunctionUnloadStarted(This,functionId)    \
4868     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
4869
4870 #define ICorProfilerCallback6_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
4871     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
4872
4873 #define ICorProfilerCallback6_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
4874     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
4875
4876 #define ICorProfilerCallback6_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
4877     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
4878
4879 #define ICorProfilerCallback6_JITCachedFunctionSearchFinished(This,functionId,result)   \
4880     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
4881
4882 #define ICorProfilerCallback6_JITFunctionPitched(This,functionId)       \
4883     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
4884
4885 #define ICorProfilerCallback6_JITInlining(This,callerId,calleeId,pfShouldInline)        \
4886     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
4887
4888 #define ICorProfilerCallback6_ThreadCreated(This,threadId)      \
4889     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
4890
4891 #define ICorProfilerCallback6_ThreadDestroyed(This,threadId)    \
4892     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
4893
4894 #define ICorProfilerCallback6_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
4895     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
4896
4897 #define ICorProfilerCallback6_RemotingClientInvocationStarted(This)     \
4898     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
4899
4900 #define ICorProfilerCallback6_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
4901     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
4902
4903 #define ICorProfilerCallback6_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
4904     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
4905
4906 #define ICorProfilerCallback6_RemotingClientInvocationFinished(This)    \
4907     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
4908
4909 #define ICorProfilerCallback6_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
4910     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
4911
4912 #define ICorProfilerCallback6_RemotingServerInvocationStarted(This)     \
4913     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
4914
4915 #define ICorProfilerCallback6_RemotingServerInvocationReturned(This)    \
4916     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
4917
4918 #define ICorProfilerCallback6_RemotingServerSendingReply(This,pCookie,fIsAsync) \
4919     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
4920
4921 #define ICorProfilerCallback6_UnmanagedToManagedTransition(This,functionId,reason)      \
4922     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
4923
4924 #define ICorProfilerCallback6_ManagedToUnmanagedTransition(This,functionId,reason)      \
4925     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
4926
4927 #define ICorProfilerCallback6_RuntimeSuspendStarted(This,suspendReason) \
4928     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
4929
4930 #define ICorProfilerCallback6_RuntimeSuspendFinished(This)      \
4931     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
4932
4933 #define ICorProfilerCallback6_RuntimeSuspendAborted(This)       \
4934     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
4935
4936 #define ICorProfilerCallback6_RuntimeResumeStarted(This)        \
4937     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
4938
4939 #define ICorProfilerCallback6_RuntimeResumeFinished(This)       \
4940     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
4941
4942 #define ICorProfilerCallback6_RuntimeThreadSuspended(This,threadId)     \
4943     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
4944
4945 #define ICorProfilerCallback6_RuntimeThreadResumed(This,threadId)       \
4946     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
4947
4948 #define ICorProfilerCallback6_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
4949     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
4950
4951 #define ICorProfilerCallback6_ObjectAllocated(This,objectId,classId)    \
4952     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
4953
4954 #define ICorProfilerCallback6_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
4955     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
4956
4957 #define ICorProfilerCallback6_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
4958     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
4959
4960 #define ICorProfilerCallback6_RootReferences(This,cRootRefs,rootRefIds) \
4961     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
4962
4963 #define ICorProfilerCallback6_ExceptionThrown(This,thrownObjectId)      \
4964     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
4965
4966 #define ICorProfilerCallback6_ExceptionSearchFunctionEnter(This,functionId)     \
4967     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
4968
4969 #define ICorProfilerCallback6_ExceptionSearchFunctionLeave(This)        \
4970     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
4971
4972 #define ICorProfilerCallback6_ExceptionSearchFilterEnter(This,functionId)       \
4973     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
4974
4975 #define ICorProfilerCallback6_ExceptionSearchFilterLeave(This)  \
4976     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
4977
4978 #define ICorProfilerCallback6_ExceptionSearchCatcherFound(This,functionId)      \
4979     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
4980
4981 #define ICorProfilerCallback6_ExceptionOSHandlerEnter(This,__unused)    \
4982     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
4983
4984 #define ICorProfilerCallback6_ExceptionOSHandlerLeave(This,__unused)    \
4985     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
4986
4987 #define ICorProfilerCallback6_ExceptionUnwindFunctionEnter(This,functionId)     \
4988     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
4989
4990 #define ICorProfilerCallback6_ExceptionUnwindFunctionLeave(This)        \
4991     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
4992
4993 #define ICorProfilerCallback6_ExceptionUnwindFinallyEnter(This,functionId)      \
4994     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
4995
4996 #define ICorProfilerCallback6_ExceptionUnwindFinallyLeave(This) \
4997     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
4998
4999 #define ICorProfilerCallback6_ExceptionCatcherEnter(This,functionId,objectId)   \
5000     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
5001
5002 #define ICorProfilerCallback6_ExceptionCatcherLeave(This)       \
5003     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
5004
5005 #define ICorProfilerCallback6_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
5006     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
5007
5008 #define ICorProfilerCallback6_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
5009     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
5010
5011 #define ICorProfilerCallback6_ExceptionCLRCatcherFound(This)    \
5012     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
5013
5014 #define ICorProfilerCallback6_ExceptionCLRCatcherExecute(This)  \
5015     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
5016
5017
5018 #define ICorProfilerCallback6_ThreadNameChanged(This,threadId,cchName,name)     \
5019     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
5020
5021 #define ICorProfilerCallback6_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
5022     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
5023
5024 #define ICorProfilerCallback6_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
5025     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
5026
5027 #define ICorProfilerCallback6_GarbageCollectionFinished(This)   \
5028     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
5029
5030 #define ICorProfilerCallback6_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
5031     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
5032
5033 #define ICorProfilerCallback6_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
5034     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
5035
5036 #define ICorProfilerCallback6_HandleCreated(This,handleId,initialObjectId)      \
5037     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
5038
5039 #define ICorProfilerCallback6_HandleDestroyed(This,handleId)    \
5040     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
5041
5042
5043 #define ICorProfilerCallback6_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
5044     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
5045
5046 #define ICorProfilerCallback6_ProfilerAttachComplete(This)      \
5047     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
5048
5049 #define ICorProfilerCallback6_ProfilerDetachSucceeded(This)     \
5050     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
5051
5052
5053 #define ICorProfilerCallback6_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
5054     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
5055
5056 #define ICorProfilerCallback6_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
5057     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
5058
5059 #define ICorProfilerCallback6_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5060     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
5061
5062 #define ICorProfilerCallback6_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
5063     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
5064
5065 #define ICorProfilerCallback6_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
5066     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
5067
5068 #define ICorProfilerCallback6_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
5069     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
5070
5071
5072 #define ICorProfilerCallback6_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds)       \
5073     ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) 
5074
5075
5076 #define ICorProfilerCallback6_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider)       \
5077     ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) 
5078
5079 #endif /* COBJMACROS */
5080
5081
5082 #endif  /* C style interface */
5083
5084
5085
5086
5087 #endif  /* __ICorProfilerCallback6_INTERFACE_DEFINED__ */
5088
5089
5090 #ifndef __ICorProfilerCallback7_INTERFACE_DEFINED__
5091 #define __ICorProfilerCallback7_INTERFACE_DEFINED__
5092
5093 /* interface ICorProfilerCallback7 */
5094 /* [local][unique][uuid][object] */ 
5095
5096
5097 EXTERN_C const IID IID_ICorProfilerCallback7;
5098
5099 #if defined(__cplusplus) && !defined(CINTERFACE)
5100     
5101     MIDL_INTERFACE("F76A2DBA-1D52-4539-866C-2AA518F9EFC3")
5102     ICorProfilerCallback7 : public ICorProfilerCallback6
5103     {
5104     public:
5105         virtual HRESULT STDMETHODCALLTYPE ModuleInMemorySymbolsUpdated( 
5106             ModuleID moduleId) = 0;
5107         
5108     };
5109     
5110     
5111 #else   /* C style interface */
5112
5113     typedef struct ICorProfilerCallback7Vtbl
5114     {
5115         BEGIN_INTERFACE
5116         
5117         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5118             ICorProfilerCallback7 * This,
5119             /* [in] */ REFIID riid,
5120             /* [annotation][iid_is][out] */ 
5121             _COM_Outptr_  void **ppvObject);
5122         
5123         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5124             ICorProfilerCallback7 * This);
5125         
5126         ULONG ( STDMETHODCALLTYPE *Release )( 
5127             ICorProfilerCallback7 * This);
5128         
5129         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
5130             ICorProfilerCallback7 * This,
5131             /* [in] */ IUnknown *pICorProfilerInfoUnk);
5132         
5133         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
5134             ICorProfilerCallback7 * This);
5135         
5136         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
5137             ICorProfilerCallback7 * This,
5138             /* [in] */ AppDomainID appDomainId);
5139         
5140         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
5141             ICorProfilerCallback7 * This,
5142             /* [in] */ AppDomainID appDomainId,
5143             /* [in] */ HRESULT hrStatus);
5144         
5145         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
5146             ICorProfilerCallback7 * This,
5147             /* [in] */ AppDomainID appDomainId);
5148         
5149         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
5150             ICorProfilerCallback7 * This,
5151             /* [in] */ AppDomainID appDomainId,
5152             /* [in] */ HRESULT hrStatus);
5153         
5154         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
5155             ICorProfilerCallback7 * This,
5156             /* [in] */ AssemblyID assemblyId);
5157         
5158         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
5159             ICorProfilerCallback7 * This,
5160             /* [in] */ AssemblyID assemblyId,
5161             /* [in] */ HRESULT hrStatus);
5162         
5163         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
5164             ICorProfilerCallback7 * This,
5165             /* [in] */ AssemblyID assemblyId);
5166         
5167         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
5168             ICorProfilerCallback7 * This,
5169             /* [in] */ AssemblyID assemblyId,
5170             /* [in] */ HRESULT hrStatus);
5171         
5172         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
5173             ICorProfilerCallback7 * This,
5174             /* [in] */ ModuleID moduleId);
5175         
5176         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
5177             ICorProfilerCallback7 * This,
5178             /* [in] */ ModuleID moduleId,
5179             /* [in] */ HRESULT hrStatus);
5180         
5181         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
5182             ICorProfilerCallback7 * This,
5183             /* [in] */ ModuleID moduleId);
5184         
5185         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
5186             ICorProfilerCallback7 * This,
5187             /* [in] */ ModuleID moduleId,
5188             /* [in] */ HRESULT hrStatus);
5189         
5190         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
5191             ICorProfilerCallback7 * This,
5192             /* [in] */ ModuleID moduleId,
5193             /* [in] */ AssemblyID AssemblyId);
5194         
5195         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
5196             ICorProfilerCallback7 * This,
5197             /* [in] */ ClassID classId);
5198         
5199         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
5200             ICorProfilerCallback7 * This,
5201             /* [in] */ ClassID classId,
5202             /* [in] */ HRESULT hrStatus);
5203         
5204         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
5205             ICorProfilerCallback7 * This,
5206             /* [in] */ ClassID classId);
5207         
5208         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
5209             ICorProfilerCallback7 * This,
5210             /* [in] */ ClassID classId,
5211             /* [in] */ HRESULT hrStatus);
5212         
5213         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
5214             ICorProfilerCallback7 * This,
5215             /* [in] */ FunctionID functionId);
5216         
5217         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
5218             ICorProfilerCallback7 * This,
5219             /* [in] */ FunctionID functionId,
5220             /* [in] */ BOOL fIsSafeToBlock);
5221         
5222         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
5223             ICorProfilerCallback7 * This,
5224             /* [in] */ FunctionID functionId,
5225             /* [in] */ HRESULT hrStatus,
5226             /* [in] */ BOOL fIsSafeToBlock);
5227         
5228         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
5229             ICorProfilerCallback7 * This,
5230             /* [in] */ FunctionID functionId,
5231             /* [out] */ BOOL *pbUseCachedFunction);
5232         
5233         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
5234             ICorProfilerCallback7 * This,
5235             /* [in] */ FunctionID functionId,
5236             /* [in] */ COR_PRF_JIT_CACHE result);
5237         
5238         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
5239             ICorProfilerCallback7 * This,
5240             /* [in] */ FunctionID functionId);
5241         
5242         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
5243             ICorProfilerCallback7 * This,
5244             /* [in] */ FunctionID callerId,
5245             /* [in] */ FunctionID calleeId,
5246             /* [out] */ BOOL *pfShouldInline);
5247         
5248         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
5249             ICorProfilerCallback7 * This,
5250             /* [in] */ ThreadID threadId);
5251         
5252         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
5253             ICorProfilerCallback7 * This,
5254             /* [in] */ ThreadID threadId);
5255         
5256         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
5257             ICorProfilerCallback7 * This,
5258             /* [in] */ ThreadID managedThreadId,
5259             /* [in] */ DWORD osThreadId);
5260         
5261         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
5262             ICorProfilerCallback7 * This);
5263         
5264         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
5265             ICorProfilerCallback7 * This,
5266             /* [in] */ GUID *pCookie,
5267             /* [in] */ BOOL fIsAsync);
5268         
5269         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
5270             ICorProfilerCallback7 * This,
5271             /* [in] */ GUID *pCookie,
5272             /* [in] */ BOOL fIsAsync);
5273         
5274         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
5275             ICorProfilerCallback7 * This);
5276         
5277         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
5278             ICorProfilerCallback7 * This,
5279             /* [in] */ GUID *pCookie,
5280             /* [in] */ BOOL fIsAsync);
5281         
5282         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
5283             ICorProfilerCallback7 * This);
5284         
5285         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
5286             ICorProfilerCallback7 * This);
5287         
5288         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
5289             ICorProfilerCallback7 * This,
5290             /* [in] */ GUID *pCookie,
5291             /* [in] */ BOOL fIsAsync);
5292         
5293         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
5294             ICorProfilerCallback7 * This,
5295             /* [in] */ FunctionID functionId,
5296             /* [in] */ COR_PRF_TRANSITION_REASON reason);
5297         
5298         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
5299             ICorProfilerCallback7 * This,
5300             /* [in] */ FunctionID functionId,
5301             /* [in] */ COR_PRF_TRANSITION_REASON reason);
5302         
5303         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
5304             ICorProfilerCallback7 * This,
5305             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
5306         
5307         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
5308             ICorProfilerCallback7 * This);
5309         
5310         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
5311             ICorProfilerCallback7 * This);
5312         
5313         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
5314             ICorProfilerCallback7 * This);
5315         
5316         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
5317             ICorProfilerCallback7 * This);
5318         
5319         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
5320             ICorProfilerCallback7 * This,
5321             /* [in] */ ThreadID threadId);
5322         
5323         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
5324             ICorProfilerCallback7 * This,
5325             /* [in] */ ThreadID threadId);
5326         
5327         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
5328             ICorProfilerCallback7 * This,
5329             /* [in] */ ULONG cMovedObjectIDRanges,
5330             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
5331             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
5332             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
5333         
5334         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
5335             ICorProfilerCallback7 * This,
5336             /* [in] */ ObjectID objectId,
5337             /* [in] */ ClassID classId);
5338         
5339         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
5340             ICorProfilerCallback7 * This,
5341             /* [in] */ ULONG cClassCount,
5342             /* [size_is][in] */ ClassID classIds[  ],
5343             /* [size_is][in] */ ULONG cObjects[  ]);
5344         
5345         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
5346             ICorProfilerCallback7 * This,
5347             /* [in] */ ObjectID objectId,
5348             /* [in] */ ClassID classId,
5349             /* [in] */ ULONG cObjectRefs,
5350             /* [size_is][in] */ ObjectID objectRefIds[  ]);
5351         
5352         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
5353             ICorProfilerCallback7 * This,
5354             /* [in] */ ULONG cRootRefs,
5355             /* [size_is][in] */ ObjectID rootRefIds[  ]);
5356         
5357         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
5358             ICorProfilerCallback7 * This,
5359             /* [in] */ ObjectID thrownObjectId);
5360         
5361         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
5362             ICorProfilerCallback7 * This,
5363             /* [in] */ FunctionID functionId);
5364         
5365         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
5366             ICorProfilerCallback7 * This);
5367         
5368         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
5369             ICorProfilerCallback7 * This,
5370             /* [in] */ FunctionID functionId);
5371         
5372         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
5373             ICorProfilerCallback7 * This);
5374         
5375         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
5376             ICorProfilerCallback7 * This,
5377             /* [in] */ FunctionID functionId);
5378         
5379         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
5380             ICorProfilerCallback7 * This,
5381             /* [in] */ UINT_PTR __unused);
5382         
5383         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
5384             ICorProfilerCallback7 * This,
5385             /* [in] */ UINT_PTR __unused);
5386         
5387         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
5388             ICorProfilerCallback7 * This,
5389             /* [in] */ FunctionID functionId);
5390         
5391         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
5392             ICorProfilerCallback7 * This);
5393         
5394         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
5395             ICorProfilerCallback7 * This,
5396             /* [in] */ FunctionID functionId);
5397         
5398         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
5399             ICorProfilerCallback7 * This);
5400         
5401         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
5402             ICorProfilerCallback7 * This,
5403             /* [in] */ FunctionID functionId,
5404             /* [in] */ ObjectID objectId);
5405         
5406         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
5407             ICorProfilerCallback7 * This);
5408         
5409         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
5410             ICorProfilerCallback7 * This,
5411             /* [in] */ ClassID wrappedClassId,
5412             /* [in] */ REFGUID implementedIID,
5413             /* [in] */ void *pVTable,
5414             /* [in] */ ULONG cSlots);
5415         
5416         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
5417             ICorProfilerCallback7 * This,
5418             /* [in] */ ClassID wrappedClassId,
5419             /* [in] */ REFGUID implementedIID,
5420             /* [in] */ void *pVTable);
5421         
5422         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
5423             ICorProfilerCallback7 * This);
5424         
5425         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
5426             ICorProfilerCallback7 * This);
5427         
5428         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
5429             ICorProfilerCallback7 * This,
5430             /* [in] */ ThreadID threadId,
5431             /* [in] */ ULONG cchName,
5432             /* [annotation][in] */ 
5433             _In_reads_opt_(cchName)  WCHAR name[  ]);
5434         
5435         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
5436             ICorProfilerCallback7 * This,
5437             /* [in] */ int cGenerations,
5438             /* [size_is][in] */ BOOL generationCollected[  ],
5439             /* [in] */ COR_PRF_GC_REASON reason);
5440         
5441         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
5442             ICorProfilerCallback7 * This,
5443             /* [in] */ ULONG cSurvivingObjectIDRanges,
5444             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
5445             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
5446         
5447         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
5448             ICorProfilerCallback7 * This);
5449         
5450         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
5451             ICorProfilerCallback7 * This,
5452             /* [in] */ DWORD finalizerFlags,
5453             /* [in] */ ObjectID objectID);
5454         
5455         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
5456             ICorProfilerCallback7 * This,
5457             /* [in] */ ULONG cRootRefs,
5458             /* [size_is][in] */ ObjectID rootRefIds[  ],
5459             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
5460             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
5461             /* [size_is][in] */ UINT_PTR rootIds[  ]);
5462         
5463         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
5464             ICorProfilerCallback7 * This,
5465             /* [in] */ GCHandleID handleId,
5466             /* [in] */ ObjectID initialObjectId);
5467         
5468         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
5469             ICorProfilerCallback7 * This,
5470             /* [in] */ GCHandleID handleId);
5471         
5472         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
5473             ICorProfilerCallback7 * This,
5474             /* [in] */ IUnknown *pCorProfilerInfoUnk,
5475             /* [in] */ void *pvClientData,
5476             /* [in] */ UINT cbClientData);
5477         
5478         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
5479             ICorProfilerCallback7 * This);
5480         
5481         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
5482             ICorProfilerCallback7 * This);
5483         
5484         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
5485             ICorProfilerCallback7 * This,
5486             /* [in] */ FunctionID functionId,
5487             /* [in] */ ReJITID rejitId,
5488             /* [in] */ BOOL fIsSafeToBlock);
5489         
5490         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
5491             ICorProfilerCallback7 * This,
5492             /* [in] */ ModuleID moduleId,
5493             /* [in] */ mdMethodDef methodId,
5494             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
5495         
5496         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
5497             ICorProfilerCallback7 * This,
5498             /* [in] */ FunctionID functionId,
5499             /* [in] */ ReJITID rejitId,
5500             /* [in] */ HRESULT hrStatus,
5501             /* [in] */ BOOL fIsSafeToBlock);
5502         
5503         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
5504             ICorProfilerCallback7 * This,
5505             /* [in] */ ModuleID moduleId,
5506             /* [in] */ mdMethodDef methodId,
5507             /* [in] */ FunctionID functionId,
5508             /* [in] */ HRESULT hrStatus);
5509         
5510         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
5511             ICorProfilerCallback7 * This,
5512             /* [in] */ ULONG cMovedObjectIDRanges,
5513             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
5514             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
5515             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
5516         
5517         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
5518             ICorProfilerCallback7 * This,
5519             /* [in] */ ULONG cSurvivingObjectIDRanges,
5520             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
5521             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
5522         
5523         HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )( 
5524             ICorProfilerCallback7 * This,
5525             /* [in] */ ULONG cRootRefs,
5526             /* [size_is][in] */ ObjectID keyRefIds[  ],
5527             /* [size_is][in] */ ObjectID valueRefIds[  ],
5528             /* [size_is][in] */ GCHandleID rootIds[  ]);
5529         
5530         HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )( 
5531             ICorProfilerCallback7 * This,
5532             /* [string][in] */ const WCHAR *wszAssemblyPath,
5533             /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
5534         
5535         HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )( 
5536             ICorProfilerCallback7 * This,
5537             ModuleID moduleId);
5538         
5539         END_INTERFACE
5540     } ICorProfilerCallback7Vtbl;
5541
5542     interface ICorProfilerCallback7
5543     {
5544         CONST_VTBL struct ICorProfilerCallback7Vtbl *lpVtbl;
5545     };
5546
5547     
5548
5549 #ifdef COBJMACROS
5550
5551
5552 #define ICorProfilerCallback7_QueryInterface(This,riid,ppvObject)       \
5553     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
5554
5555 #define ICorProfilerCallback7_AddRef(This)      \
5556     ( (This)->lpVtbl -> AddRef(This) ) 
5557
5558 #define ICorProfilerCallback7_Release(This)     \
5559     ( (This)->lpVtbl -> Release(This) ) 
5560
5561
5562 #define ICorProfilerCallback7_Initialize(This,pICorProfilerInfoUnk)     \
5563     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
5564
5565 #define ICorProfilerCallback7_Shutdown(This)    \
5566     ( (This)->lpVtbl -> Shutdown(This) ) 
5567
5568 #define ICorProfilerCallback7_AppDomainCreationStarted(This,appDomainId)        \
5569     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
5570
5571 #define ICorProfilerCallback7_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
5572     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
5573
5574 #define ICorProfilerCallback7_AppDomainShutdownStarted(This,appDomainId)        \
5575     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
5576
5577 #define ICorProfilerCallback7_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
5578     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
5579
5580 #define ICorProfilerCallback7_AssemblyLoadStarted(This,assemblyId)      \
5581     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
5582
5583 #define ICorProfilerCallback7_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
5584     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
5585
5586 #define ICorProfilerCallback7_AssemblyUnloadStarted(This,assemblyId)    \
5587     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
5588
5589 #define ICorProfilerCallback7_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
5590     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
5591
5592 #define ICorProfilerCallback7_ModuleLoadStarted(This,moduleId)  \
5593     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
5594
5595 #define ICorProfilerCallback7_ModuleLoadFinished(This,moduleId,hrStatus)        \
5596     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
5597
5598 #define ICorProfilerCallback7_ModuleUnloadStarted(This,moduleId)        \
5599     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
5600
5601 #define ICorProfilerCallback7_ModuleUnloadFinished(This,moduleId,hrStatus)      \
5602     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
5603
5604 #define ICorProfilerCallback7_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
5605     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
5606
5607 #define ICorProfilerCallback7_ClassLoadStarted(This,classId)    \
5608     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
5609
5610 #define ICorProfilerCallback7_ClassLoadFinished(This,classId,hrStatus)  \
5611     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
5612
5613 #define ICorProfilerCallback7_ClassUnloadStarted(This,classId)  \
5614     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
5615
5616 #define ICorProfilerCallback7_ClassUnloadFinished(This,classId,hrStatus)        \
5617     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
5618
5619 #define ICorProfilerCallback7_FunctionUnloadStarted(This,functionId)    \
5620     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
5621
5622 #define ICorProfilerCallback7_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
5623     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
5624
5625 #define ICorProfilerCallback7_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
5626     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
5627
5628 #define ICorProfilerCallback7_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
5629     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
5630
5631 #define ICorProfilerCallback7_JITCachedFunctionSearchFinished(This,functionId,result)   \
5632     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
5633
5634 #define ICorProfilerCallback7_JITFunctionPitched(This,functionId)       \
5635     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
5636
5637 #define ICorProfilerCallback7_JITInlining(This,callerId,calleeId,pfShouldInline)        \
5638     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
5639
5640 #define ICorProfilerCallback7_ThreadCreated(This,threadId)      \
5641     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
5642
5643 #define ICorProfilerCallback7_ThreadDestroyed(This,threadId)    \
5644     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
5645
5646 #define ICorProfilerCallback7_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
5647     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
5648
5649 #define ICorProfilerCallback7_RemotingClientInvocationStarted(This)     \
5650     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
5651
5652 #define ICorProfilerCallback7_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
5653     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
5654
5655 #define ICorProfilerCallback7_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
5656     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
5657
5658 #define ICorProfilerCallback7_RemotingClientInvocationFinished(This)    \
5659     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
5660
5661 #define ICorProfilerCallback7_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
5662     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
5663
5664 #define ICorProfilerCallback7_RemotingServerInvocationStarted(This)     \
5665     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
5666
5667 #define ICorProfilerCallback7_RemotingServerInvocationReturned(This)    \
5668     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
5669
5670 #define ICorProfilerCallback7_RemotingServerSendingReply(This,pCookie,fIsAsync) \
5671     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
5672
5673 #define ICorProfilerCallback7_UnmanagedToManagedTransition(This,functionId,reason)      \
5674     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
5675
5676 #define ICorProfilerCallback7_ManagedToUnmanagedTransition(This,functionId,reason)      \
5677     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
5678
5679 #define ICorProfilerCallback7_RuntimeSuspendStarted(This,suspendReason) \
5680     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
5681
5682 #define ICorProfilerCallback7_RuntimeSuspendFinished(This)      \
5683     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
5684
5685 #define ICorProfilerCallback7_RuntimeSuspendAborted(This)       \
5686     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
5687
5688 #define ICorProfilerCallback7_RuntimeResumeStarted(This)        \
5689     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
5690
5691 #define ICorProfilerCallback7_RuntimeResumeFinished(This)       \
5692     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
5693
5694 #define ICorProfilerCallback7_RuntimeThreadSuspended(This,threadId)     \
5695     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
5696
5697 #define ICorProfilerCallback7_RuntimeThreadResumed(This,threadId)       \
5698     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
5699
5700 #define ICorProfilerCallback7_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
5701     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
5702
5703 #define ICorProfilerCallback7_ObjectAllocated(This,objectId,classId)    \
5704     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
5705
5706 #define ICorProfilerCallback7_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
5707     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
5708
5709 #define ICorProfilerCallback7_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
5710     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
5711
5712 #define ICorProfilerCallback7_RootReferences(This,cRootRefs,rootRefIds) \
5713     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
5714
5715 #define ICorProfilerCallback7_ExceptionThrown(This,thrownObjectId)      \
5716     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
5717
5718 #define ICorProfilerCallback7_ExceptionSearchFunctionEnter(This,functionId)     \
5719     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
5720
5721 #define ICorProfilerCallback7_ExceptionSearchFunctionLeave(This)        \
5722     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
5723
5724 #define ICorProfilerCallback7_ExceptionSearchFilterEnter(This,functionId)       \
5725     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
5726
5727 #define ICorProfilerCallback7_ExceptionSearchFilterLeave(This)  \
5728     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
5729
5730 #define ICorProfilerCallback7_ExceptionSearchCatcherFound(This,functionId)      \
5731     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
5732
5733 #define ICorProfilerCallback7_ExceptionOSHandlerEnter(This,__unused)    \
5734     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
5735
5736 #define ICorProfilerCallback7_ExceptionOSHandlerLeave(This,__unused)    \
5737     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
5738
5739 #define ICorProfilerCallback7_ExceptionUnwindFunctionEnter(This,functionId)     \
5740     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
5741
5742 #define ICorProfilerCallback7_ExceptionUnwindFunctionLeave(This)        \
5743     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
5744
5745 #define ICorProfilerCallback7_ExceptionUnwindFinallyEnter(This,functionId)      \
5746     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
5747
5748 #define ICorProfilerCallback7_ExceptionUnwindFinallyLeave(This) \
5749     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
5750
5751 #define ICorProfilerCallback7_ExceptionCatcherEnter(This,functionId,objectId)   \
5752     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
5753
5754 #define ICorProfilerCallback7_ExceptionCatcherLeave(This)       \
5755     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
5756
5757 #define ICorProfilerCallback7_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
5758     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
5759
5760 #define ICorProfilerCallback7_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
5761     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
5762
5763 #define ICorProfilerCallback7_ExceptionCLRCatcherFound(This)    \
5764     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
5765
5766 #define ICorProfilerCallback7_ExceptionCLRCatcherExecute(This)  \
5767     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
5768
5769
5770 #define ICorProfilerCallback7_ThreadNameChanged(This,threadId,cchName,name)     \
5771     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
5772
5773 #define ICorProfilerCallback7_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
5774     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
5775
5776 #define ICorProfilerCallback7_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
5777     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
5778
5779 #define ICorProfilerCallback7_GarbageCollectionFinished(This)   \
5780     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
5781
5782 #define ICorProfilerCallback7_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
5783     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
5784
5785 #define ICorProfilerCallback7_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
5786     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
5787
5788 #define ICorProfilerCallback7_HandleCreated(This,handleId,initialObjectId)      \
5789     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
5790
5791 #define ICorProfilerCallback7_HandleDestroyed(This,handleId)    \
5792     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
5793
5794
5795 #define ICorProfilerCallback7_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
5796     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
5797
5798 #define ICorProfilerCallback7_ProfilerAttachComplete(This)      \
5799     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
5800
5801 #define ICorProfilerCallback7_ProfilerDetachSucceeded(This)     \
5802     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
5803
5804
5805 #define ICorProfilerCallback7_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
5806     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
5807
5808 #define ICorProfilerCallback7_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
5809     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
5810
5811 #define ICorProfilerCallback7_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
5812     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
5813
5814 #define ICorProfilerCallback7_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
5815     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
5816
5817 #define ICorProfilerCallback7_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
5818     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
5819
5820 #define ICorProfilerCallback7_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
5821     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
5822
5823
5824 #define ICorProfilerCallback7_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds)       \
5825     ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) 
5826
5827
5828 #define ICorProfilerCallback7_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider)       \
5829     ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) 
5830
5831
5832 #define ICorProfilerCallback7_ModuleInMemorySymbolsUpdated(This,moduleId)       \
5833     ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) 
5834
5835 #endif /* COBJMACROS */
5836
5837
5838 #endif  /* C style interface */
5839
5840
5841
5842
5843 #endif  /* __ICorProfilerCallback7_INTERFACE_DEFINED__ */
5844
5845
5846 #ifndef __ICorProfilerCallback8_INTERFACE_DEFINED__
5847 #define __ICorProfilerCallback8_INTERFACE_DEFINED__
5848
5849 /* interface ICorProfilerCallback8 */
5850 /* [local][unique][uuid][object] */ 
5851
5852
5853 EXTERN_C const IID IID_ICorProfilerCallback8;
5854
5855 #if defined(__cplusplus) && !defined(CINTERFACE)
5856     
5857     MIDL_INTERFACE("5BED9B15-C079-4D47-BFE2-215A140C07E0")
5858     ICorProfilerCallback8 : public ICorProfilerCallback7
5859     {
5860     public:
5861         virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationStarted( 
5862             /* [in] */ FunctionID functionId,
5863             /* [in] */ BOOL fIsSafeToBlock,
5864             /* [in] */ LPCBYTE pILHeader,
5865             /* [in] */ ULONG cbILHeader) = 0;
5866         
5867         virtual HRESULT STDMETHODCALLTYPE DynamicMethodJITCompilationFinished( 
5868             /* [in] */ FunctionID functionId,
5869             /* [in] */ HRESULT hrStatus,
5870             /* [in] */ BOOL fIsSafeToBlock) = 0;
5871         
5872     };
5873     
5874     
5875 #else   /* C style interface */
5876
5877     typedef struct ICorProfilerCallback8Vtbl
5878     {
5879         BEGIN_INTERFACE
5880         
5881         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
5882             ICorProfilerCallback8 * This,
5883             /* [in] */ REFIID riid,
5884             /* [annotation][iid_is][out] */ 
5885             _COM_Outptr_  void **ppvObject);
5886         
5887         ULONG ( STDMETHODCALLTYPE *AddRef )( 
5888             ICorProfilerCallback8 * This);
5889         
5890         ULONG ( STDMETHODCALLTYPE *Release )( 
5891             ICorProfilerCallback8 * This);
5892         
5893         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
5894             ICorProfilerCallback8 * This,
5895             /* [in] */ IUnknown *pICorProfilerInfoUnk);
5896         
5897         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
5898             ICorProfilerCallback8 * This);
5899         
5900         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
5901             ICorProfilerCallback8 * This,
5902             /* [in] */ AppDomainID appDomainId);
5903         
5904         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
5905             ICorProfilerCallback8 * This,
5906             /* [in] */ AppDomainID appDomainId,
5907             /* [in] */ HRESULT hrStatus);
5908         
5909         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
5910             ICorProfilerCallback8 * This,
5911             /* [in] */ AppDomainID appDomainId);
5912         
5913         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
5914             ICorProfilerCallback8 * This,
5915             /* [in] */ AppDomainID appDomainId,
5916             /* [in] */ HRESULT hrStatus);
5917         
5918         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
5919             ICorProfilerCallback8 * This,
5920             /* [in] */ AssemblyID assemblyId);
5921         
5922         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
5923             ICorProfilerCallback8 * This,
5924             /* [in] */ AssemblyID assemblyId,
5925             /* [in] */ HRESULT hrStatus);
5926         
5927         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
5928             ICorProfilerCallback8 * This,
5929             /* [in] */ AssemblyID assemblyId);
5930         
5931         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
5932             ICorProfilerCallback8 * This,
5933             /* [in] */ AssemblyID assemblyId,
5934             /* [in] */ HRESULT hrStatus);
5935         
5936         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
5937             ICorProfilerCallback8 * This,
5938             /* [in] */ ModuleID moduleId);
5939         
5940         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
5941             ICorProfilerCallback8 * This,
5942             /* [in] */ ModuleID moduleId,
5943             /* [in] */ HRESULT hrStatus);
5944         
5945         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
5946             ICorProfilerCallback8 * This,
5947             /* [in] */ ModuleID moduleId);
5948         
5949         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
5950             ICorProfilerCallback8 * This,
5951             /* [in] */ ModuleID moduleId,
5952             /* [in] */ HRESULT hrStatus);
5953         
5954         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
5955             ICorProfilerCallback8 * This,
5956             /* [in] */ ModuleID moduleId,
5957             /* [in] */ AssemblyID AssemblyId);
5958         
5959         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
5960             ICorProfilerCallback8 * This,
5961             /* [in] */ ClassID classId);
5962         
5963         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
5964             ICorProfilerCallback8 * This,
5965             /* [in] */ ClassID classId,
5966             /* [in] */ HRESULT hrStatus);
5967         
5968         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
5969             ICorProfilerCallback8 * This,
5970             /* [in] */ ClassID classId);
5971         
5972         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
5973             ICorProfilerCallback8 * This,
5974             /* [in] */ ClassID classId,
5975             /* [in] */ HRESULT hrStatus);
5976         
5977         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
5978             ICorProfilerCallback8 * This,
5979             /* [in] */ FunctionID functionId);
5980         
5981         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
5982             ICorProfilerCallback8 * This,
5983             /* [in] */ FunctionID functionId,
5984             /* [in] */ BOOL fIsSafeToBlock);
5985         
5986         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
5987             ICorProfilerCallback8 * This,
5988             /* [in] */ FunctionID functionId,
5989             /* [in] */ HRESULT hrStatus,
5990             /* [in] */ BOOL fIsSafeToBlock);
5991         
5992         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
5993             ICorProfilerCallback8 * This,
5994             /* [in] */ FunctionID functionId,
5995             /* [out] */ BOOL *pbUseCachedFunction);
5996         
5997         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
5998             ICorProfilerCallback8 * This,
5999             /* [in] */ FunctionID functionId,
6000             /* [in] */ COR_PRF_JIT_CACHE result);
6001         
6002         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
6003             ICorProfilerCallback8 * This,
6004             /* [in] */ FunctionID functionId);
6005         
6006         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
6007             ICorProfilerCallback8 * This,
6008             /* [in] */ FunctionID callerId,
6009             /* [in] */ FunctionID calleeId,
6010             /* [out] */ BOOL *pfShouldInline);
6011         
6012         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
6013             ICorProfilerCallback8 * This,
6014             /* [in] */ ThreadID threadId);
6015         
6016         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
6017             ICorProfilerCallback8 * This,
6018             /* [in] */ ThreadID threadId);
6019         
6020         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
6021             ICorProfilerCallback8 * This,
6022             /* [in] */ ThreadID managedThreadId,
6023             /* [in] */ DWORD osThreadId);
6024         
6025         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
6026             ICorProfilerCallback8 * This);
6027         
6028         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
6029             ICorProfilerCallback8 * This,
6030             /* [in] */ GUID *pCookie,
6031             /* [in] */ BOOL fIsAsync);
6032         
6033         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
6034             ICorProfilerCallback8 * This,
6035             /* [in] */ GUID *pCookie,
6036             /* [in] */ BOOL fIsAsync);
6037         
6038         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
6039             ICorProfilerCallback8 * This);
6040         
6041         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
6042             ICorProfilerCallback8 * This,
6043             /* [in] */ GUID *pCookie,
6044             /* [in] */ BOOL fIsAsync);
6045         
6046         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
6047             ICorProfilerCallback8 * This);
6048         
6049         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
6050             ICorProfilerCallback8 * This);
6051         
6052         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
6053             ICorProfilerCallback8 * This,
6054             /* [in] */ GUID *pCookie,
6055             /* [in] */ BOOL fIsAsync);
6056         
6057         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
6058             ICorProfilerCallback8 * This,
6059             /* [in] */ FunctionID functionId,
6060             /* [in] */ COR_PRF_TRANSITION_REASON reason);
6061         
6062         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
6063             ICorProfilerCallback8 * This,
6064             /* [in] */ FunctionID functionId,
6065             /* [in] */ COR_PRF_TRANSITION_REASON reason);
6066         
6067         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
6068             ICorProfilerCallback8 * This,
6069             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6070         
6071         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
6072             ICorProfilerCallback8 * This);
6073         
6074         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
6075             ICorProfilerCallback8 * This);
6076         
6077         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
6078             ICorProfilerCallback8 * This);
6079         
6080         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
6081             ICorProfilerCallback8 * This);
6082         
6083         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
6084             ICorProfilerCallback8 * This,
6085             /* [in] */ ThreadID threadId);
6086         
6087         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
6088             ICorProfilerCallback8 * This,
6089             /* [in] */ ThreadID threadId);
6090         
6091         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
6092             ICorProfilerCallback8 * This,
6093             /* [in] */ ULONG cMovedObjectIDRanges,
6094             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
6095             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
6096             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
6097         
6098         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
6099             ICorProfilerCallback8 * This,
6100             /* [in] */ ObjectID objectId,
6101             /* [in] */ ClassID classId);
6102         
6103         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
6104             ICorProfilerCallback8 * This,
6105             /* [in] */ ULONG cClassCount,
6106             /* [size_is][in] */ ClassID classIds[  ],
6107             /* [size_is][in] */ ULONG cObjects[  ]);
6108         
6109         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
6110             ICorProfilerCallback8 * This,
6111             /* [in] */ ObjectID objectId,
6112             /* [in] */ ClassID classId,
6113             /* [in] */ ULONG cObjectRefs,
6114             /* [size_is][in] */ ObjectID objectRefIds[  ]);
6115         
6116         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
6117             ICorProfilerCallback8 * This,
6118             /* [in] */ ULONG cRootRefs,
6119             /* [size_is][in] */ ObjectID rootRefIds[  ]);
6120         
6121         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
6122             ICorProfilerCallback8 * This,
6123             /* [in] */ ObjectID thrownObjectId);
6124         
6125         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
6126             ICorProfilerCallback8 * This,
6127             /* [in] */ FunctionID functionId);
6128         
6129         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
6130             ICorProfilerCallback8 * This);
6131         
6132         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
6133             ICorProfilerCallback8 * This,
6134             /* [in] */ FunctionID functionId);
6135         
6136         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
6137             ICorProfilerCallback8 * This);
6138         
6139         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
6140             ICorProfilerCallback8 * This,
6141             /* [in] */ FunctionID functionId);
6142         
6143         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
6144             ICorProfilerCallback8 * This,
6145             /* [in] */ UINT_PTR __unused);
6146         
6147         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
6148             ICorProfilerCallback8 * This,
6149             /* [in] */ UINT_PTR __unused);
6150         
6151         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
6152             ICorProfilerCallback8 * This,
6153             /* [in] */ FunctionID functionId);
6154         
6155         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
6156             ICorProfilerCallback8 * This);
6157         
6158         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
6159             ICorProfilerCallback8 * This,
6160             /* [in] */ FunctionID functionId);
6161         
6162         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
6163             ICorProfilerCallback8 * This);
6164         
6165         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
6166             ICorProfilerCallback8 * This,
6167             /* [in] */ FunctionID functionId,
6168             /* [in] */ ObjectID objectId);
6169         
6170         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
6171             ICorProfilerCallback8 * This);
6172         
6173         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
6174             ICorProfilerCallback8 * This,
6175             /* [in] */ ClassID wrappedClassId,
6176             /* [in] */ REFGUID implementedIID,
6177             /* [in] */ void *pVTable,
6178             /* [in] */ ULONG cSlots);
6179         
6180         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
6181             ICorProfilerCallback8 * This,
6182             /* [in] */ ClassID wrappedClassId,
6183             /* [in] */ REFGUID implementedIID,
6184             /* [in] */ void *pVTable);
6185         
6186         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
6187             ICorProfilerCallback8 * This);
6188         
6189         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
6190             ICorProfilerCallback8 * This);
6191         
6192         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
6193             ICorProfilerCallback8 * This,
6194             /* [in] */ ThreadID threadId,
6195             /* [in] */ ULONG cchName,
6196             /* [annotation][in] */ 
6197             _In_reads_opt_(cchName)  WCHAR name[  ]);
6198         
6199         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
6200             ICorProfilerCallback8 * This,
6201             /* [in] */ int cGenerations,
6202             /* [size_is][in] */ BOOL generationCollected[  ],
6203             /* [in] */ COR_PRF_GC_REASON reason);
6204         
6205         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
6206             ICorProfilerCallback8 * This,
6207             /* [in] */ ULONG cSurvivingObjectIDRanges,
6208             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
6209             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
6210         
6211         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
6212             ICorProfilerCallback8 * This);
6213         
6214         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
6215             ICorProfilerCallback8 * This,
6216             /* [in] */ DWORD finalizerFlags,
6217             /* [in] */ ObjectID objectID);
6218         
6219         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
6220             ICorProfilerCallback8 * This,
6221             /* [in] */ ULONG cRootRefs,
6222             /* [size_is][in] */ ObjectID rootRefIds[  ],
6223             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
6224             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
6225             /* [size_is][in] */ UINT_PTR rootIds[  ]);
6226         
6227         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
6228             ICorProfilerCallback8 * This,
6229             /* [in] */ GCHandleID handleId,
6230             /* [in] */ ObjectID initialObjectId);
6231         
6232         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
6233             ICorProfilerCallback8 * This,
6234             /* [in] */ GCHandleID handleId);
6235         
6236         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
6237             ICorProfilerCallback8 * This,
6238             /* [in] */ IUnknown *pCorProfilerInfoUnk,
6239             /* [in] */ void *pvClientData,
6240             /* [in] */ UINT cbClientData);
6241         
6242         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
6243             ICorProfilerCallback8 * This);
6244         
6245         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
6246             ICorProfilerCallback8 * This);
6247         
6248         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
6249             ICorProfilerCallback8 * This,
6250             /* [in] */ FunctionID functionId,
6251             /* [in] */ ReJITID rejitId,
6252             /* [in] */ BOOL fIsSafeToBlock);
6253         
6254         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
6255             ICorProfilerCallback8 * This,
6256             /* [in] */ ModuleID moduleId,
6257             /* [in] */ mdMethodDef methodId,
6258             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
6259         
6260         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
6261             ICorProfilerCallback8 * This,
6262             /* [in] */ FunctionID functionId,
6263             /* [in] */ ReJITID rejitId,
6264             /* [in] */ HRESULT hrStatus,
6265             /* [in] */ BOOL fIsSafeToBlock);
6266         
6267         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
6268             ICorProfilerCallback8 * This,
6269             /* [in] */ ModuleID moduleId,
6270             /* [in] */ mdMethodDef methodId,
6271             /* [in] */ FunctionID functionId,
6272             /* [in] */ HRESULT hrStatus);
6273         
6274         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
6275             ICorProfilerCallback8 * This,
6276             /* [in] */ ULONG cMovedObjectIDRanges,
6277             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
6278             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
6279             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
6280         
6281         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
6282             ICorProfilerCallback8 * This,
6283             /* [in] */ ULONG cSurvivingObjectIDRanges,
6284             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
6285             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
6286         
6287         HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )( 
6288             ICorProfilerCallback8 * This,
6289             /* [in] */ ULONG cRootRefs,
6290             /* [size_is][in] */ ObjectID keyRefIds[  ],
6291             /* [size_is][in] */ ObjectID valueRefIds[  ],
6292             /* [size_is][in] */ GCHandleID rootIds[  ]);
6293         
6294         HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )( 
6295             ICorProfilerCallback8 * This,
6296             /* [string][in] */ const WCHAR *wszAssemblyPath,
6297             /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
6298         
6299         HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )( 
6300             ICorProfilerCallback8 * This,
6301             ModuleID moduleId);
6302         
6303         HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )( 
6304             ICorProfilerCallback8 * This,
6305             /* [in] */ FunctionID functionId,
6306             /* [in] */ BOOL fIsSafeToBlock,
6307             /* [in] */ LPCBYTE pILHeader,
6308             /* [in] */ ULONG cbILHeader);
6309         
6310         HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )( 
6311             ICorProfilerCallback8 * This,
6312             /* [in] */ FunctionID functionId,
6313             /* [in] */ HRESULT hrStatus,
6314             /* [in] */ BOOL fIsSafeToBlock);
6315         
6316         END_INTERFACE
6317     } ICorProfilerCallback8Vtbl;
6318
6319     interface ICorProfilerCallback8
6320     {
6321         CONST_VTBL struct ICorProfilerCallback8Vtbl *lpVtbl;
6322     };
6323
6324     
6325
6326 #ifdef COBJMACROS
6327
6328
6329 #define ICorProfilerCallback8_QueryInterface(This,riid,ppvObject)       \
6330     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
6331
6332 #define ICorProfilerCallback8_AddRef(This)      \
6333     ( (This)->lpVtbl -> AddRef(This) ) 
6334
6335 #define ICorProfilerCallback8_Release(This)     \
6336     ( (This)->lpVtbl -> Release(This) ) 
6337
6338
6339 #define ICorProfilerCallback8_Initialize(This,pICorProfilerInfoUnk)     \
6340     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
6341
6342 #define ICorProfilerCallback8_Shutdown(This)    \
6343     ( (This)->lpVtbl -> Shutdown(This) ) 
6344
6345 #define ICorProfilerCallback8_AppDomainCreationStarted(This,appDomainId)        \
6346     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
6347
6348 #define ICorProfilerCallback8_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
6349     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
6350
6351 #define ICorProfilerCallback8_AppDomainShutdownStarted(This,appDomainId)        \
6352     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
6353
6354 #define ICorProfilerCallback8_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
6355     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
6356
6357 #define ICorProfilerCallback8_AssemblyLoadStarted(This,assemblyId)      \
6358     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
6359
6360 #define ICorProfilerCallback8_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
6361     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
6362
6363 #define ICorProfilerCallback8_AssemblyUnloadStarted(This,assemblyId)    \
6364     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
6365
6366 #define ICorProfilerCallback8_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
6367     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
6368
6369 #define ICorProfilerCallback8_ModuleLoadStarted(This,moduleId)  \
6370     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
6371
6372 #define ICorProfilerCallback8_ModuleLoadFinished(This,moduleId,hrStatus)        \
6373     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
6374
6375 #define ICorProfilerCallback8_ModuleUnloadStarted(This,moduleId)        \
6376     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
6377
6378 #define ICorProfilerCallback8_ModuleUnloadFinished(This,moduleId,hrStatus)      \
6379     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
6380
6381 #define ICorProfilerCallback8_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
6382     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
6383
6384 #define ICorProfilerCallback8_ClassLoadStarted(This,classId)    \
6385     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
6386
6387 #define ICorProfilerCallback8_ClassLoadFinished(This,classId,hrStatus)  \
6388     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
6389
6390 #define ICorProfilerCallback8_ClassUnloadStarted(This,classId)  \
6391     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
6392
6393 #define ICorProfilerCallback8_ClassUnloadFinished(This,classId,hrStatus)        \
6394     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
6395
6396 #define ICorProfilerCallback8_FunctionUnloadStarted(This,functionId)    \
6397     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
6398
6399 #define ICorProfilerCallback8_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
6400     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
6401
6402 #define ICorProfilerCallback8_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
6403     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
6404
6405 #define ICorProfilerCallback8_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
6406     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
6407
6408 #define ICorProfilerCallback8_JITCachedFunctionSearchFinished(This,functionId,result)   \
6409     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
6410
6411 #define ICorProfilerCallback8_JITFunctionPitched(This,functionId)       \
6412     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
6413
6414 #define ICorProfilerCallback8_JITInlining(This,callerId,calleeId,pfShouldInline)        \
6415     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
6416
6417 #define ICorProfilerCallback8_ThreadCreated(This,threadId)      \
6418     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
6419
6420 #define ICorProfilerCallback8_ThreadDestroyed(This,threadId)    \
6421     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
6422
6423 #define ICorProfilerCallback8_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
6424     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
6425
6426 #define ICorProfilerCallback8_RemotingClientInvocationStarted(This)     \
6427     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
6428
6429 #define ICorProfilerCallback8_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
6430     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
6431
6432 #define ICorProfilerCallback8_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
6433     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
6434
6435 #define ICorProfilerCallback8_RemotingClientInvocationFinished(This)    \
6436     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
6437
6438 #define ICorProfilerCallback8_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
6439     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
6440
6441 #define ICorProfilerCallback8_RemotingServerInvocationStarted(This)     \
6442     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
6443
6444 #define ICorProfilerCallback8_RemotingServerInvocationReturned(This)    \
6445     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
6446
6447 #define ICorProfilerCallback8_RemotingServerSendingReply(This,pCookie,fIsAsync) \
6448     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
6449
6450 #define ICorProfilerCallback8_UnmanagedToManagedTransition(This,functionId,reason)      \
6451     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
6452
6453 #define ICorProfilerCallback8_ManagedToUnmanagedTransition(This,functionId,reason)      \
6454     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
6455
6456 #define ICorProfilerCallback8_RuntimeSuspendStarted(This,suspendReason) \
6457     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
6458
6459 #define ICorProfilerCallback8_RuntimeSuspendFinished(This)      \
6460     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
6461
6462 #define ICorProfilerCallback8_RuntimeSuspendAborted(This)       \
6463     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
6464
6465 #define ICorProfilerCallback8_RuntimeResumeStarted(This)        \
6466     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
6467
6468 #define ICorProfilerCallback8_RuntimeResumeFinished(This)       \
6469     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
6470
6471 #define ICorProfilerCallback8_RuntimeThreadSuspended(This,threadId)     \
6472     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
6473
6474 #define ICorProfilerCallback8_RuntimeThreadResumed(This,threadId)       \
6475     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
6476
6477 #define ICorProfilerCallback8_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
6478     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
6479
6480 #define ICorProfilerCallback8_ObjectAllocated(This,objectId,classId)    \
6481     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
6482
6483 #define ICorProfilerCallback8_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
6484     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
6485
6486 #define ICorProfilerCallback8_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
6487     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
6488
6489 #define ICorProfilerCallback8_RootReferences(This,cRootRefs,rootRefIds) \
6490     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
6491
6492 #define ICorProfilerCallback8_ExceptionThrown(This,thrownObjectId)      \
6493     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
6494
6495 #define ICorProfilerCallback8_ExceptionSearchFunctionEnter(This,functionId)     \
6496     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
6497
6498 #define ICorProfilerCallback8_ExceptionSearchFunctionLeave(This)        \
6499     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
6500
6501 #define ICorProfilerCallback8_ExceptionSearchFilterEnter(This,functionId)       \
6502     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
6503
6504 #define ICorProfilerCallback8_ExceptionSearchFilterLeave(This)  \
6505     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
6506
6507 #define ICorProfilerCallback8_ExceptionSearchCatcherFound(This,functionId)      \
6508     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
6509
6510 #define ICorProfilerCallback8_ExceptionOSHandlerEnter(This,__unused)    \
6511     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
6512
6513 #define ICorProfilerCallback8_ExceptionOSHandlerLeave(This,__unused)    \
6514     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
6515
6516 #define ICorProfilerCallback8_ExceptionUnwindFunctionEnter(This,functionId)     \
6517     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
6518
6519 #define ICorProfilerCallback8_ExceptionUnwindFunctionLeave(This)        \
6520     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
6521
6522 #define ICorProfilerCallback8_ExceptionUnwindFinallyEnter(This,functionId)      \
6523     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
6524
6525 #define ICorProfilerCallback8_ExceptionUnwindFinallyLeave(This) \
6526     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
6527
6528 #define ICorProfilerCallback8_ExceptionCatcherEnter(This,functionId,objectId)   \
6529     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
6530
6531 #define ICorProfilerCallback8_ExceptionCatcherLeave(This)       \
6532     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
6533
6534 #define ICorProfilerCallback8_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
6535     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
6536
6537 #define ICorProfilerCallback8_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
6538     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
6539
6540 #define ICorProfilerCallback8_ExceptionCLRCatcherFound(This)    \
6541     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
6542
6543 #define ICorProfilerCallback8_ExceptionCLRCatcherExecute(This)  \
6544     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
6545
6546
6547 #define ICorProfilerCallback8_ThreadNameChanged(This,threadId,cchName,name)     \
6548     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
6549
6550 #define ICorProfilerCallback8_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
6551     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
6552
6553 #define ICorProfilerCallback8_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
6554     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
6555
6556 #define ICorProfilerCallback8_GarbageCollectionFinished(This)   \
6557     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
6558
6559 #define ICorProfilerCallback8_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
6560     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
6561
6562 #define ICorProfilerCallback8_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
6563     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
6564
6565 #define ICorProfilerCallback8_HandleCreated(This,handleId,initialObjectId)      \
6566     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
6567
6568 #define ICorProfilerCallback8_HandleDestroyed(This,handleId)    \
6569     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
6570
6571
6572 #define ICorProfilerCallback8_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
6573     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
6574
6575 #define ICorProfilerCallback8_ProfilerAttachComplete(This)      \
6576     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
6577
6578 #define ICorProfilerCallback8_ProfilerDetachSucceeded(This)     \
6579     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
6580
6581
6582 #define ICorProfilerCallback8_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
6583     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
6584
6585 #define ICorProfilerCallback8_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
6586     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
6587
6588 #define ICorProfilerCallback8_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
6589     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
6590
6591 #define ICorProfilerCallback8_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
6592     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
6593
6594 #define ICorProfilerCallback8_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
6595     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
6596
6597 #define ICorProfilerCallback8_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
6598     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
6599
6600
6601 #define ICorProfilerCallback8_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds)       \
6602     ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) 
6603
6604
6605 #define ICorProfilerCallback8_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider)       \
6606     ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) 
6607
6608
6609 #define ICorProfilerCallback8_ModuleInMemorySymbolsUpdated(This,moduleId)       \
6610     ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) 
6611
6612
6613 #define ICorProfilerCallback8_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader)   \
6614     ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) 
6615
6616 #define ICorProfilerCallback8_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)      \
6617     ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
6618
6619 #endif /* COBJMACROS */
6620
6621
6622 #endif  /* C style interface */
6623
6624
6625
6626
6627 #endif  /* __ICorProfilerCallback8_INTERFACE_DEFINED__ */
6628
6629
6630 #ifndef __ICorProfilerCallback9_INTERFACE_DEFINED__
6631 #define __ICorProfilerCallback9_INTERFACE_DEFINED__
6632
6633 /* interface ICorProfilerCallback9 */
6634 /* [local][unique][uuid][object] */ 
6635
6636
6637 EXTERN_C const IID IID_ICorProfilerCallback9;
6638
6639 #if defined(__cplusplus) && !defined(CINTERFACE)
6640     
6641     MIDL_INTERFACE("27583EC3-C8F5-482F-8052-194B8CE4705A")
6642     ICorProfilerCallback9 : public ICorProfilerCallback8
6643     {
6644     public:
6645         virtual HRESULT STDMETHODCALLTYPE DynamicMethodUnloaded( 
6646             /* [in] */ FunctionID functionId) = 0;
6647         
6648     };
6649     
6650     
6651 #else   /* C style interface */
6652
6653     typedef struct ICorProfilerCallback9Vtbl
6654     {
6655         BEGIN_INTERFACE
6656         
6657         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
6658             ICorProfilerCallback9 * This,
6659             /* [in] */ REFIID riid,
6660             /* [annotation][iid_is][out] */ 
6661             _COM_Outptr_  void **ppvObject);
6662         
6663         ULONG ( STDMETHODCALLTYPE *AddRef )( 
6664             ICorProfilerCallback9 * This);
6665         
6666         ULONG ( STDMETHODCALLTYPE *Release )( 
6667             ICorProfilerCallback9 * This);
6668         
6669         HRESULT ( STDMETHODCALLTYPE *Initialize )( 
6670             ICorProfilerCallback9 * This,
6671             /* [in] */ IUnknown *pICorProfilerInfoUnk);
6672         
6673         HRESULT ( STDMETHODCALLTYPE *Shutdown )( 
6674             ICorProfilerCallback9 * This);
6675         
6676         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationStarted )( 
6677             ICorProfilerCallback9 * This,
6678             /* [in] */ AppDomainID appDomainId);
6679         
6680         HRESULT ( STDMETHODCALLTYPE *AppDomainCreationFinished )( 
6681             ICorProfilerCallback9 * This,
6682             /* [in] */ AppDomainID appDomainId,
6683             /* [in] */ HRESULT hrStatus);
6684         
6685         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownStarted )( 
6686             ICorProfilerCallback9 * This,
6687             /* [in] */ AppDomainID appDomainId);
6688         
6689         HRESULT ( STDMETHODCALLTYPE *AppDomainShutdownFinished )( 
6690             ICorProfilerCallback9 * This,
6691             /* [in] */ AppDomainID appDomainId,
6692             /* [in] */ HRESULT hrStatus);
6693         
6694         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadStarted )( 
6695             ICorProfilerCallback9 * This,
6696             /* [in] */ AssemblyID assemblyId);
6697         
6698         HRESULT ( STDMETHODCALLTYPE *AssemblyLoadFinished )( 
6699             ICorProfilerCallback9 * This,
6700             /* [in] */ AssemblyID assemblyId,
6701             /* [in] */ HRESULT hrStatus);
6702         
6703         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadStarted )( 
6704             ICorProfilerCallback9 * This,
6705             /* [in] */ AssemblyID assemblyId);
6706         
6707         HRESULT ( STDMETHODCALLTYPE *AssemblyUnloadFinished )( 
6708             ICorProfilerCallback9 * This,
6709             /* [in] */ AssemblyID assemblyId,
6710             /* [in] */ HRESULT hrStatus);
6711         
6712         HRESULT ( STDMETHODCALLTYPE *ModuleLoadStarted )( 
6713             ICorProfilerCallback9 * This,
6714             /* [in] */ ModuleID moduleId);
6715         
6716         HRESULT ( STDMETHODCALLTYPE *ModuleLoadFinished )( 
6717             ICorProfilerCallback9 * This,
6718             /* [in] */ ModuleID moduleId,
6719             /* [in] */ HRESULT hrStatus);
6720         
6721         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadStarted )( 
6722             ICorProfilerCallback9 * This,
6723             /* [in] */ ModuleID moduleId);
6724         
6725         HRESULT ( STDMETHODCALLTYPE *ModuleUnloadFinished )( 
6726             ICorProfilerCallback9 * This,
6727             /* [in] */ ModuleID moduleId,
6728             /* [in] */ HRESULT hrStatus);
6729         
6730         HRESULT ( STDMETHODCALLTYPE *ModuleAttachedToAssembly )( 
6731             ICorProfilerCallback9 * This,
6732             /* [in] */ ModuleID moduleId,
6733             /* [in] */ AssemblyID AssemblyId);
6734         
6735         HRESULT ( STDMETHODCALLTYPE *ClassLoadStarted )( 
6736             ICorProfilerCallback9 * This,
6737             /* [in] */ ClassID classId);
6738         
6739         HRESULT ( STDMETHODCALLTYPE *ClassLoadFinished )( 
6740             ICorProfilerCallback9 * This,
6741             /* [in] */ ClassID classId,
6742             /* [in] */ HRESULT hrStatus);
6743         
6744         HRESULT ( STDMETHODCALLTYPE *ClassUnloadStarted )( 
6745             ICorProfilerCallback9 * This,
6746             /* [in] */ ClassID classId);
6747         
6748         HRESULT ( STDMETHODCALLTYPE *ClassUnloadFinished )( 
6749             ICorProfilerCallback9 * This,
6750             /* [in] */ ClassID classId,
6751             /* [in] */ HRESULT hrStatus);
6752         
6753         HRESULT ( STDMETHODCALLTYPE *FunctionUnloadStarted )( 
6754             ICorProfilerCallback9 * This,
6755             /* [in] */ FunctionID functionId);
6756         
6757         HRESULT ( STDMETHODCALLTYPE *JITCompilationStarted )( 
6758             ICorProfilerCallback9 * This,
6759             /* [in] */ FunctionID functionId,
6760             /* [in] */ BOOL fIsSafeToBlock);
6761         
6762         HRESULT ( STDMETHODCALLTYPE *JITCompilationFinished )( 
6763             ICorProfilerCallback9 * This,
6764             /* [in] */ FunctionID functionId,
6765             /* [in] */ HRESULT hrStatus,
6766             /* [in] */ BOOL fIsSafeToBlock);
6767         
6768         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchStarted )( 
6769             ICorProfilerCallback9 * This,
6770             /* [in] */ FunctionID functionId,
6771             /* [out] */ BOOL *pbUseCachedFunction);
6772         
6773         HRESULT ( STDMETHODCALLTYPE *JITCachedFunctionSearchFinished )( 
6774             ICorProfilerCallback9 * This,
6775             /* [in] */ FunctionID functionId,
6776             /* [in] */ COR_PRF_JIT_CACHE result);
6777         
6778         HRESULT ( STDMETHODCALLTYPE *JITFunctionPitched )( 
6779             ICorProfilerCallback9 * This,
6780             /* [in] */ FunctionID functionId);
6781         
6782         HRESULT ( STDMETHODCALLTYPE *JITInlining )( 
6783             ICorProfilerCallback9 * This,
6784             /* [in] */ FunctionID callerId,
6785             /* [in] */ FunctionID calleeId,
6786             /* [out] */ BOOL *pfShouldInline);
6787         
6788         HRESULT ( STDMETHODCALLTYPE *ThreadCreated )( 
6789             ICorProfilerCallback9 * This,
6790             /* [in] */ ThreadID threadId);
6791         
6792         HRESULT ( STDMETHODCALLTYPE *ThreadDestroyed )( 
6793             ICorProfilerCallback9 * This,
6794             /* [in] */ ThreadID threadId);
6795         
6796         HRESULT ( STDMETHODCALLTYPE *ThreadAssignedToOSThread )( 
6797             ICorProfilerCallback9 * This,
6798             /* [in] */ ThreadID managedThreadId,
6799             /* [in] */ DWORD osThreadId);
6800         
6801         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationStarted )( 
6802             ICorProfilerCallback9 * This);
6803         
6804         HRESULT ( STDMETHODCALLTYPE *RemotingClientSendingMessage )( 
6805             ICorProfilerCallback9 * This,
6806             /* [in] */ GUID *pCookie,
6807             /* [in] */ BOOL fIsAsync);
6808         
6809         HRESULT ( STDMETHODCALLTYPE *RemotingClientReceivingReply )( 
6810             ICorProfilerCallback9 * This,
6811             /* [in] */ GUID *pCookie,
6812             /* [in] */ BOOL fIsAsync);
6813         
6814         HRESULT ( STDMETHODCALLTYPE *RemotingClientInvocationFinished )( 
6815             ICorProfilerCallback9 * This);
6816         
6817         HRESULT ( STDMETHODCALLTYPE *RemotingServerReceivingMessage )( 
6818             ICorProfilerCallback9 * This,
6819             /* [in] */ GUID *pCookie,
6820             /* [in] */ BOOL fIsAsync);
6821         
6822         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationStarted )( 
6823             ICorProfilerCallback9 * This);
6824         
6825         HRESULT ( STDMETHODCALLTYPE *RemotingServerInvocationReturned )( 
6826             ICorProfilerCallback9 * This);
6827         
6828         HRESULT ( STDMETHODCALLTYPE *RemotingServerSendingReply )( 
6829             ICorProfilerCallback9 * This,
6830             /* [in] */ GUID *pCookie,
6831             /* [in] */ BOOL fIsAsync);
6832         
6833         HRESULT ( STDMETHODCALLTYPE *UnmanagedToManagedTransition )( 
6834             ICorProfilerCallback9 * This,
6835             /* [in] */ FunctionID functionId,
6836             /* [in] */ COR_PRF_TRANSITION_REASON reason);
6837         
6838         HRESULT ( STDMETHODCALLTYPE *ManagedToUnmanagedTransition )( 
6839             ICorProfilerCallback9 * This,
6840             /* [in] */ FunctionID functionId,
6841             /* [in] */ COR_PRF_TRANSITION_REASON reason);
6842         
6843         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendStarted )( 
6844             ICorProfilerCallback9 * This,
6845             /* [in] */ COR_PRF_SUSPEND_REASON suspendReason);
6846         
6847         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendFinished )( 
6848             ICorProfilerCallback9 * This);
6849         
6850         HRESULT ( STDMETHODCALLTYPE *RuntimeSuspendAborted )( 
6851             ICorProfilerCallback9 * This);
6852         
6853         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeStarted )( 
6854             ICorProfilerCallback9 * This);
6855         
6856         HRESULT ( STDMETHODCALLTYPE *RuntimeResumeFinished )( 
6857             ICorProfilerCallback9 * This);
6858         
6859         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadSuspended )( 
6860             ICorProfilerCallback9 * This,
6861             /* [in] */ ThreadID threadId);
6862         
6863         HRESULT ( STDMETHODCALLTYPE *RuntimeThreadResumed )( 
6864             ICorProfilerCallback9 * This,
6865             /* [in] */ ThreadID threadId);
6866         
6867         HRESULT ( STDMETHODCALLTYPE *MovedReferences )( 
6868             ICorProfilerCallback9 * This,
6869             /* [in] */ ULONG cMovedObjectIDRanges,
6870             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
6871             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
6872             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
6873         
6874         HRESULT ( STDMETHODCALLTYPE *ObjectAllocated )( 
6875             ICorProfilerCallback9 * This,
6876             /* [in] */ ObjectID objectId,
6877             /* [in] */ ClassID classId);
6878         
6879         HRESULT ( STDMETHODCALLTYPE *ObjectsAllocatedByClass )( 
6880             ICorProfilerCallback9 * This,
6881             /* [in] */ ULONG cClassCount,
6882             /* [size_is][in] */ ClassID classIds[  ],
6883             /* [size_is][in] */ ULONG cObjects[  ]);
6884         
6885         HRESULT ( STDMETHODCALLTYPE *ObjectReferences )( 
6886             ICorProfilerCallback9 * This,
6887             /* [in] */ ObjectID objectId,
6888             /* [in] */ ClassID classId,
6889             /* [in] */ ULONG cObjectRefs,
6890             /* [size_is][in] */ ObjectID objectRefIds[  ]);
6891         
6892         HRESULT ( STDMETHODCALLTYPE *RootReferences )( 
6893             ICorProfilerCallback9 * This,
6894             /* [in] */ ULONG cRootRefs,
6895             /* [size_is][in] */ ObjectID rootRefIds[  ]);
6896         
6897         HRESULT ( STDMETHODCALLTYPE *ExceptionThrown )( 
6898             ICorProfilerCallback9 * This,
6899             /* [in] */ ObjectID thrownObjectId);
6900         
6901         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionEnter )( 
6902             ICorProfilerCallback9 * This,
6903             /* [in] */ FunctionID functionId);
6904         
6905         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFunctionLeave )( 
6906             ICorProfilerCallback9 * This);
6907         
6908         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterEnter )( 
6909             ICorProfilerCallback9 * This,
6910             /* [in] */ FunctionID functionId);
6911         
6912         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchFilterLeave )( 
6913             ICorProfilerCallback9 * This);
6914         
6915         HRESULT ( STDMETHODCALLTYPE *ExceptionSearchCatcherFound )( 
6916             ICorProfilerCallback9 * This,
6917             /* [in] */ FunctionID functionId);
6918         
6919         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerEnter )( 
6920             ICorProfilerCallback9 * This,
6921             /* [in] */ UINT_PTR __unused);
6922         
6923         HRESULT ( STDMETHODCALLTYPE *ExceptionOSHandlerLeave )( 
6924             ICorProfilerCallback9 * This,
6925             /* [in] */ UINT_PTR __unused);
6926         
6927         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionEnter )( 
6928             ICorProfilerCallback9 * This,
6929             /* [in] */ FunctionID functionId);
6930         
6931         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFunctionLeave )( 
6932             ICorProfilerCallback9 * This);
6933         
6934         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyEnter )( 
6935             ICorProfilerCallback9 * This,
6936             /* [in] */ FunctionID functionId);
6937         
6938         HRESULT ( STDMETHODCALLTYPE *ExceptionUnwindFinallyLeave )( 
6939             ICorProfilerCallback9 * This);
6940         
6941         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherEnter )( 
6942             ICorProfilerCallback9 * This,
6943             /* [in] */ FunctionID functionId,
6944             /* [in] */ ObjectID objectId);
6945         
6946         HRESULT ( STDMETHODCALLTYPE *ExceptionCatcherLeave )( 
6947             ICorProfilerCallback9 * This);
6948         
6949         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableCreated )( 
6950             ICorProfilerCallback9 * This,
6951             /* [in] */ ClassID wrappedClassId,
6952             /* [in] */ REFGUID implementedIID,
6953             /* [in] */ void *pVTable,
6954             /* [in] */ ULONG cSlots);
6955         
6956         HRESULT ( STDMETHODCALLTYPE *COMClassicVTableDestroyed )( 
6957             ICorProfilerCallback9 * This,
6958             /* [in] */ ClassID wrappedClassId,
6959             /* [in] */ REFGUID implementedIID,
6960             /* [in] */ void *pVTable);
6961         
6962         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherFound )( 
6963             ICorProfilerCallback9 * This);
6964         
6965         HRESULT ( STDMETHODCALLTYPE *ExceptionCLRCatcherExecute )( 
6966             ICorProfilerCallback9 * This);
6967         
6968         HRESULT ( STDMETHODCALLTYPE *ThreadNameChanged )( 
6969             ICorProfilerCallback9 * This,
6970             /* [in] */ ThreadID threadId,
6971             /* [in] */ ULONG cchName,
6972             /* [annotation][in] */ 
6973             _In_reads_opt_(cchName)  WCHAR name[  ]);
6974         
6975         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionStarted )( 
6976             ICorProfilerCallback9 * This,
6977             /* [in] */ int cGenerations,
6978             /* [size_is][in] */ BOOL generationCollected[  ],
6979             /* [in] */ COR_PRF_GC_REASON reason);
6980         
6981         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences )( 
6982             ICorProfilerCallback9 * This,
6983             /* [in] */ ULONG cSurvivingObjectIDRanges,
6984             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
6985             /* [size_is][in] */ ULONG cObjectIDRangeLength[  ]);
6986         
6987         HRESULT ( STDMETHODCALLTYPE *GarbageCollectionFinished )( 
6988             ICorProfilerCallback9 * This);
6989         
6990         HRESULT ( STDMETHODCALLTYPE *FinalizeableObjectQueued )( 
6991             ICorProfilerCallback9 * This,
6992             /* [in] */ DWORD finalizerFlags,
6993             /* [in] */ ObjectID objectID);
6994         
6995         HRESULT ( STDMETHODCALLTYPE *RootReferences2 )( 
6996             ICorProfilerCallback9 * This,
6997             /* [in] */ ULONG cRootRefs,
6998             /* [size_is][in] */ ObjectID rootRefIds[  ],
6999             /* [size_is][in] */ COR_PRF_GC_ROOT_KIND rootKinds[  ],
7000             /* [size_is][in] */ COR_PRF_GC_ROOT_FLAGS rootFlags[  ],
7001             /* [size_is][in] */ UINT_PTR rootIds[  ]);
7002         
7003         HRESULT ( STDMETHODCALLTYPE *HandleCreated )( 
7004             ICorProfilerCallback9 * This,
7005             /* [in] */ GCHandleID handleId,
7006             /* [in] */ ObjectID initialObjectId);
7007         
7008         HRESULT ( STDMETHODCALLTYPE *HandleDestroyed )( 
7009             ICorProfilerCallback9 * This,
7010             /* [in] */ GCHandleID handleId);
7011         
7012         HRESULT ( STDMETHODCALLTYPE *InitializeForAttach )( 
7013             ICorProfilerCallback9 * This,
7014             /* [in] */ IUnknown *pCorProfilerInfoUnk,
7015             /* [in] */ void *pvClientData,
7016             /* [in] */ UINT cbClientData);
7017         
7018         HRESULT ( STDMETHODCALLTYPE *ProfilerAttachComplete )( 
7019             ICorProfilerCallback9 * This);
7020         
7021         HRESULT ( STDMETHODCALLTYPE *ProfilerDetachSucceeded )( 
7022             ICorProfilerCallback9 * This);
7023         
7024         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationStarted )( 
7025             ICorProfilerCallback9 * This,
7026             /* [in] */ FunctionID functionId,
7027             /* [in] */ ReJITID rejitId,
7028             /* [in] */ BOOL fIsSafeToBlock);
7029         
7030         HRESULT ( STDMETHODCALLTYPE *GetReJITParameters )( 
7031             ICorProfilerCallback9 * This,
7032             /* [in] */ ModuleID moduleId,
7033             /* [in] */ mdMethodDef methodId,
7034             /* [in] */ ICorProfilerFunctionControl *pFunctionControl);
7035         
7036         HRESULT ( STDMETHODCALLTYPE *ReJITCompilationFinished )( 
7037             ICorProfilerCallback9 * This,
7038             /* [in] */ FunctionID functionId,
7039             /* [in] */ ReJITID rejitId,
7040             /* [in] */ HRESULT hrStatus,
7041             /* [in] */ BOOL fIsSafeToBlock);
7042         
7043         HRESULT ( STDMETHODCALLTYPE *ReJITError )( 
7044             ICorProfilerCallback9 * This,
7045             /* [in] */ ModuleID moduleId,
7046             /* [in] */ mdMethodDef methodId,
7047             /* [in] */ FunctionID functionId,
7048             /* [in] */ HRESULT hrStatus);
7049         
7050         HRESULT ( STDMETHODCALLTYPE *MovedReferences2 )( 
7051             ICorProfilerCallback9 * This,
7052             /* [in] */ ULONG cMovedObjectIDRanges,
7053             /* [size_is][in] */ ObjectID oldObjectIDRangeStart[  ],
7054             /* [size_is][in] */ ObjectID newObjectIDRangeStart[  ],
7055             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
7056         
7057         HRESULT ( STDMETHODCALLTYPE *SurvivingReferences2 )( 
7058             ICorProfilerCallback9 * This,
7059             /* [in] */ ULONG cSurvivingObjectIDRanges,
7060             /* [size_is][in] */ ObjectID objectIDRangeStart[  ],
7061             /* [size_is][in] */ SIZE_T cObjectIDRangeLength[  ]);
7062         
7063         HRESULT ( STDMETHODCALLTYPE *ConditionalWeakTableElementReferences )( 
7064             ICorProfilerCallback9 * This,
7065             /* [in] */ ULONG cRootRefs,
7066             /* [size_is][in] */ ObjectID keyRefIds[  ],
7067             /* [size_is][in] */ ObjectID valueRefIds[  ],
7068             /* [size_is][in] */ GCHandleID rootIds[  ]);
7069         
7070         HRESULT ( STDMETHODCALLTYPE *GetAssemblyReferences )( 
7071             ICorProfilerCallback9 * This,
7072             /* [string][in] */ const WCHAR *wszAssemblyPath,
7073             /* [in] */ ICorProfilerAssemblyReferenceProvider *pAsmRefProvider);
7074         
7075         HRESULT ( STDMETHODCALLTYPE *ModuleInMemorySymbolsUpdated )( 
7076             ICorProfilerCallback9 * This,
7077             ModuleID moduleId);
7078         
7079         HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationStarted )( 
7080             ICorProfilerCallback9 * This,
7081             /* [in] */ FunctionID functionId,
7082             /* [in] */ BOOL fIsSafeToBlock,
7083             /* [in] */ LPCBYTE pILHeader,
7084             /* [in] */ ULONG cbILHeader);
7085         
7086         HRESULT ( STDMETHODCALLTYPE *DynamicMethodJITCompilationFinished )( 
7087             ICorProfilerCallback9 * This,
7088             /* [in] */ FunctionID functionId,
7089             /* [in] */ HRESULT hrStatus,
7090             /* [in] */ BOOL fIsSafeToBlock);
7091         
7092         HRESULT ( STDMETHODCALLTYPE *DynamicMethodUnloaded )( 
7093             ICorProfilerCallback9 * This,
7094             /* [in] */ FunctionID functionId);
7095         
7096         END_INTERFACE
7097     } ICorProfilerCallback9Vtbl;
7098
7099     interface ICorProfilerCallback9
7100     {
7101         CONST_VTBL struct ICorProfilerCallback9Vtbl *lpVtbl;
7102     };
7103
7104     
7105
7106 #ifdef COBJMACROS
7107
7108
7109 #define ICorProfilerCallback9_QueryInterface(This,riid,ppvObject)       \
7110     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7111
7112 #define ICorProfilerCallback9_AddRef(This)      \
7113     ( (This)->lpVtbl -> AddRef(This) ) 
7114
7115 #define ICorProfilerCallback9_Release(This)     \
7116     ( (This)->lpVtbl -> Release(This) ) 
7117
7118
7119 #define ICorProfilerCallback9_Initialize(This,pICorProfilerInfoUnk)     \
7120     ( (This)->lpVtbl -> Initialize(This,pICorProfilerInfoUnk) ) 
7121
7122 #define ICorProfilerCallback9_Shutdown(This)    \
7123     ( (This)->lpVtbl -> Shutdown(This) ) 
7124
7125 #define ICorProfilerCallback9_AppDomainCreationStarted(This,appDomainId)        \
7126     ( (This)->lpVtbl -> AppDomainCreationStarted(This,appDomainId) ) 
7127
7128 #define ICorProfilerCallback9_AppDomainCreationFinished(This,appDomainId,hrStatus)      \
7129     ( (This)->lpVtbl -> AppDomainCreationFinished(This,appDomainId,hrStatus) ) 
7130
7131 #define ICorProfilerCallback9_AppDomainShutdownStarted(This,appDomainId)        \
7132     ( (This)->lpVtbl -> AppDomainShutdownStarted(This,appDomainId) ) 
7133
7134 #define ICorProfilerCallback9_AppDomainShutdownFinished(This,appDomainId,hrStatus)      \
7135     ( (This)->lpVtbl -> AppDomainShutdownFinished(This,appDomainId,hrStatus) ) 
7136
7137 #define ICorProfilerCallback9_AssemblyLoadStarted(This,assemblyId)      \
7138     ( (This)->lpVtbl -> AssemblyLoadStarted(This,assemblyId) ) 
7139
7140 #define ICorProfilerCallback9_AssemblyLoadFinished(This,assemblyId,hrStatus)    \
7141     ( (This)->lpVtbl -> AssemblyLoadFinished(This,assemblyId,hrStatus) ) 
7142
7143 #define ICorProfilerCallback9_AssemblyUnloadStarted(This,assemblyId)    \
7144     ( (This)->lpVtbl -> AssemblyUnloadStarted(This,assemblyId) ) 
7145
7146 #define ICorProfilerCallback9_AssemblyUnloadFinished(This,assemblyId,hrStatus)  \
7147     ( (This)->lpVtbl -> AssemblyUnloadFinished(This,assemblyId,hrStatus) ) 
7148
7149 #define ICorProfilerCallback9_ModuleLoadStarted(This,moduleId)  \
7150     ( (This)->lpVtbl -> ModuleLoadStarted(This,moduleId) ) 
7151
7152 #define ICorProfilerCallback9_ModuleLoadFinished(This,moduleId,hrStatus)        \
7153     ( (This)->lpVtbl -> ModuleLoadFinished(This,moduleId,hrStatus) ) 
7154
7155 #define ICorProfilerCallback9_ModuleUnloadStarted(This,moduleId)        \
7156     ( (This)->lpVtbl -> ModuleUnloadStarted(This,moduleId) ) 
7157
7158 #define ICorProfilerCallback9_ModuleUnloadFinished(This,moduleId,hrStatus)      \
7159     ( (This)->lpVtbl -> ModuleUnloadFinished(This,moduleId,hrStatus) ) 
7160
7161 #define ICorProfilerCallback9_ModuleAttachedToAssembly(This,moduleId,AssemblyId)        \
7162     ( (This)->lpVtbl -> ModuleAttachedToAssembly(This,moduleId,AssemblyId) ) 
7163
7164 #define ICorProfilerCallback9_ClassLoadStarted(This,classId)    \
7165     ( (This)->lpVtbl -> ClassLoadStarted(This,classId) ) 
7166
7167 #define ICorProfilerCallback9_ClassLoadFinished(This,classId,hrStatus)  \
7168     ( (This)->lpVtbl -> ClassLoadFinished(This,classId,hrStatus) ) 
7169
7170 #define ICorProfilerCallback9_ClassUnloadStarted(This,classId)  \
7171     ( (This)->lpVtbl -> ClassUnloadStarted(This,classId) ) 
7172
7173 #define ICorProfilerCallback9_ClassUnloadFinished(This,classId,hrStatus)        \
7174     ( (This)->lpVtbl -> ClassUnloadFinished(This,classId,hrStatus) ) 
7175
7176 #define ICorProfilerCallback9_FunctionUnloadStarted(This,functionId)    \
7177     ( (This)->lpVtbl -> FunctionUnloadStarted(This,functionId) ) 
7178
7179 #define ICorProfilerCallback9_JITCompilationStarted(This,functionId,fIsSafeToBlock)     \
7180     ( (This)->lpVtbl -> JITCompilationStarted(This,functionId,fIsSafeToBlock) ) 
7181
7182 #define ICorProfilerCallback9_JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)   \
7183     ( (This)->lpVtbl -> JITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
7184
7185 #define ICorProfilerCallback9_JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction)       \
7186     ( (This)->lpVtbl -> JITCachedFunctionSearchStarted(This,functionId,pbUseCachedFunction) ) 
7187
7188 #define ICorProfilerCallback9_JITCachedFunctionSearchFinished(This,functionId,result)   \
7189     ( (This)->lpVtbl -> JITCachedFunctionSearchFinished(This,functionId,result) ) 
7190
7191 #define ICorProfilerCallback9_JITFunctionPitched(This,functionId)       \
7192     ( (This)->lpVtbl -> JITFunctionPitched(This,functionId) ) 
7193
7194 #define ICorProfilerCallback9_JITInlining(This,callerId,calleeId,pfShouldInline)        \
7195     ( (This)->lpVtbl -> JITInlining(This,callerId,calleeId,pfShouldInline) ) 
7196
7197 #define ICorProfilerCallback9_ThreadCreated(This,threadId)      \
7198     ( (This)->lpVtbl -> ThreadCreated(This,threadId) ) 
7199
7200 #define ICorProfilerCallback9_ThreadDestroyed(This,threadId)    \
7201     ( (This)->lpVtbl -> ThreadDestroyed(This,threadId) ) 
7202
7203 #define ICorProfilerCallback9_ThreadAssignedToOSThread(This,managedThreadId,osThreadId) \
7204     ( (This)->lpVtbl -> ThreadAssignedToOSThread(This,managedThreadId,osThreadId) ) 
7205
7206 #define ICorProfilerCallback9_RemotingClientInvocationStarted(This)     \
7207     ( (This)->lpVtbl -> RemotingClientInvocationStarted(This) ) 
7208
7209 #define ICorProfilerCallback9_RemotingClientSendingMessage(This,pCookie,fIsAsync)       \
7210     ( (This)->lpVtbl -> RemotingClientSendingMessage(This,pCookie,fIsAsync) ) 
7211
7212 #define ICorProfilerCallback9_RemotingClientReceivingReply(This,pCookie,fIsAsync)       \
7213     ( (This)->lpVtbl -> RemotingClientReceivingReply(This,pCookie,fIsAsync) ) 
7214
7215 #define ICorProfilerCallback9_RemotingClientInvocationFinished(This)    \
7216     ( (This)->lpVtbl -> RemotingClientInvocationFinished(This) ) 
7217
7218 #define ICorProfilerCallback9_RemotingServerReceivingMessage(This,pCookie,fIsAsync)     \
7219     ( (This)->lpVtbl -> RemotingServerReceivingMessage(This,pCookie,fIsAsync) ) 
7220
7221 #define ICorProfilerCallback9_RemotingServerInvocationStarted(This)     \
7222     ( (This)->lpVtbl -> RemotingServerInvocationStarted(This) ) 
7223
7224 #define ICorProfilerCallback9_RemotingServerInvocationReturned(This)    \
7225     ( (This)->lpVtbl -> RemotingServerInvocationReturned(This) ) 
7226
7227 #define ICorProfilerCallback9_RemotingServerSendingReply(This,pCookie,fIsAsync) \
7228     ( (This)->lpVtbl -> RemotingServerSendingReply(This,pCookie,fIsAsync) ) 
7229
7230 #define ICorProfilerCallback9_UnmanagedToManagedTransition(This,functionId,reason)      \
7231     ( (This)->lpVtbl -> UnmanagedToManagedTransition(This,functionId,reason) ) 
7232
7233 #define ICorProfilerCallback9_ManagedToUnmanagedTransition(This,functionId,reason)      \
7234     ( (This)->lpVtbl -> ManagedToUnmanagedTransition(This,functionId,reason) ) 
7235
7236 #define ICorProfilerCallback9_RuntimeSuspendStarted(This,suspendReason) \
7237     ( (This)->lpVtbl -> RuntimeSuspendStarted(This,suspendReason) ) 
7238
7239 #define ICorProfilerCallback9_RuntimeSuspendFinished(This)      \
7240     ( (This)->lpVtbl -> RuntimeSuspendFinished(This) ) 
7241
7242 #define ICorProfilerCallback9_RuntimeSuspendAborted(This)       \
7243     ( (This)->lpVtbl -> RuntimeSuspendAborted(This) ) 
7244
7245 #define ICorProfilerCallback9_RuntimeResumeStarted(This)        \
7246     ( (This)->lpVtbl -> RuntimeResumeStarted(This) ) 
7247
7248 #define ICorProfilerCallback9_RuntimeResumeFinished(This)       \
7249     ( (This)->lpVtbl -> RuntimeResumeFinished(This) ) 
7250
7251 #define ICorProfilerCallback9_RuntimeThreadSuspended(This,threadId)     \
7252     ( (This)->lpVtbl -> RuntimeThreadSuspended(This,threadId) ) 
7253
7254 #define ICorProfilerCallback9_RuntimeThreadResumed(This,threadId)       \
7255     ( (This)->lpVtbl -> RuntimeThreadResumed(This,threadId) ) 
7256
7257 #define ICorProfilerCallback9_MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)       \
7258     ( (This)->lpVtbl -> MovedReferences(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
7259
7260 #define ICorProfilerCallback9_ObjectAllocated(This,objectId,classId)    \
7261     ( (This)->lpVtbl -> ObjectAllocated(This,objectId,classId) ) 
7262
7263 #define ICorProfilerCallback9_ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects)       \
7264     ( (This)->lpVtbl -> ObjectsAllocatedByClass(This,cClassCount,classIds,cObjects) ) 
7265
7266 #define ICorProfilerCallback9_ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds)  \
7267     ( (This)->lpVtbl -> ObjectReferences(This,objectId,classId,cObjectRefs,objectRefIds) ) 
7268
7269 #define ICorProfilerCallback9_RootReferences(This,cRootRefs,rootRefIds) \
7270     ( (This)->lpVtbl -> RootReferences(This,cRootRefs,rootRefIds) ) 
7271
7272 #define ICorProfilerCallback9_ExceptionThrown(This,thrownObjectId)      \
7273     ( (This)->lpVtbl -> ExceptionThrown(This,thrownObjectId) ) 
7274
7275 #define ICorProfilerCallback9_ExceptionSearchFunctionEnter(This,functionId)     \
7276     ( (This)->lpVtbl -> ExceptionSearchFunctionEnter(This,functionId) ) 
7277
7278 #define ICorProfilerCallback9_ExceptionSearchFunctionLeave(This)        \
7279     ( (This)->lpVtbl -> ExceptionSearchFunctionLeave(This) ) 
7280
7281 #define ICorProfilerCallback9_ExceptionSearchFilterEnter(This,functionId)       \
7282     ( (This)->lpVtbl -> ExceptionSearchFilterEnter(This,functionId) ) 
7283
7284 #define ICorProfilerCallback9_ExceptionSearchFilterLeave(This)  \
7285     ( (This)->lpVtbl -> ExceptionSearchFilterLeave(This) ) 
7286
7287 #define ICorProfilerCallback9_ExceptionSearchCatcherFound(This,functionId)      \
7288     ( (This)->lpVtbl -> ExceptionSearchCatcherFound(This,functionId) ) 
7289
7290 #define ICorProfilerCallback9_ExceptionOSHandlerEnter(This,__unused)    \
7291     ( (This)->lpVtbl -> ExceptionOSHandlerEnter(This,__unused) ) 
7292
7293 #define ICorProfilerCallback9_ExceptionOSHandlerLeave(This,__unused)    \
7294     ( (This)->lpVtbl -> ExceptionOSHandlerLeave(This,__unused) ) 
7295
7296 #define ICorProfilerCallback9_ExceptionUnwindFunctionEnter(This,functionId)     \
7297     ( (This)->lpVtbl -> ExceptionUnwindFunctionEnter(This,functionId) ) 
7298
7299 #define ICorProfilerCallback9_ExceptionUnwindFunctionLeave(This)        \
7300     ( (This)->lpVtbl -> ExceptionUnwindFunctionLeave(This) ) 
7301
7302 #define ICorProfilerCallback9_ExceptionUnwindFinallyEnter(This,functionId)      \
7303     ( (This)->lpVtbl -> ExceptionUnwindFinallyEnter(This,functionId) ) 
7304
7305 #define ICorProfilerCallback9_ExceptionUnwindFinallyLeave(This) \
7306     ( (This)->lpVtbl -> ExceptionUnwindFinallyLeave(This) ) 
7307
7308 #define ICorProfilerCallback9_ExceptionCatcherEnter(This,functionId,objectId)   \
7309     ( (This)->lpVtbl -> ExceptionCatcherEnter(This,functionId,objectId) ) 
7310
7311 #define ICorProfilerCallback9_ExceptionCatcherLeave(This)       \
7312     ( (This)->lpVtbl -> ExceptionCatcherLeave(This) ) 
7313
7314 #define ICorProfilerCallback9_COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots)        \
7315     ( (This)->lpVtbl -> COMClassicVTableCreated(This,wrappedClassId,implementedIID,pVTable,cSlots) ) 
7316
7317 #define ICorProfilerCallback9_COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable)     \
7318     ( (This)->lpVtbl -> COMClassicVTableDestroyed(This,wrappedClassId,implementedIID,pVTable) ) 
7319
7320 #define ICorProfilerCallback9_ExceptionCLRCatcherFound(This)    \
7321     ( (This)->lpVtbl -> ExceptionCLRCatcherFound(This) ) 
7322
7323 #define ICorProfilerCallback9_ExceptionCLRCatcherExecute(This)  \
7324     ( (This)->lpVtbl -> ExceptionCLRCatcherExecute(This) ) 
7325
7326
7327 #define ICorProfilerCallback9_ThreadNameChanged(This,threadId,cchName,name)     \
7328     ( (This)->lpVtbl -> ThreadNameChanged(This,threadId,cchName,name) ) 
7329
7330 #define ICorProfilerCallback9_GarbageCollectionStarted(This,cGenerations,generationCollected,reason)    \
7331     ( (This)->lpVtbl -> GarbageCollectionStarted(This,cGenerations,generationCollected,reason) ) 
7332
7333 #define ICorProfilerCallback9_SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)        \
7334     ( (This)->lpVtbl -> SurvivingReferences(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
7335
7336 #define ICorProfilerCallback9_GarbageCollectionFinished(This)   \
7337     ( (This)->lpVtbl -> GarbageCollectionFinished(This) ) 
7338
7339 #define ICorProfilerCallback9_FinalizeableObjectQueued(This,finalizerFlags,objectID)    \
7340     ( (This)->lpVtbl -> FinalizeableObjectQueued(This,finalizerFlags,objectID) ) 
7341
7342 #define ICorProfilerCallback9_RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds)    \
7343     ( (This)->lpVtbl -> RootReferences2(This,cRootRefs,rootRefIds,rootKinds,rootFlags,rootIds) ) 
7344
7345 #define ICorProfilerCallback9_HandleCreated(This,handleId,initialObjectId)      \
7346     ( (This)->lpVtbl -> HandleCreated(This,handleId,initialObjectId) ) 
7347
7348 #define ICorProfilerCallback9_HandleDestroyed(This,handleId)    \
7349     ( (This)->lpVtbl -> HandleDestroyed(This,handleId) ) 
7350
7351
7352 #define ICorProfilerCallback9_InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData)   \
7353     ( (This)->lpVtbl -> InitializeForAttach(This,pCorProfilerInfoUnk,pvClientData,cbClientData) ) 
7354
7355 #define ICorProfilerCallback9_ProfilerAttachComplete(This)      \
7356     ( (This)->lpVtbl -> ProfilerAttachComplete(This) ) 
7357
7358 #define ICorProfilerCallback9_ProfilerDetachSucceeded(This)     \
7359     ( (This)->lpVtbl -> ProfilerDetachSucceeded(This) ) 
7360
7361
7362 #define ICorProfilerCallback9_ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock)   \
7363     ( (This)->lpVtbl -> ReJITCompilationStarted(This,functionId,rejitId,fIsSafeToBlock) ) 
7364
7365 #define ICorProfilerCallback9_GetReJITParameters(This,moduleId,methodId,pFunctionControl)       \
7366     ( (This)->lpVtbl -> GetReJITParameters(This,moduleId,methodId,pFunctionControl) ) 
7367
7368 #define ICorProfilerCallback9_ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) \
7369     ( (This)->lpVtbl -> ReJITCompilationFinished(This,functionId,rejitId,hrStatus,fIsSafeToBlock) ) 
7370
7371 #define ICorProfilerCallback9_ReJITError(This,moduleId,methodId,functionId,hrStatus)    \
7372     ( (This)->lpVtbl -> ReJITError(This,moduleId,methodId,functionId,hrStatus) ) 
7373
7374 #define ICorProfilerCallback9_MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength)      \
7375     ( (This)->lpVtbl -> MovedReferences2(This,cMovedObjectIDRanges,oldObjectIDRangeStart,newObjectIDRangeStart,cObjectIDRangeLength) ) 
7376
7377 #define ICorProfilerCallback9_SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength)       \
7378     ( (This)->lpVtbl -> SurvivingReferences2(This,cSurvivingObjectIDRanges,objectIDRangeStart,cObjectIDRangeLength) ) 
7379
7380
7381 #define ICorProfilerCallback9_ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds)       \
7382     ( (This)->lpVtbl -> ConditionalWeakTableElementReferences(This,cRootRefs,keyRefIds,valueRefIds,rootIds) ) 
7383
7384
7385 #define ICorProfilerCallback9_GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider)       \
7386     ( (This)->lpVtbl -> GetAssemblyReferences(This,wszAssemblyPath,pAsmRefProvider) ) 
7387
7388
7389 #define ICorProfilerCallback9_ModuleInMemorySymbolsUpdated(This,moduleId)       \
7390     ( (This)->lpVtbl -> ModuleInMemorySymbolsUpdated(This,moduleId) ) 
7391
7392
7393 #define ICorProfilerCallback9_DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader)   \
7394     ( (This)->lpVtbl -> DynamicMethodJITCompilationStarted(This,functionId,fIsSafeToBlock,pILHeader,cbILHeader) ) 
7395
7396 #define ICorProfilerCallback9_DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock)      \
7397     ( (This)->lpVtbl -> DynamicMethodJITCompilationFinished(This,functionId,hrStatus,fIsSafeToBlock) ) 
7398
7399
7400 #define ICorProfilerCallback9_DynamicMethodUnloaded(This,functionId)    \
7401     ( (This)->lpVtbl -> DynamicMethodUnloaded(This,functionId) ) 
7402
7403 #endif /* COBJMACROS */
7404
7405
7406 #endif  /* C style interface */
7407
7408
7409
7410
7411 #endif  /* __ICorProfilerCallback9_INTERFACE_DEFINED__ */
7412
7413
7414 /* interface __MIDL_itf_corprof_0000_0009 */
7415 /* [local] */ 
7416
7417 typedef /* [public] */ 
7418 enum __MIDL___MIDL_itf_corprof_0000_0009_0001
7419     {
7420         COR_PRF_CODEGEN_DISABLE_INLINING        = 0x1,
7421         COR_PRF_CODEGEN_DISABLE_ALL_OPTIMIZATIONS       = 0x2
7422     }   COR_PRF_CODEGEN_FLAGS;
7423
7424
7425
7426 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_c_ifspec;
7427 extern RPC_IF_HANDLE __MIDL_itf_corprof_0000_0009_v0_0_s_ifspec;
7428
7429 #ifndef __ICorProfilerInfo_INTERFACE_DEFINED__
7430 #define __ICorProfilerInfo_INTERFACE_DEFINED__
7431
7432 /* interface ICorProfilerInfo */
7433 /* [local][unique][uuid][object] */ 
7434
7435
7436 EXTERN_C const IID IID_ICorProfilerInfo;
7437
7438 #if defined(__cplusplus) && !defined(CINTERFACE)
7439     
7440     MIDL_INTERFACE("28B5557D-3F3F-48b4-90B2-5F9EEA2F6C48")
7441     ICorProfilerInfo : public IUnknown
7442     {
7443     public:
7444         virtual HRESULT STDMETHODCALLTYPE GetClassFromObject( 
7445             /* [in] */ ObjectID objectId,
7446             /* [out] */ ClassID *pClassId) = 0;
7447         
7448         virtual HRESULT STDMETHODCALLTYPE GetClassFromToken( 
7449             /* [in] */ ModuleID moduleId,
7450             /* [in] */ mdTypeDef typeDef,
7451             /* [out] */ ClassID *pClassId) = 0;
7452         
7453         virtual HRESULT STDMETHODCALLTYPE GetCodeInfo( 
7454             /* [in] */ FunctionID functionId,
7455             /* [out] */ LPCBYTE *pStart,
7456             /* [out] */ ULONG *pcSize) = 0;
7457         
7458         virtual HRESULT STDMETHODCALLTYPE GetEventMask( 
7459             /* [out] */ DWORD *pdwEvents) = 0;
7460         
7461         virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP( 
7462             /* [in] */ LPCBYTE ip,
7463             /* [out] */ FunctionID *pFunctionId) = 0;
7464         
7465         virtual HRESULT STDMETHODCALLTYPE GetFunctionFromToken( 
7466             /* [in] */ ModuleID moduleId,
7467             /* [in] */ mdToken token,
7468             /* [out] */ FunctionID *pFunctionId) = 0;
7469         
7470         virtual HRESULT STDMETHODCALLTYPE GetHandleFromThread( 
7471             /* [in] */ ThreadID threadId,
7472             /* [out] */ HANDLE *phThread) = 0;
7473         
7474         virtual HRESULT STDMETHODCALLTYPE GetObjectSize( 
7475             /* [in] */ ObjectID objectId,
7476             /* [out] */ ULONG *pcSize) = 0;
7477         
7478         virtual HRESULT STDMETHODCALLTYPE IsArrayClass( 
7479             /* [in] */ ClassID classId,
7480             /* [out] */ CorElementType *pBaseElemType,
7481             /* [out] */ ClassID *pBaseClassId,
7482             /* [out] */ ULONG *pcRank) = 0;
7483         
7484         virtual HRESULT STDMETHODCALLTYPE GetThreadInfo( 
7485             /* [in] */ ThreadID threadId,
7486             /* [out] */ DWORD *pdwWin32ThreadId) = 0;
7487         
7488         virtual HRESULT STDMETHODCALLTYPE GetCurrentThreadID( 
7489             /* [out] */ ThreadID *pThreadId) = 0;
7490         
7491         virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo( 
7492             /* [in] */ ClassID classId,
7493             /* [out] */ ModuleID *pModuleId,
7494             /* [out] */ mdTypeDef *pTypeDefToken) = 0;
7495         
7496         virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo( 
7497             /* [in] */ FunctionID functionId,
7498             /* [out] */ ClassID *pClassId,
7499             /* [out] */ ModuleID *pModuleId,
7500             /* [out] */ mdToken *pToken) = 0;
7501         
7502         virtual HRESULT STDMETHODCALLTYPE SetEventMask( 
7503             /* [in] */ DWORD dwEvents) = 0;
7504         
7505         virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks( 
7506             /* [in] */ FunctionEnter *pFuncEnter,
7507             /* [in] */ FunctionLeave *pFuncLeave,
7508             /* [in] */ FunctionTailcall *pFuncTailcall) = 0;
7509         
7510         virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper( 
7511             /* [in] */ FunctionIDMapper *pFunc) = 0;
7512         
7513         virtual HRESULT STDMETHODCALLTYPE GetTokenAndMetaDataFromFunction( 
7514             /* [in] */ FunctionID functionId,
7515             /* [in] */ REFIID riid,
7516             /* [out] */ IUnknown **ppImport,
7517             /* [out] */ mdToken *pToken) = 0;
7518         
7519         virtual HRESULT STDMETHODCALLTYPE GetModuleInfo( 
7520             /* [in] */ ModuleID moduleId,
7521             /* [out] */ LPCBYTE *ppBaseLoadAddress,
7522             /* [in] */ ULONG cchName,
7523             /* [out] */ ULONG *pcchName,
7524             /* [annotation][out] */ 
7525             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7526             /* [out] */ AssemblyID *pAssemblyId) = 0;
7527         
7528         virtual HRESULT STDMETHODCALLTYPE GetModuleMetaData( 
7529             /* [in] */ ModuleID moduleId,
7530             /* [in] */ DWORD dwOpenFlags,
7531             /* [in] */ REFIID riid,
7532             /* [out] */ IUnknown **ppOut) = 0;
7533         
7534         virtual HRESULT STDMETHODCALLTYPE GetILFunctionBody( 
7535             /* [in] */ ModuleID moduleId,
7536             /* [in] */ mdMethodDef methodId,
7537             /* [out] */ LPCBYTE *ppMethodHeader,
7538             /* [out] */ ULONG *pcbMethodSize) = 0;
7539         
7540         virtual HRESULT STDMETHODCALLTYPE GetILFunctionBodyAllocator( 
7541             /* [in] */ ModuleID moduleId,
7542             /* [out] */ IMethodMalloc **ppMalloc) = 0;
7543         
7544         virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody( 
7545             /* [in] */ ModuleID moduleId,
7546             /* [in] */ mdMethodDef methodid,
7547             /* [in] */ LPCBYTE pbNewILMethodHeader) = 0;
7548         
7549         virtual HRESULT STDMETHODCALLTYPE GetAppDomainInfo( 
7550             /* [in] */ AppDomainID appDomainId,
7551             /* [in] */ ULONG cchName,
7552             /* [out] */ ULONG *pcchName,
7553             /* [annotation][out] */ 
7554             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7555             /* [out] */ ProcessID *pProcessId) = 0;
7556         
7557         virtual HRESULT STDMETHODCALLTYPE GetAssemblyInfo( 
7558             /* [in] */ AssemblyID assemblyId,
7559             /* [in] */ ULONG cchName,
7560             /* [out] */ ULONG *pcchName,
7561             /* [annotation][out] */ 
7562             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7563             /* [out] */ AppDomainID *pAppDomainId,
7564             /* [out] */ ModuleID *pModuleId) = 0;
7565         
7566         virtual HRESULT STDMETHODCALLTYPE SetFunctionReJIT( 
7567             /* [in] */ FunctionID functionId) = 0;
7568         
7569         virtual HRESULT STDMETHODCALLTYPE ForceGC( void) = 0;
7570         
7571         virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap( 
7572             /* [in] */ FunctionID functionId,
7573             /* [in] */ BOOL fStartJit,
7574             /* [in] */ ULONG cILMapEntries,
7575             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]) = 0;
7576         
7577         virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionInterface( 
7578             /* [out] */ IUnknown **ppicd) = 0;
7579         
7580         virtual HRESULT STDMETHODCALLTYPE GetInprocInspectionIThisThread( 
7581             /* [out] */ IUnknown **ppicd) = 0;
7582         
7583         virtual HRESULT STDMETHODCALLTYPE GetThreadContext( 
7584             /* [in] */ ThreadID threadId,
7585             /* [out] */ ContextID *pContextId) = 0;
7586         
7587         virtual HRESULT STDMETHODCALLTYPE BeginInprocDebugging( 
7588             /* [in] */ BOOL fThisThreadOnly,
7589             /* [out] */ DWORD *pdwProfilerContext) = 0;
7590         
7591         virtual HRESULT STDMETHODCALLTYPE EndInprocDebugging( 
7592             /* [in] */ DWORD dwProfilerContext) = 0;
7593         
7594         virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping( 
7595             /* [in] */ FunctionID functionId,
7596             /* [in] */ ULONG32 cMap,
7597             /* [out] */ ULONG32 *pcMap,
7598             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]) = 0;
7599         
7600     };
7601     
7602     
7603 #else   /* C style interface */
7604
7605     typedef struct ICorProfilerInfoVtbl
7606     {
7607         BEGIN_INTERFACE
7608         
7609         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
7610             ICorProfilerInfo * This,
7611             /* [in] */ REFIID riid,
7612             /* [annotation][iid_is][out] */ 
7613             _COM_Outptr_  void **ppvObject);
7614         
7615         ULONG ( STDMETHODCALLTYPE *AddRef )( 
7616             ICorProfilerInfo * This);
7617         
7618         ULONG ( STDMETHODCALLTYPE *Release )( 
7619             ICorProfilerInfo * This);
7620         
7621         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
7622             ICorProfilerInfo * This,
7623             /* [in] */ ObjectID objectId,
7624             /* [out] */ ClassID *pClassId);
7625         
7626         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
7627             ICorProfilerInfo * This,
7628             /* [in] */ ModuleID moduleId,
7629             /* [in] */ mdTypeDef typeDef,
7630             /* [out] */ ClassID *pClassId);
7631         
7632         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
7633             ICorProfilerInfo * This,
7634             /* [in] */ FunctionID functionId,
7635             /* [out] */ LPCBYTE *pStart,
7636             /* [out] */ ULONG *pcSize);
7637         
7638         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
7639             ICorProfilerInfo * This,
7640             /* [out] */ DWORD *pdwEvents);
7641         
7642         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
7643             ICorProfilerInfo * This,
7644             /* [in] */ LPCBYTE ip,
7645             /* [out] */ FunctionID *pFunctionId);
7646         
7647         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
7648             ICorProfilerInfo * This,
7649             /* [in] */ ModuleID moduleId,
7650             /* [in] */ mdToken token,
7651             /* [out] */ FunctionID *pFunctionId);
7652         
7653         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
7654             ICorProfilerInfo * This,
7655             /* [in] */ ThreadID threadId,
7656             /* [out] */ HANDLE *phThread);
7657         
7658         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
7659             ICorProfilerInfo * This,
7660             /* [in] */ ObjectID objectId,
7661             /* [out] */ ULONG *pcSize);
7662         
7663         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
7664             ICorProfilerInfo * This,
7665             /* [in] */ ClassID classId,
7666             /* [out] */ CorElementType *pBaseElemType,
7667             /* [out] */ ClassID *pBaseClassId,
7668             /* [out] */ ULONG *pcRank);
7669         
7670         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
7671             ICorProfilerInfo * This,
7672             /* [in] */ ThreadID threadId,
7673             /* [out] */ DWORD *pdwWin32ThreadId);
7674         
7675         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
7676             ICorProfilerInfo * This,
7677             /* [out] */ ThreadID *pThreadId);
7678         
7679         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
7680             ICorProfilerInfo * This,
7681             /* [in] */ ClassID classId,
7682             /* [out] */ ModuleID *pModuleId,
7683             /* [out] */ mdTypeDef *pTypeDefToken);
7684         
7685         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
7686             ICorProfilerInfo * This,
7687             /* [in] */ FunctionID functionId,
7688             /* [out] */ ClassID *pClassId,
7689             /* [out] */ ModuleID *pModuleId,
7690             /* [out] */ mdToken *pToken);
7691         
7692         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
7693             ICorProfilerInfo * This,
7694             /* [in] */ DWORD dwEvents);
7695         
7696         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
7697             ICorProfilerInfo * This,
7698             /* [in] */ FunctionEnter *pFuncEnter,
7699             /* [in] */ FunctionLeave *pFuncLeave,
7700             /* [in] */ FunctionTailcall *pFuncTailcall);
7701         
7702         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
7703             ICorProfilerInfo * This,
7704             /* [in] */ FunctionIDMapper *pFunc);
7705         
7706         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
7707             ICorProfilerInfo * This,
7708             /* [in] */ FunctionID functionId,
7709             /* [in] */ REFIID riid,
7710             /* [out] */ IUnknown **ppImport,
7711             /* [out] */ mdToken *pToken);
7712         
7713         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
7714             ICorProfilerInfo * This,
7715             /* [in] */ ModuleID moduleId,
7716             /* [out] */ LPCBYTE *ppBaseLoadAddress,
7717             /* [in] */ ULONG cchName,
7718             /* [out] */ ULONG *pcchName,
7719             /* [annotation][out] */ 
7720             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7721             /* [out] */ AssemblyID *pAssemblyId);
7722         
7723         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
7724             ICorProfilerInfo * This,
7725             /* [in] */ ModuleID moduleId,
7726             /* [in] */ DWORD dwOpenFlags,
7727             /* [in] */ REFIID riid,
7728             /* [out] */ IUnknown **ppOut);
7729         
7730         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
7731             ICorProfilerInfo * This,
7732             /* [in] */ ModuleID moduleId,
7733             /* [in] */ mdMethodDef methodId,
7734             /* [out] */ LPCBYTE *ppMethodHeader,
7735             /* [out] */ ULONG *pcbMethodSize);
7736         
7737         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
7738             ICorProfilerInfo * This,
7739             /* [in] */ ModuleID moduleId,
7740             /* [out] */ IMethodMalloc **ppMalloc);
7741         
7742         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
7743             ICorProfilerInfo * This,
7744             /* [in] */ ModuleID moduleId,
7745             /* [in] */ mdMethodDef methodid,
7746             /* [in] */ LPCBYTE pbNewILMethodHeader);
7747         
7748         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
7749             ICorProfilerInfo * This,
7750             /* [in] */ AppDomainID appDomainId,
7751             /* [in] */ ULONG cchName,
7752             /* [out] */ ULONG *pcchName,
7753             /* [annotation][out] */ 
7754             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7755             /* [out] */ ProcessID *pProcessId);
7756         
7757         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
7758             ICorProfilerInfo * This,
7759             /* [in] */ AssemblyID assemblyId,
7760             /* [in] */ ULONG cchName,
7761             /* [out] */ ULONG *pcchName,
7762             /* [annotation][out] */ 
7763             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
7764             /* [out] */ AppDomainID *pAppDomainId,
7765             /* [out] */ ModuleID *pModuleId);
7766         
7767         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
7768             ICorProfilerInfo * This,
7769             /* [in] */ FunctionID functionId);
7770         
7771         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
7772             ICorProfilerInfo * This);
7773         
7774         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
7775             ICorProfilerInfo * This,
7776             /* [in] */ FunctionID functionId,
7777             /* [in] */ BOOL fStartJit,
7778             /* [in] */ ULONG cILMapEntries,
7779             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
7780         
7781         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
7782             ICorProfilerInfo * This,
7783             /* [out] */ IUnknown **ppicd);
7784         
7785         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
7786             ICorProfilerInfo * This,
7787             /* [out] */ IUnknown **ppicd);
7788         
7789         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
7790             ICorProfilerInfo * This,
7791             /* [in] */ ThreadID threadId,
7792             /* [out] */ ContextID *pContextId);
7793         
7794         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
7795             ICorProfilerInfo * This,
7796             /* [in] */ BOOL fThisThreadOnly,
7797             /* [out] */ DWORD *pdwProfilerContext);
7798         
7799         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
7800             ICorProfilerInfo * This,
7801             /* [in] */ DWORD dwProfilerContext);
7802         
7803         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
7804             ICorProfilerInfo * This,
7805             /* [in] */ FunctionID functionId,
7806             /* [in] */ ULONG32 cMap,
7807             /* [out] */ ULONG32 *pcMap,
7808             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
7809         
7810         END_INTERFACE
7811     } ICorProfilerInfoVtbl;
7812
7813     interface ICorProfilerInfo
7814     {
7815         CONST_VTBL struct ICorProfilerInfoVtbl *lpVtbl;
7816     };
7817
7818     
7819
7820 #ifdef COBJMACROS
7821
7822
7823 #define ICorProfilerInfo_QueryInterface(This,riid,ppvObject)    \
7824     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
7825
7826 #define ICorProfilerInfo_AddRef(This)   \
7827     ( (This)->lpVtbl -> AddRef(This) ) 
7828
7829 #define ICorProfilerInfo_Release(This)  \
7830     ( (This)->lpVtbl -> Release(This) ) 
7831
7832
7833 #define ICorProfilerInfo_GetClassFromObject(This,objectId,pClassId)     \
7834     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
7835
7836 #define ICorProfilerInfo_GetClassFromToken(This,moduleId,typeDef,pClassId)      \
7837     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
7838
7839 #define ICorProfilerInfo_GetCodeInfo(This,functionId,pStart,pcSize)     \
7840     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
7841
7842 #define ICorProfilerInfo_GetEventMask(This,pdwEvents)   \
7843     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
7844
7845 #define ICorProfilerInfo_GetFunctionFromIP(This,ip,pFunctionId) \
7846     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
7847
7848 #define ICorProfilerInfo_GetFunctionFromToken(This,moduleId,token,pFunctionId)  \
7849     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
7850
7851 #define ICorProfilerInfo_GetHandleFromThread(This,threadId,phThread)    \
7852     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
7853
7854 #define ICorProfilerInfo_GetObjectSize(This,objectId,pcSize)    \
7855     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
7856
7857 #define ICorProfilerInfo_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)   \
7858     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
7859
7860 #define ICorProfilerInfo_GetThreadInfo(This,threadId,pdwWin32ThreadId)  \
7861     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
7862
7863 #define ICorProfilerInfo_GetCurrentThreadID(This,pThreadId)     \
7864     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
7865
7866 #define ICorProfilerInfo_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)   \
7867     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
7868
7869 #define ICorProfilerInfo_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)     \
7870     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
7871
7872 #define ICorProfilerInfo_SetEventMask(This,dwEvents)    \
7873     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
7874
7875 #define ICorProfilerInfo_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)   \
7876     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
7877
7878 #define ICorProfilerInfo_SetFunctionIDMapper(This,pFunc)        \
7879     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
7880
7881 #define ICorProfilerInfo_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken)  \
7882     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
7883
7884 #define ICorProfilerInfo_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)     \
7885     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
7886
7887 #define ICorProfilerInfo_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)        \
7888     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
7889
7890 #define ICorProfilerInfo_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) \
7891     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
7892
7893 #define ICorProfilerInfo_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)     \
7894     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
7895
7896 #define ICorProfilerInfo_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader)  \
7897     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
7898
7899 #define ICorProfilerInfo_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId)  \
7900     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
7901
7902 #define ICorProfilerInfo_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)        \
7903     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
7904
7905 #define ICorProfilerInfo_SetFunctionReJIT(This,functionId)      \
7906     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
7907
7908 #define ICorProfilerInfo_ForceGC(This)  \
7909     ( (This)->lpVtbl -> ForceGC(This) ) 
7910
7911 #define ICorProfilerInfo_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)       \
7912     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
7913
7914 #define ICorProfilerInfo_GetInprocInspectionInterface(This,ppicd)       \
7915     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
7916
7917 #define ICorProfilerInfo_GetInprocInspectionIThisThread(This,ppicd)     \
7918     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
7919
7920 #define ICorProfilerInfo_GetThreadContext(This,threadId,pContextId)     \
7921     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
7922
7923 #define ICorProfilerInfo_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext)  \
7924     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
7925
7926 #define ICorProfilerInfo_EndInprocDebugging(This,dwProfilerContext)     \
7927     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
7928
7929 #define ICorProfilerInfo_GetILToNativeMapping(This,functionId,cMap,pcMap,map)   \
7930     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
7931
7932 #endif /* COBJMACROS */
7933
7934
7935 #endif  /* C style interface */
7936
7937
7938
7939
7940 #endif  /* __ICorProfilerInfo_INTERFACE_DEFINED__ */
7941
7942
7943 #ifndef __ICorProfilerInfo2_INTERFACE_DEFINED__
7944 #define __ICorProfilerInfo2_INTERFACE_DEFINED__
7945
7946 /* interface ICorProfilerInfo2 */
7947 /* [local][unique][uuid][object] */ 
7948
7949
7950 EXTERN_C const IID IID_ICorProfilerInfo2;
7951
7952 #if defined(__cplusplus) && !defined(CINTERFACE)
7953     
7954     MIDL_INTERFACE("CC0935CD-A518-487d-B0BB-A93214E65478")
7955     ICorProfilerInfo2 : public ICorProfilerInfo
7956     {
7957     public:
7958         virtual HRESULT STDMETHODCALLTYPE DoStackSnapshot( 
7959             /* [in] */ ThreadID thread,
7960             /* [in] */ StackSnapshotCallback *callback,
7961             /* [in] */ ULONG32 infoFlags,
7962             /* [in] */ void *clientData,
7963             /* [size_is][in] */ BYTE context[  ],
7964             /* [in] */ ULONG32 contextSize) = 0;
7965         
7966         virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks2( 
7967             /* [in] */ FunctionEnter2 *pFuncEnter,
7968             /* [in] */ FunctionLeave2 *pFuncLeave,
7969             /* [in] */ FunctionTailcall2 *pFuncTailcall) = 0;
7970         
7971         virtual HRESULT STDMETHODCALLTYPE GetFunctionInfo2( 
7972             /* [in] */ FunctionID funcId,
7973             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
7974             /* [out] */ ClassID *pClassId,
7975             /* [out] */ ModuleID *pModuleId,
7976             /* [out] */ mdToken *pToken,
7977             /* [in] */ ULONG32 cTypeArgs,
7978             /* [out] */ ULONG32 *pcTypeArgs,
7979             /* [out] */ ClassID typeArgs[  ]) = 0;
7980         
7981         virtual HRESULT STDMETHODCALLTYPE GetStringLayout( 
7982             /* [out] */ ULONG *pBufferLengthOffset,
7983             /* [out] */ ULONG *pStringLengthOffset,
7984             /* [out] */ ULONG *pBufferOffset) = 0;
7985         
7986         virtual HRESULT STDMETHODCALLTYPE GetClassLayout( 
7987             /* [in] */ ClassID classID,
7988             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
7989             /* [in] */ ULONG cFieldOffset,
7990             /* [out] */ ULONG *pcFieldOffset,
7991             /* [out] */ ULONG *pulClassSize) = 0;
7992         
7993         virtual HRESULT STDMETHODCALLTYPE GetClassIDInfo2( 
7994             /* [in] */ ClassID classId,
7995             /* [out] */ ModuleID *pModuleId,
7996             /* [out] */ mdTypeDef *pTypeDefToken,
7997             /* [out] */ ClassID *pParentClassId,
7998             /* [in] */ ULONG32 cNumTypeArgs,
7999             /* [out] */ ULONG32 *pcNumTypeArgs,
8000             /* [out] */ ClassID typeArgs[  ]) = 0;
8001         
8002         virtual HRESULT STDMETHODCALLTYPE GetCodeInfo2( 
8003             /* [in] */ FunctionID functionID,
8004             /* [in] */ ULONG32 cCodeInfos,
8005             /* [out] */ ULONG32 *pcCodeInfos,
8006             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]) = 0;
8007         
8008         virtual HRESULT STDMETHODCALLTYPE GetClassFromTokenAndTypeArgs( 
8009             /* [in] */ ModuleID moduleID,
8010             /* [in] */ mdTypeDef typeDef,
8011             /* [in] */ ULONG32 cTypeArgs,
8012             /* [size_is][in] */ ClassID typeArgs[  ],
8013             /* [out] */ ClassID *pClassID) = 0;
8014         
8015         virtual HRESULT STDMETHODCALLTYPE GetFunctionFromTokenAndTypeArgs( 
8016             /* [in] */ ModuleID moduleID,
8017             /* [in] */ mdMethodDef funcDef,
8018             /* [in] */ ClassID classId,
8019             /* [in] */ ULONG32 cTypeArgs,
8020             /* [size_is][in] */ ClassID typeArgs[  ],
8021             /* [out] */ FunctionID *pFunctionID) = 0;
8022         
8023         virtual HRESULT STDMETHODCALLTYPE EnumModuleFrozenObjects( 
8024             /* [in] */ ModuleID moduleID,
8025             /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
8026         
8027         virtual HRESULT STDMETHODCALLTYPE GetArrayObjectInfo( 
8028             /* [in] */ ObjectID objectId,
8029             /* [in] */ ULONG32 cDimensions,
8030             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
8031             /* [size_is][out] */ int pDimensionLowerBounds[  ],
8032             /* [out] */ BYTE **ppData) = 0;
8033         
8034         virtual HRESULT STDMETHODCALLTYPE GetBoxClassLayout( 
8035             /* [in] */ ClassID classId,
8036             /* [out] */ ULONG32 *pBufferOffset) = 0;
8037         
8038         virtual HRESULT STDMETHODCALLTYPE GetThreadAppDomain( 
8039             /* [in] */ ThreadID threadId,
8040             /* [out] */ AppDomainID *pAppDomainId) = 0;
8041         
8042         virtual HRESULT STDMETHODCALLTYPE GetRVAStaticAddress( 
8043             /* [in] */ ClassID classId,
8044             /* [in] */ mdFieldDef fieldToken,
8045             /* [out] */ void **ppAddress) = 0;
8046         
8047         virtual HRESULT STDMETHODCALLTYPE GetAppDomainStaticAddress( 
8048             /* [in] */ ClassID classId,
8049             /* [in] */ mdFieldDef fieldToken,
8050             /* [in] */ AppDomainID appDomainId,
8051             /* [out] */ void **ppAddress) = 0;
8052         
8053         virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress( 
8054             /* [in] */ ClassID classId,
8055             /* [in] */ mdFieldDef fieldToken,
8056             /* [in] */ ThreadID threadId,
8057             /* [out] */ void **ppAddress) = 0;
8058         
8059         virtual HRESULT STDMETHODCALLTYPE GetContextStaticAddress( 
8060             /* [in] */ ClassID classId,
8061             /* [in] */ mdFieldDef fieldToken,
8062             /* [in] */ ContextID contextId,
8063             /* [out] */ void **ppAddress) = 0;
8064         
8065         virtual HRESULT STDMETHODCALLTYPE GetStaticFieldInfo( 
8066             /* [in] */ ClassID classId,
8067             /* [in] */ mdFieldDef fieldToken,
8068             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo) = 0;
8069         
8070         virtual HRESULT STDMETHODCALLTYPE GetGenerationBounds( 
8071             /* [in] */ ULONG cObjectRanges,
8072             /* [out] */ ULONG *pcObjectRanges,
8073             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]) = 0;
8074         
8075         virtual HRESULT STDMETHODCALLTYPE GetObjectGeneration( 
8076             /* [in] */ ObjectID objectId,
8077             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range) = 0;
8078         
8079         virtual HRESULT STDMETHODCALLTYPE GetNotifiedExceptionClauseInfo( 
8080             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo) = 0;
8081         
8082     };
8083     
8084     
8085 #else   /* C style interface */
8086
8087     typedef struct ICorProfilerInfo2Vtbl
8088     {
8089         BEGIN_INTERFACE
8090         
8091         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8092             ICorProfilerInfo2 * This,
8093             /* [in] */ REFIID riid,
8094             /* [annotation][iid_is][out] */ 
8095             _COM_Outptr_  void **ppvObject);
8096         
8097         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8098             ICorProfilerInfo2 * This);
8099         
8100         ULONG ( STDMETHODCALLTYPE *Release )( 
8101             ICorProfilerInfo2 * This);
8102         
8103         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
8104             ICorProfilerInfo2 * This,
8105             /* [in] */ ObjectID objectId,
8106             /* [out] */ ClassID *pClassId);
8107         
8108         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
8109             ICorProfilerInfo2 * This,
8110             /* [in] */ ModuleID moduleId,
8111             /* [in] */ mdTypeDef typeDef,
8112             /* [out] */ ClassID *pClassId);
8113         
8114         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
8115             ICorProfilerInfo2 * This,
8116             /* [in] */ FunctionID functionId,
8117             /* [out] */ LPCBYTE *pStart,
8118             /* [out] */ ULONG *pcSize);
8119         
8120         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
8121             ICorProfilerInfo2 * This,
8122             /* [out] */ DWORD *pdwEvents);
8123         
8124         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
8125             ICorProfilerInfo2 * This,
8126             /* [in] */ LPCBYTE ip,
8127             /* [out] */ FunctionID *pFunctionId);
8128         
8129         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
8130             ICorProfilerInfo2 * This,
8131             /* [in] */ ModuleID moduleId,
8132             /* [in] */ mdToken token,
8133             /* [out] */ FunctionID *pFunctionId);
8134         
8135         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
8136             ICorProfilerInfo2 * This,
8137             /* [in] */ ThreadID threadId,
8138             /* [out] */ HANDLE *phThread);
8139         
8140         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
8141             ICorProfilerInfo2 * This,
8142             /* [in] */ ObjectID objectId,
8143             /* [out] */ ULONG *pcSize);
8144         
8145         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
8146             ICorProfilerInfo2 * This,
8147             /* [in] */ ClassID classId,
8148             /* [out] */ CorElementType *pBaseElemType,
8149             /* [out] */ ClassID *pBaseClassId,
8150             /* [out] */ ULONG *pcRank);
8151         
8152         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
8153             ICorProfilerInfo2 * This,
8154             /* [in] */ ThreadID threadId,
8155             /* [out] */ DWORD *pdwWin32ThreadId);
8156         
8157         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
8158             ICorProfilerInfo2 * This,
8159             /* [out] */ ThreadID *pThreadId);
8160         
8161         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
8162             ICorProfilerInfo2 * This,
8163             /* [in] */ ClassID classId,
8164             /* [out] */ ModuleID *pModuleId,
8165             /* [out] */ mdTypeDef *pTypeDefToken);
8166         
8167         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
8168             ICorProfilerInfo2 * This,
8169             /* [in] */ FunctionID functionId,
8170             /* [out] */ ClassID *pClassId,
8171             /* [out] */ ModuleID *pModuleId,
8172             /* [out] */ mdToken *pToken);
8173         
8174         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
8175             ICorProfilerInfo2 * This,
8176             /* [in] */ DWORD dwEvents);
8177         
8178         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
8179             ICorProfilerInfo2 * This,
8180             /* [in] */ FunctionEnter *pFuncEnter,
8181             /* [in] */ FunctionLeave *pFuncLeave,
8182             /* [in] */ FunctionTailcall *pFuncTailcall);
8183         
8184         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
8185             ICorProfilerInfo2 * This,
8186             /* [in] */ FunctionIDMapper *pFunc);
8187         
8188         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
8189             ICorProfilerInfo2 * This,
8190             /* [in] */ FunctionID functionId,
8191             /* [in] */ REFIID riid,
8192             /* [out] */ IUnknown **ppImport,
8193             /* [out] */ mdToken *pToken);
8194         
8195         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
8196             ICorProfilerInfo2 * This,
8197             /* [in] */ ModuleID moduleId,
8198             /* [out] */ LPCBYTE *ppBaseLoadAddress,
8199             /* [in] */ ULONG cchName,
8200             /* [out] */ ULONG *pcchName,
8201             /* [annotation][out] */ 
8202             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8203             /* [out] */ AssemblyID *pAssemblyId);
8204         
8205         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
8206             ICorProfilerInfo2 * This,
8207             /* [in] */ ModuleID moduleId,
8208             /* [in] */ DWORD dwOpenFlags,
8209             /* [in] */ REFIID riid,
8210             /* [out] */ IUnknown **ppOut);
8211         
8212         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
8213             ICorProfilerInfo2 * This,
8214             /* [in] */ ModuleID moduleId,
8215             /* [in] */ mdMethodDef methodId,
8216             /* [out] */ LPCBYTE *ppMethodHeader,
8217             /* [out] */ ULONG *pcbMethodSize);
8218         
8219         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
8220             ICorProfilerInfo2 * This,
8221             /* [in] */ ModuleID moduleId,
8222             /* [out] */ IMethodMalloc **ppMalloc);
8223         
8224         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
8225             ICorProfilerInfo2 * This,
8226             /* [in] */ ModuleID moduleId,
8227             /* [in] */ mdMethodDef methodid,
8228             /* [in] */ LPCBYTE pbNewILMethodHeader);
8229         
8230         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
8231             ICorProfilerInfo2 * This,
8232             /* [in] */ AppDomainID appDomainId,
8233             /* [in] */ ULONG cchName,
8234             /* [out] */ ULONG *pcchName,
8235             /* [annotation][out] */ 
8236             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8237             /* [out] */ ProcessID *pProcessId);
8238         
8239         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
8240             ICorProfilerInfo2 * This,
8241             /* [in] */ AssemblyID assemblyId,
8242             /* [in] */ ULONG cchName,
8243             /* [out] */ ULONG *pcchName,
8244             /* [annotation][out] */ 
8245             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8246             /* [out] */ AppDomainID *pAppDomainId,
8247             /* [out] */ ModuleID *pModuleId);
8248         
8249         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
8250             ICorProfilerInfo2 * This,
8251             /* [in] */ FunctionID functionId);
8252         
8253         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
8254             ICorProfilerInfo2 * This);
8255         
8256         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
8257             ICorProfilerInfo2 * This,
8258             /* [in] */ FunctionID functionId,
8259             /* [in] */ BOOL fStartJit,
8260             /* [in] */ ULONG cILMapEntries,
8261             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
8262         
8263         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
8264             ICorProfilerInfo2 * This,
8265             /* [out] */ IUnknown **ppicd);
8266         
8267         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
8268             ICorProfilerInfo2 * This,
8269             /* [out] */ IUnknown **ppicd);
8270         
8271         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
8272             ICorProfilerInfo2 * This,
8273             /* [in] */ ThreadID threadId,
8274             /* [out] */ ContextID *pContextId);
8275         
8276         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
8277             ICorProfilerInfo2 * This,
8278             /* [in] */ BOOL fThisThreadOnly,
8279             /* [out] */ DWORD *pdwProfilerContext);
8280         
8281         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
8282             ICorProfilerInfo2 * This,
8283             /* [in] */ DWORD dwProfilerContext);
8284         
8285         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
8286             ICorProfilerInfo2 * This,
8287             /* [in] */ FunctionID functionId,
8288             /* [in] */ ULONG32 cMap,
8289             /* [out] */ ULONG32 *pcMap,
8290             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
8291         
8292         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
8293             ICorProfilerInfo2 * This,
8294             /* [in] */ ThreadID thread,
8295             /* [in] */ StackSnapshotCallback *callback,
8296             /* [in] */ ULONG32 infoFlags,
8297             /* [in] */ void *clientData,
8298             /* [size_is][in] */ BYTE context[  ],
8299             /* [in] */ ULONG32 contextSize);
8300         
8301         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
8302             ICorProfilerInfo2 * This,
8303             /* [in] */ FunctionEnter2 *pFuncEnter,
8304             /* [in] */ FunctionLeave2 *pFuncLeave,
8305             /* [in] */ FunctionTailcall2 *pFuncTailcall);
8306         
8307         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
8308             ICorProfilerInfo2 * This,
8309             /* [in] */ FunctionID funcId,
8310             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8311             /* [out] */ ClassID *pClassId,
8312             /* [out] */ ModuleID *pModuleId,
8313             /* [out] */ mdToken *pToken,
8314             /* [in] */ ULONG32 cTypeArgs,
8315             /* [out] */ ULONG32 *pcTypeArgs,
8316             /* [out] */ ClassID typeArgs[  ]);
8317         
8318         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
8319             ICorProfilerInfo2 * This,
8320             /* [out] */ ULONG *pBufferLengthOffset,
8321             /* [out] */ ULONG *pStringLengthOffset,
8322             /* [out] */ ULONG *pBufferOffset);
8323         
8324         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
8325             ICorProfilerInfo2 * This,
8326             /* [in] */ ClassID classID,
8327             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
8328             /* [in] */ ULONG cFieldOffset,
8329             /* [out] */ ULONG *pcFieldOffset,
8330             /* [out] */ ULONG *pulClassSize);
8331         
8332         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
8333             ICorProfilerInfo2 * This,
8334             /* [in] */ ClassID classId,
8335             /* [out] */ ModuleID *pModuleId,
8336             /* [out] */ mdTypeDef *pTypeDefToken,
8337             /* [out] */ ClassID *pParentClassId,
8338             /* [in] */ ULONG32 cNumTypeArgs,
8339             /* [out] */ ULONG32 *pcNumTypeArgs,
8340             /* [out] */ ClassID typeArgs[  ]);
8341         
8342         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
8343             ICorProfilerInfo2 * This,
8344             /* [in] */ FunctionID functionID,
8345             /* [in] */ ULONG32 cCodeInfos,
8346             /* [out] */ ULONG32 *pcCodeInfos,
8347             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
8348         
8349         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
8350             ICorProfilerInfo2 * This,
8351             /* [in] */ ModuleID moduleID,
8352             /* [in] */ mdTypeDef typeDef,
8353             /* [in] */ ULONG32 cTypeArgs,
8354             /* [size_is][in] */ ClassID typeArgs[  ],
8355             /* [out] */ ClassID *pClassID);
8356         
8357         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
8358             ICorProfilerInfo2 * This,
8359             /* [in] */ ModuleID moduleID,
8360             /* [in] */ mdMethodDef funcDef,
8361             /* [in] */ ClassID classId,
8362             /* [in] */ ULONG32 cTypeArgs,
8363             /* [size_is][in] */ ClassID typeArgs[  ],
8364             /* [out] */ FunctionID *pFunctionID);
8365         
8366         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
8367             ICorProfilerInfo2 * This,
8368             /* [in] */ ModuleID moduleID,
8369             /* [out] */ ICorProfilerObjectEnum **ppEnum);
8370         
8371         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
8372             ICorProfilerInfo2 * This,
8373             /* [in] */ ObjectID objectId,
8374             /* [in] */ ULONG32 cDimensions,
8375             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
8376             /* [size_is][out] */ int pDimensionLowerBounds[  ],
8377             /* [out] */ BYTE **ppData);
8378         
8379         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
8380             ICorProfilerInfo2 * This,
8381             /* [in] */ ClassID classId,
8382             /* [out] */ ULONG32 *pBufferOffset);
8383         
8384         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
8385             ICorProfilerInfo2 * This,
8386             /* [in] */ ThreadID threadId,
8387             /* [out] */ AppDomainID *pAppDomainId);
8388         
8389         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
8390             ICorProfilerInfo2 * This,
8391             /* [in] */ ClassID classId,
8392             /* [in] */ mdFieldDef fieldToken,
8393             /* [out] */ void **ppAddress);
8394         
8395         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
8396             ICorProfilerInfo2 * This,
8397             /* [in] */ ClassID classId,
8398             /* [in] */ mdFieldDef fieldToken,
8399             /* [in] */ AppDomainID appDomainId,
8400             /* [out] */ void **ppAddress);
8401         
8402         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
8403             ICorProfilerInfo2 * This,
8404             /* [in] */ ClassID classId,
8405             /* [in] */ mdFieldDef fieldToken,
8406             /* [in] */ ThreadID threadId,
8407             /* [out] */ void **ppAddress);
8408         
8409         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
8410             ICorProfilerInfo2 * This,
8411             /* [in] */ ClassID classId,
8412             /* [in] */ mdFieldDef fieldToken,
8413             /* [in] */ ContextID contextId,
8414             /* [out] */ void **ppAddress);
8415         
8416         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
8417             ICorProfilerInfo2 * This,
8418             /* [in] */ ClassID classId,
8419             /* [in] */ mdFieldDef fieldToken,
8420             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
8421         
8422         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
8423             ICorProfilerInfo2 * This,
8424             /* [in] */ ULONG cObjectRanges,
8425             /* [out] */ ULONG *pcObjectRanges,
8426             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
8427         
8428         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
8429             ICorProfilerInfo2 * This,
8430             /* [in] */ ObjectID objectId,
8431             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
8432         
8433         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
8434             ICorProfilerInfo2 * This,
8435             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
8436         
8437         END_INTERFACE
8438     } ICorProfilerInfo2Vtbl;
8439
8440     interface ICorProfilerInfo2
8441     {
8442         CONST_VTBL struct ICorProfilerInfo2Vtbl *lpVtbl;
8443     };
8444
8445     
8446
8447 #ifdef COBJMACROS
8448
8449
8450 #define ICorProfilerInfo2_QueryInterface(This,riid,ppvObject)   \
8451     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
8452
8453 #define ICorProfilerInfo2_AddRef(This)  \
8454     ( (This)->lpVtbl -> AddRef(This) ) 
8455
8456 #define ICorProfilerInfo2_Release(This) \
8457     ( (This)->lpVtbl -> Release(This) ) 
8458
8459
8460 #define ICorProfilerInfo2_GetClassFromObject(This,objectId,pClassId)    \
8461     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
8462
8463 #define ICorProfilerInfo2_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
8464     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
8465
8466 #define ICorProfilerInfo2_GetCodeInfo(This,functionId,pStart,pcSize)    \
8467     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
8468
8469 #define ICorProfilerInfo2_GetEventMask(This,pdwEvents)  \
8470     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
8471
8472 #define ICorProfilerInfo2_GetFunctionFromIP(This,ip,pFunctionId)        \
8473     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
8474
8475 #define ICorProfilerInfo2_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
8476     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
8477
8478 #define ICorProfilerInfo2_GetHandleFromThread(This,threadId,phThread)   \
8479     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
8480
8481 #define ICorProfilerInfo2_GetObjectSize(This,objectId,pcSize)   \
8482     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
8483
8484 #define ICorProfilerInfo2_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
8485     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
8486
8487 #define ICorProfilerInfo2_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
8488     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
8489
8490 #define ICorProfilerInfo2_GetCurrentThreadID(This,pThreadId)    \
8491     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
8492
8493 #define ICorProfilerInfo2_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
8494     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
8495
8496 #define ICorProfilerInfo2_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
8497     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
8498
8499 #define ICorProfilerInfo2_SetEventMask(This,dwEvents)   \
8500     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
8501
8502 #define ICorProfilerInfo2_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
8503     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
8504
8505 #define ICorProfilerInfo2_SetFunctionIDMapper(This,pFunc)       \
8506     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
8507
8508 #define ICorProfilerInfo2_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
8509     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
8510
8511 #define ICorProfilerInfo2_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
8512     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
8513
8514 #define ICorProfilerInfo2_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
8515     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
8516
8517 #define ICorProfilerInfo2_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
8518     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
8519
8520 #define ICorProfilerInfo2_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
8521     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
8522
8523 #define ICorProfilerInfo2_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
8524     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
8525
8526 #define ICorProfilerInfo2_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
8527     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
8528
8529 #define ICorProfilerInfo2_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
8530     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
8531
8532 #define ICorProfilerInfo2_SetFunctionReJIT(This,functionId)     \
8533     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
8534
8535 #define ICorProfilerInfo2_ForceGC(This) \
8536     ( (This)->lpVtbl -> ForceGC(This) ) 
8537
8538 #define ICorProfilerInfo2_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
8539     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
8540
8541 #define ICorProfilerInfo2_GetInprocInspectionInterface(This,ppicd)      \
8542     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
8543
8544 #define ICorProfilerInfo2_GetInprocInspectionIThisThread(This,ppicd)    \
8545     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
8546
8547 #define ICorProfilerInfo2_GetThreadContext(This,threadId,pContextId)    \
8548     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
8549
8550 #define ICorProfilerInfo2_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
8551     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
8552
8553 #define ICorProfilerInfo2_EndInprocDebugging(This,dwProfilerContext)    \
8554     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
8555
8556 #define ICorProfilerInfo2_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
8557     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
8558
8559
8560 #define ICorProfilerInfo2_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
8561     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
8562
8563 #define ICorProfilerInfo2_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
8564     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
8565
8566 #define ICorProfilerInfo2_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
8567     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
8568
8569 #define ICorProfilerInfo2_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
8570     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
8571
8572 #define ICorProfilerInfo2_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
8573     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
8574
8575 #define ICorProfilerInfo2_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
8576     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
8577
8578 #define ICorProfilerInfo2_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
8579     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
8580
8581 #define ICorProfilerInfo2_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
8582     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
8583
8584 #define ICorProfilerInfo2_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
8585     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
8586
8587 #define ICorProfilerInfo2_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
8588     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
8589
8590 #define ICorProfilerInfo2_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
8591     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
8592
8593 #define ICorProfilerInfo2_GetBoxClassLayout(This,classId,pBufferOffset) \
8594     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
8595
8596 #define ICorProfilerInfo2_GetThreadAppDomain(This,threadId,pAppDomainId)        \
8597     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
8598
8599 #define ICorProfilerInfo2_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
8600     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
8601
8602 #define ICorProfilerInfo2_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
8603     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
8604
8605 #define ICorProfilerInfo2_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
8606     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
8607
8608 #define ICorProfilerInfo2_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
8609     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
8610
8611 #define ICorProfilerInfo2_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
8612     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
8613
8614 #define ICorProfilerInfo2_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
8615     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
8616
8617 #define ICorProfilerInfo2_GetObjectGeneration(This,objectId,range)      \
8618     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
8619
8620 #define ICorProfilerInfo2_GetNotifiedExceptionClauseInfo(This,pinfo)    \
8621     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
8622
8623 #endif /* COBJMACROS */
8624
8625
8626 #endif  /* C style interface */
8627
8628
8629
8630
8631 #endif  /* __ICorProfilerInfo2_INTERFACE_DEFINED__ */
8632
8633
8634 #ifndef __ICorProfilerInfo3_INTERFACE_DEFINED__
8635 #define __ICorProfilerInfo3_INTERFACE_DEFINED__
8636
8637 /* interface ICorProfilerInfo3 */
8638 /* [local][unique][uuid][object] */ 
8639
8640
8641 EXTERN_C const IID IID_ICorProfilerInfo3;
8642
8643 #if defined(__cplusplus) && !defined(CINTERFACE)
8644     
8645     MIDL_INTERFACE("B555ED4F-452A-4E54-8B39-B5360BAD32A0")
8646     ICorProfilerInfo3 : public ICorProfilerInfo2
8647     {
8648     public:
8649         virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions( 
8650             /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
8651         
8652         virtual HRESULT STDMETHODCALLTYPE RequestProfilerDetach( 
8653             /* [in] */ DWORD dwExpectedCompletionMilliseconds) = 0;
8654         
8655         virtual HRESULT STDMETHODCALLTYPE SetFunctionIDMapper2( 
8656             /* [in] */ FunctionIDMapper2 *pFunc,
8657             /* [in] */ void *clientData) = 0;
8658         
8659         virtual HRESULT STDMETHODCALLTYPE GetStringLayout2( 
8660             /* [out] */ ULONG *pStringLengthOffset,
8661             /* [out] */ ULONG *pBufferOffset) = 0;
8662         
8663         virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3( 
8664             /* [in] */ FunctionEnter3 *pFuncEnter3,
8665             /* [in] */ FunctionLeave3 *pFuncLeave3,
8666             /* [in] */ FunctionTailcall3 *pFuncTailcall3) = 0;
8667         
8668         virtual HRESULT STDMETHODCALLTYPE SetEnterLeaveFunctionHooks3WithInfo( 
8669             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
8670             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
8671             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo) = 0;
8672         
8673         virtual HRESULT STDMETHODCALLTYPE GetFunctionEnter3Info( 
8674             /* [in] */ FunctionID functionId,
8675             /* [in] */ COR_PRF_ELT_INFO eltInfo,
8676             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8677             /* [out][in] */ ULONG *pcbArgumentInfo,
8678             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo) = 0;
8679         
8680         virtual HRESULT STDMETHODCALLTYPE GetFunctionLeave3Info( 
8681             /* [in] */ FunctionID functionId,
8682             /* [in] */ COR_PRF_ELT_INFO eltInfo,
8683             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
8684             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange) = 0;
8685         
8686         virtual HRESULT STDMETHODCALLTYPE GetFunctionTailcall3Info( 
8687             /* [in] */ FunctionID functionId,
8688             /* [in] */ COR_PRF_ELT_INFO eltInfo,
8689             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo) = 0;
8690         
8691         virtual HRESULT STDMETHODCALLTYPE EnumModules( 
8692             /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
8693         
8694         virtual HRESULT STDMETHODCALLTYPE GetRuntimeInformation( 
8695             /* [out] */ USHORT *pClrInstanceId,
8696             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
8697             /* [out] */ USHORT *pMajorVersion,
8698             /* [out] */ USHORT *pMinorVersion,
8699             /* [out] */ USHORT *pBuildNumber,
8700             /* [out] */ USHORT *pQFEVersion,
8701             /* [in] */ ULONG cchVersionString,
8702             /* [out] */ ULONG *pcchVersionString,
8703             /* [annotation][out] */ 
8704             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]) = 0;
8705         
8706         virtual HRESULT STDMETHODCALLTYPE GetThreadStaticAddress2( 
8707             /* [in] */ ClassID classId,
8708             /* [in] */ mdFieldDef fieldToken,
8709             /* [in] */ AppDomainID appDomainId,
8710             /* [in] */ ThreadID threadId,
8711             /* [out] */ void **ppAddress) = 0;
8712         
8713         virtual HRESULT STDMETHODCALLTYPE GetAppDomainsContainingModule( 
8714             /* [in] */ ModuleID moduleId,
8715             /* [in] */ ULONG32 cAppDomainIds,
8716             /* [out] */ ULONG32 *pcAppDomainIds,
8717             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]) = 0;
8718         
8719         virtual HRESULT STDMETHODCALLTYPE GetModuleInfo2( 
8720             /* [in] */ ModuleID moduleId,
8721             /* [out] */ LPCBYTE *ppBaseLoadAddress,
8722             /* [in] */ ULONG cchName,
8723             /* [out] */ ULONG *pcchName,
8724             /* [annotation][out] */ 
8725             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8726             /* [out] */ AssemblyID *pAssemblyId,
8727             /* [out] */ DWORD *pdwModuleFlags) = 0;
8728         
8729     };
8730     
8731     
8732 #else   /* C style interface */
8733
8734     typedef struct ICorProfilerInfo3Vtbl
8735     {
8736         BEGIN_INTERFACE
8737         
8738         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
8739             ICorProfilerInfo3 * This,
8740             /* [in] */ REFIID riid,
8741             /* [annotation][iid_is][out] */ 
8742             _COM_Outptr_  void **ppvObject);
8743         
8744         ULONG ( STDMETHODCALLTYPE *AddRef )( 
8745             ICorProfilerInfo3 * This);
8746         
8747         ULONG ( STDMETHODCALLTYPE *Release )( 
8748             ICorProfilerInfo3 * This);
8749         
8750         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
8751             ICorProfilerInfo3 * This,
8752             /* [in] */ ObjectID objectId,
8753             /* [out] */ ClassID *pClassId);
8754         
8755         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
8756             ICorProfilerInfo3 * This,
8757             /* [in] */ ModuleID moduleId,
8758             /* [in] */ mdTypeDef typeDef,
8759             /* [out] */ ClassID *pClassId);
8760         
8761         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
8762             ICorProfilerInfo3 * This,
8763             /* [in] */ FunctionID functionId,
8764             /* [out] */ LPCBYTE *pStart,
8765             /* [out] */ ULONG *pcSize);
8766         
8767         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
8768             ICorProfilerInfo3 * This,
8769             /* [out] */ DWORD *pdwEvents);
8770         
8771         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
8772             ICorProfilerInfo3 * This,
8773             /* [in] */ LPCBYTE ip,
8774             /* [out] */ FunctionID *pFunctionId);
8775         
8776         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
8777             ICorProfilerInfo3 * This,
8778             /* [in] */ ModuleID moduleId,
8779             /* [in] */ mdToken token,
8780             /* [out] */ FunctionID *pFunctionId);
8781         
8782         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
8783             ICorProfilerInfo3 * This,
8784             /* [in] */ ThreadID threadId,
8785             /* [out] */ HANDLE *phThread);
8786         
8787         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
8788             ICorProfilerInfo3 * This,
8789             /* [in] */ ObjectID objectId,
8790             /* [out] */ ULONG *pcSize);
8791         
8792         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
8793             ICorProfilerInfo3 * This,
8794             /* [in] */ ClassID classId,
8795             /* [out] */ CorElementType *pBaseElemType,
8796             /* [out] */ ClassID *pBaseClassId,
8797             /* [out] */ ULONG *pcRank);
8798         
8799         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
8800             ICorProfilerInfo3 * This,
8801             /* [in] */ ThreadID threadId,
8802             /* [out] */ DWORD *pdwWin32ThreadId);
8803         
8804         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
8805             ICorProfilerInfo3 * This,
8806             /* [out] */ ThreadID *pThreadId);
8807         
8808         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
8809             ICorProfilerInfo3 * This,
8810             /* [in] */ ClassID classId,
8811             /* [out] */ ModuleID *pModuleId,
8812             /* [out] */ mdTypeDef *pTypeDefToken);
8813         
8814         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
8815             ICorProfilerInfo3 * This,
8816             /* [in] */ FunctionID functionId,
8817             /* [out] */ ClassID *pClassId,
8818             /* [out] */ ModuleID *pModuleId,
8819             /* [out] */ mdToken *pToken);
8820         
8821         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
8822             ICorProfilerInfo3 * This,
8823             /* [in] */ DWORD dwEvents);
8824         
8825         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
8826             ICorProfilerInfo3 * This,
8827             /* [in] */ FunctionEnter *pFuncEnter,
8828             /* [in] */ FunctionLeave *pFuncLeave,
8829             /* [in] */ FunctionTailcall *pFuncTailcall);
8830         
8831         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
8832             ICorProfilerInfo3 * This,
8833             /* [in] */ FunctionIDMapper *pFunc);
8834         
8835         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
8836             ICorProfilerInfo3 * This,
8837             /* [in] */ FunctionID functionId,
8838             /* [in] */ REFIID riid,
8839             /* [out] */ IUnknown **ppImport,
8840             /* [out] */ mdToken *pToken);
8841         
8842         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
8843             ICorProfilerInfo3 * This,
8844             /* [in] */ ModuleID moduleId,
8845             /* [out] */ LPCBYTE *ppBaseLoadAddress,
8846             /* [in] */ ULONG cchName,
8847             /* [out] */ ULONG *pcchName,
8848             /* [annotation][out] */ 
8849             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8850             /* [out] */ AssemblyID *pAssemblyId);
8851         
8852         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
8853             ICorProfilerInfo3 * This,
8854             /* [in] */ ModuleID moduleId,
8855             /* [in] */ DWORD dwOpenFlags,
8856             /* [in] */ REFIID riid,
8857             /* [out] */ IUnknown **ppOut);
8858         
8859         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
8860             ICorProfilerInfo3 * This,
8861             /* [in] */ ModuleID moduleId,
8862             /* [in] */ mdMethodDef methodId,
8863             /* [out] */ LPCBYTE *ppMethodHeader,
8864             /* [out] */ ULONG *pcbMethodSize);
8865         
8866         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
8867             ICorProfilerInfo3 * This,
8868             /* [in] */ ModuleID moduleId,
8869             /* [out] */ IMethodMalloc **ppMalloc);
8870         
8871         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
8872             ICorProfilerInfo3 * This,
8873             /* [in] */ ModuleID moduleId,
8874             /* [in] */ mdMethodDef methodid,
8875             /* [in] */ LPCBYTE pbNewILMethodHeader);
8876         
8877         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
8878             ICorProfilerInfo3 * This,
8879             /* [in] */ AppDomainID appDomainId,
8880             /* [in] */ ULONG cchName,
8881             /* [out] */ ULONG *pcchName,
8882             /* [annotation][out] */ 
8883             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8884             /* [out] */ ProcessID *pProcessId);
8885         
8886         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
8887             ICorProfilerInfo3 * This,
8888             /* [in] */ AssemblyID assemblyId,
8889             /* [in] */ ULONG cchName,
8890             /* [out] */ ULONG *pcchName,
8891             /* [annotation][out] */ 
8892             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
8893             /* [out] */ AppDomainID *pAppDomainId,
8894             /* [out] */ ModuleID *pModuleId);
8895         
8896         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
8897             ICorProfilerInfo3 * This,
8898             /* [in] */ FunctionID functionId);
8899         
8900         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
8901             ICorProfilerInfo3 * This);
8902         
8903         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
8904             ICorProfilerInfo3 * This,
8905             /* [in] */ FunctionID functionId,
8906             /* [in] */ BOOL fStartJit,
8907             /* [in] */ ULONG cILMapEntries,
8908             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
8909         
8910         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
8911             ICorProfilerInfo3 * This,
8912             /* [out] */ IUnknown **ppicd);
8913         
8914         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
8915             ICorProfilerInfo3 * This,
8916             /* [out] */ IUnknown **ppicd);
8917         
8918         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
8919             ICorProfilerInfo3 * This,
8920             /* [in] */ ThreadID threadId,
8921             /* [out] */ ContextID *pContextId);
8922         
8923         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
8924             ICorProfilerInfo3 * This,
8925             /* [in] */ BOOL fThisThreadOnly,
8926             /* [out] */ DWORD *pdwProfilerContext);
8927         
8928         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
8929             ICorProfilerInfo3 * This,
8930             /* [in] */ DWORD dwProfilerContext);
8931         
8932         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
8933             ICorProfilerInfo3 * This,
8934             /* [in] */ FunctionID functionId,
8935             /* [in] */ ULONG32 cMap,
8936             /* [out] */ ULONG32 *pcMap,
8937             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
8938         
8939         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
8940             ICorProfilerInfo3 * This,
8941             /* [in] */ ThreadID thread,
8942             /* [in] */ StackSnapshotCallback *callback,
8943             /* [in] */ ULONG32 infoFlags,
8944             /* [in] */ void *clientData,
8945             /* [size_is][in] */ BYTE context[  ],
8946             /* [in] */ ULONG32 contextSize);
8947         
8948         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
8949             ICorProfilerInfo3 * This,
8950             /* [in] */ FunctionEnter2 *pFuncEnter,
8951             /* [in] */ FunctionLeave2 *pFuncLeave,
8952             /* [in] */ FunctionTailcall2 *pFuncTailcall);
8953         
8954         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
8955             ICorProfilerInfo3 * This,
8956             /* [in] */ FunctionID funcId,
8957             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
8958             /* [out] */ ClassID *pClassId,
8959             /* [out] */ ModuleID *pModuleId,
8960             /* [out] */ mdToken *pToken,
8961             /* [in] */ ULONG32 cTypeArgs,
8962             /* [out] */ ULONG32 *pcTypeArgs,
8963             /* [out] */ ClassID typeArgs[  ]);
8964         
8965         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
8966             ICorProfilerInfo3 * This,
8967             /* [out] */ ULONG *pBufferLengthOffset,
8968             /* [out] */ ULONG *pStringLengthOffset,
8969             /* [out] */ ULONG *pBufferOffset);
8970         
8971         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
8972             ICorProfilerInfo3 * This,
8973             /* [in] */ ClassID classID,
8974             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
8975             /* [in] */ ULONG cFieldOffset,
8976             /* [out] */ ULONG *pcFieldOffset,
8977             /* [out] */ ULONG *pulClassSize);
8978         
8979         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
8980             ICorProfilerInfo3 * This,
8981             /* [in] */ ClassID classId,
8982             /* [out] */ ModuleID *pModuleId,
8983             /* [out] */ mdTypeDef *pTypeDefToken,
8984             /* [out] */ ClassID *pParentClassId,
8985             /* [in] */ ULONG32 cNumTypeArgs,
8986             /* [out] */ ULONG32 *pcNumTypeArgs,
8987             /* [out] */ ClassID typeArgs[  ]);
8988         
8989         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
8990             ICorProfilerInfo3 * This,
8991             /* [in] */ FunctionID functionID,
8992             /* [in] */ ULONG32 cCodeInfos,
8993             /* [out] */ ULONG32 *pcCodeInfos,
8994             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
8995         
8996         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
8997             ICorProfilerInfo3 * This,
8998             /* [in] */ ModuleID moduleID,
8999             /* [in] */ mdTypeDef typeDef,
9000             /* [in] */ ULONG32 cTypeArgs,
9001             /* [size_is][in] */ ClassID typeArgs[  ],
9002             /* [out] */ ClassID *pClassID);
9003         
9004         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
9005             ICorProfilerInfo3 * This,
9006             /* [in] */ ModuleID moduleID,
9007             /* [in] */ mdMethodDef funcDef,
9008             /* [in] */ ClassID classId,
9009             /* [in] */ ULONG32 cTypeArgs,
9010             /* [size_is][in] */ ClassID typeArgs[  ],
9011             /* [out] */ FunctionID *pFunctionID);
9012         
9013         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
9014             ICorProfilerInfo3 * This,
9015             /* [in] */ ModuleID moduleID,
9016             /* [out] */ ICorProfilerObjectEnum **ppEnum);
9017         
9018         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
9019             ICorProfilerInfo3 * This,
9020             /* [in] */ ObjectID objectId,
9021             /* [in] */ ULONG32 cDimensions,
9022             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
9023             /* [size_is][out] */ int pDimensionLowerBounds[  ],
9024             /* [out] */ BYTE **ppData);
9025         
9026         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
9027             ICorProfilerInfo3 * This,
9028             /* [in] */ ClassID classId,
9029             /* [out] */ ULONG32 *pBufferOffset);
9030         
9031         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
9032             ICorProfilerInfo3 * This,
9033             /* [in] */ ThreadID threadId,
9034             /* [out] */ AppDomainID *pAppDomainId);
9035         
9036         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
9037             ICorProfilerInfo3 * This,
9038             /* [in] */ ClassID classId,
9039             /* [in] */ mdFieldDef fieldToken,
9040             /* [out] */ void **ppAddress);
9041         
9042         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
9043             ICorProfilerInfo3 * This,
9044             /* [in] */ ClassID classId,
9045             /* [in] */ mdFieldDef fieldToken,
9046             /* [in] */ AppDomainID appDomainId,
9047             /* [out] */ void **ppAddress);
9048         
9049         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
9050             ICorProfilerInfo3 * This,
9051             /* [in] */ ClassID classId,
9052             /* [in] */ mdFieldDef fieldToken,
9053             /* [in] */ ThreadID threadId,
9054             /* [out] */ void **ppAddress);
9055         
9056         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
9057             ICorProfilerInfo3 * This,
9058             /* [in] */ ClassID classId,
9059             /* [in] */ mdFieldDef fieldToken,
9060             /* [in] */ ContextID contextId,
9061             /* [out] */ void **ppAddress);
9062         
9063         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
9064             ICorProfilerInfo3 * This,
9065             /* [in] */ ClassID classId,
9066             /* [in] */ mdFieldDef fieldToken,
9067             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
9068         
9069         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
9070             ICorProfilerInfo3 * This,
9071             /* [in] */ ULONG cObjectRanges,
9072             /* [out] */ ULONG *pcObjectRanges,
9073             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
9074         
9075         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
9076             ICorProfilerInfo3 * This,
9077             /* [in] */ ObjectID objectId,
9078             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
9079         
9080         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
9081             ICorProfilerInfo3 * This,
9082             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
9083         
9084         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
9085             ICorProfilerInfo3 * This,
9086             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9087         
9088         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
9089             ICorProfilerInfo3 * This,
9090             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
9091         
9092         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
9093             ICorProfilerInfo3 * This,
9094             /* [in] */ FunctionIDMapper2 *pFunc,
9095             /* [in] */ void *clientData);
9096         
9097         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
9098             ICorProfilerInfo3 * This,
9099             /* [out] */ ULONG *pStringLengthOffset,
9100             /* [out] */ ULONG *pBufferOffset);
9101         
9102         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
9103             ICorProfilerInfo3 * This,
9104             /* [in] */ FunctionEnter3 *pFuncEnter3,
9105             /* [in] */ FunctionLeave3 *pFuncLeave3,
9106             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
9107         
9108         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
9109             ICorProfilerInfo3 * This,
9110             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
9111             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
9112             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
9113         
9114         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
9115             ICorProfilerInfo3 * This,
9116             /* [in] */ FunctionID functionId,
9117             /* [in] */ COR_PRF_ELT_INFO eltInfo,
9118             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9119             /* [out][in] */ ULONG *pcbArgumentInfo,
9120             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
9121         
9122         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
9123             ICorProfilerInfo3 * This,
9124             /* [in] */ FunctionID functionId,
9125             /* [in] */ COR_PRF_ELT_INFO eltInfo,
9126             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
9127             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
9128         
9129         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
9130             ICorProfilerInfo3 * This,
9131             /* [in] */ FunctionID functionId,
9132             /* [in] */ COR_PRF_ELT_INFO eltInfo,
9133             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
9134         
9135         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
9136             ICorProfilerInfo3 * This,
9137             /* [out] */ ICorProfilerModuleEnum **ppEnum);
9138         
9139         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
9140             ICorProfilerInfo3 * This,
9141             /* [out] */ USHORT *pClrInstanceId,
9142             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
9143             /* [out] */ USHORT *pMajorVersion,
9144             /* [out] */ USHORT *pMinorVersion,
9145             /* [out] */ USHORT *pBuildNumber,
9146             /* [out] */ USHORT *pQFEVersion,
9147             /* [in] */ ULONG cchVersionString,
9148             /* [out] */ ULONG *pcchVersionString,
9149             /* [annotation][out] */ 
9150             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
9151         
9152         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
9153             ICorProfilerInfo3 * This,
9154             /* [in] */ ClassID classId,
9155             /* [in] */ mdFieldDef fieldToken,
9156             /* [in] */ AppDomainID appDomainId,
9157             /* [in] */ ThreadID threadId,
9158             /* [out] */ void **ppAddress);
9159         
9160         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
9161             ICorProfilerInfo3 * This,
9162             /* [in] */ ModuleID moduleId,
9163             /* [in] */ ULONG32 cAppDomainIds,
9164             /* [out] */ ULONG32 *pcAppDomainIds,
9165             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
9166         
9167         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
9168             ICorProfilerInfo3 * This,
9169             /* [in] */ ModuleID moduleId,
9170             /* [out] */ LPCBYTE *ppBaseLoadAddress,
9171             /* [in] */ ULONG cchName,
9172             /* [out] */ ULONG *pcchName,
9173             /* [annotation][out] */ 
9174             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
9175             /* [out] */ AssemblyID *pAssemblyId,
9176             /* [out] */ DWORD *pdwModuleFlags);
9177         
9178         END_INTERFACE
9179     } ICorProfilerInfo3Vtbl;
9180
9181     interface ICorProfilerInfo3
9182     {
9183         CONST_VTBL struct ICorProfilerInfo3Vtbl *lpVtbl;
9184     };
9185
9186     
9187
9188 #ifdef COBJMACROS
9189
9190
9191 #define ICorProfilerInfo3_QueryInterface(This,riid,ppvObject)   \
9192     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9193
9194 #define ICorProfilerInfo3_AddRef(This)  \
9195     ( (This)->lpVtbl -> AddRef(This) ) 
9196
9197 #define ICorProfilerInfo3_Release(This) \
9198     ( (This)->lpVtbl -> Release(This) ) 
9199
9200
9201 #define ICorProfilerInfo3_GetClassFromObject(This,objectId,pClassId)    \
9202     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
9203
9204 #define ICorProfilerInfo3_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
9205     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
9206
9207 #define ICorProfilerInfo3_GetCodeInfo(This,functionId,pStart,pcSize)    \
9208     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
9209
9210 #define ICorProfilerInfo3_GetEventMask(This,pdwEvents)  \
9211     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
9212
9213 #define ICorProfilerInfo3_GetFunctionFromIP(This,ip,pFunctionId)        \
9214     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
9215
9216 #define ICorProfilerInfo3_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
9217     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
9218
9219 #define ICorProfilerInfo3_GetHandleFromThread(This,threadId,phThread)   \
9220     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
9221
9222 #define ICorProfilerInfo3_GetObjectSize(This,objectId,pcSize)   \
9223     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
9224
9225 #define ICorProfilerInfo3_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
9226     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
9227
9228 #define ICorProfilerInfo3_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
9229     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
9230
9231 #define ICorProfilerInfo3_GetCurrentThreadID(This,pThreadId)    \
9232     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
9233
9234 #define ICorProfilerInfo3_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
9235     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
9236
9237 #define ICorProfilerInfo3_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
9238     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
9239
9240 #define ICorProfilerInfo3_SetEventMask(This,dwEvents)   \
9241     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
9242
9243 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
9244     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
9245
9246 #define ICorProfilerInfo3_SetFunctionIDMapper(This,pFunc)       \
9247     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
9248
9249 #define ICorProfilerInfo3_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
9250     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
9251
9252 #define ICorProfilerInfo3_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
9253     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
9254
9255 #define ICorProfilerInfo3_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
9256     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
9257
9258 #define ICorProfilerInfo3_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
9259     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
9260
9261 #define ICorProfilerInfo3_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
9262     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
9263
9264 #define ICorProfilerInfo3_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
9265     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
9266
9267 #define ICorProfilerInfo3_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
9268     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
9269
9270 #define ICorProfilerInfo3_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
9271     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
9272
9273 #define ICorProfilerInfo3_SetFunctionReJIT(This,functionId)     \
9274     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
9275
9276 #define ICorProfilerInfo3_ForceGC(This) \
9277     ( (This)->lpVtbl -> ForceGC(This) ) 
9278
9279 #define ICorProfilerInfo3_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
9280     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
9281
9282 #define ICorProfilerInfo3_GetInprocInspectionInterface(This,ppicd)      \
9283     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
9284
9285 #define ICorProfilerInfo3_GetInprocInspectionIThisThread(This,ppicd)    \
9286     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
9287
9288 #define ICorProfilerInfo3_GetThreadContext(This,threadId,pContextId)    \
9289     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
9290
9291 #define ICorProfilerInfo3_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
9292     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
9293
9294 #define ICorProfilerInfo3_EndInprocDebugging(This,dwProfilerContext)    \
9295     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
9296
9297 #define ICorProfilerInfo3_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
9298     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
9299
9300
9301 #define ICorProfilerInfo3_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
9302     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
9303
9304 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
9305     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
9306
9307 #define ICorProfilerInfo3_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
9308     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
9309
9310 #define ICorProfilerInfo3_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
9311     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
9312
9313 #define ICorProfilerInfo3_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
9314     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
9315
9316 #define ICorProfilerInfo3_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
9317     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
9318
9319 #define ICorProfilerInfo3_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
9320     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
9321
9322 #define ICorProfilerInfo3_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
9323     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
9324
9325 #define ICorProfilerInfo3_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
9326     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
9327
9328 #define ICorProfilerInfo3_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
9329     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
9330
9331 #define ICorProfilerInfo3_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
9332     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
9333
9334 #define ICorProfilerInfo3_GetBoxClassLayout(This,classId,pBufferOffset) \
9335     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
9336
9337 #define ICorProfilerInfo3_GetThreadAppDomain(This,threadId,pAppDomainId)        \
9338     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
9339
9340 #define ICorProfilerInfo3_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
9341     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
9342
9343 #define ICorProfilerInfo3_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
9344     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
9345
9346 #define ICorProfilerInfo3_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
9347     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
9348
9349 #define ICorProfilerInfo3_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
9350     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
9351
9352 #define ICorProfilerInfo3_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
9353     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
9354
9355 #define ICorProfilerInfo3_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
9356     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
9357
9358 #define ICorProfilerInfo3_GetObjectGeneration(This,objectId,range)      \
9359     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
9360
9361 #define ICorProfilerInfo3_GetNotifiedExceptionClauseInfo(This,pinfo)    \
9362     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
9363
9364
9365 #define ICorProfilerInfo3_EnumJITedFunctions(This,ppEnum)       \
9366     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
9367
9368 #define ICorProfilerInfo3_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
9369     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
9370
9371 #define ICorProfilerInfo3_SetFunctionIDMapper2(This,pFunc,clientData)   \
9372     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
9373
9374 #define ICorProfilerInfo3_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
9375     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
9376
9377 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
9378     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
9379
9380 #define ICorProfilerInfo3_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
9381     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
9382
9383 #define ICorProfilerInfo3_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
9384     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
9385
9386 #define ICorProfilerInfo3_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
9387     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
9388
9389 #define ICorProfilerInfo3_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
9390     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
9391
9392 #define ICorProfilerInfo3_EnumModules(This,ppEnum)      \
9393     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
9394
9395 #define ICorProfilerInfo3_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
9396     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
9397
9398 #define ICorProfilerInfo3_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
9399     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
9400
9401 #define ICorProfilerInfo3_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
9402     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
9403
9404 #define ICorProfilerInfo3_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
9405     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
9406
9407 #endif /* COBJMACROS */
9408
9409
9410 #endif  /* C style interface */
9411
9412
9413
9414
9415 #endif  /* __ICorProfilerInfo3_INTERFACE_DEFINED__ */
9416
9417
9418 #ifndef __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9419 #define __ICorProfilerObjectEnum_INTERFACE_DEFINED__
9420
9421 /* interface ICorProfilerObjectEnum */
9422 /* [local][unique][uuid][object] */ 
9423
9424
9425 EXTERN_C const IID IID_ICorProfilerObjectEnum;
9426
9427 #if defined(__cplusplus) && !defined(CINTERFACE)
9428     
9429     MIDL_INTERFACE("2C6269BD-2D13-4321-AE12-6686365FD6AF")
9430     ICorProfilerObjectEnum : public IUnknown
9431     {
9432     public:
9433         virtual HRESULT STDMETHODCALLTYPE Skip( 
9434             /* [in] */ ULONG celt) = 0;
9435         
9436         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9437         
9438         virtual HRESULT STDMETHODCALLTYPE Clone( 
9439             /* [out] */ ICorProfilerObjectEnum **ppEnum) = 0;
9440         
9441         virtual HRESULT STDMETHODCALLTYPE GetCount( 
9442             /* [out] */ ULONG *pcelt) = 0;
9443         
9444         virtual HRESULT STDMETHODCALLTYPE Next( 
9445             /* [in] */ ULONG celt,
9446             /* [length_is][size_is][out] */ ObjectID objects[  ],
9447             /* [out] */ ULONG *pceltFetched) = 0;
9448         
9449     };
9450     
9451     
9452 #else   /* C style interface */
9453
9454     typedef struct ICorProfilerObjectEnumVtbl
9455     {
9456         BEGIN_INTERFACE
9457         
9458         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9459             ICorProfilerObjectEnum * This,
9460             /* [in] */ REFIID riid,
9461             /* [annotation][iid_is][out] */ 
9462             _COM_Outptr_  void **ppvObject);
9463         
9464         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9465             ICorProfilerObjectEnum * This);
9466         
9467         ULONG ( STDMETHODCALLTYPE *Release )( 
9468             ICorProfilerObjectEnum * This);
9469         
9470         HRESULT ( STDMETHODCALLTYPE *Skip )( 
9471             ICorProfilerObjectEnum * This,
9472             /* [in] */ ULONG celt);
9473         
9474         HRESULT ( STDMETHODCALLTYPE *Reset )( 
9475             ICorProfilerObjectEnum * This);
9476         
9477         HRESULT ( STDMETHODCALLTYPE *Clone )( 
9478             ICorProfilerObjectEnum * This,
9479             /* [out] */ ICorProfilerObjectEnum **ppEnum);
9480         
9481         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
9482             ICorProfilerObjectEnum * This,
9483             /* [out] */ ULONG *pcelt);
9484         
9485         HRESULT ( STDMETHODCALLTYPE *Next )( 
9486             ICorProfilerObjectEnum * This,
9487             /* [in] */ ULONG celt,
9488             /* [length_is][size_is][out] */ ObjectID objects[  ],
9489             /* [out] */ ULONG *pceltFetched);
9490         
9491         END_INTERFACE
9492     } ICorProfilerObjectEnumVtbl;
9493
9494     interface ICorProfilerObjectEnum
9495     {
9496         CONST_VTBL struct ICorProfilerObjectEnumVtbl *lpVtbl;
9497     };
9498
9499     
9500
9501 #ifdef COBJMACROS
9502
9503
9504 #define ICorProfilerObjectEnum_QueryInterface(This,riid,ppvObject)      \
9505     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9506
9507 #define ICorProfilerObjectEnum_AddRef(This)     \
9508     ( (This)->lpVtbl -> AddRef(This) ) 
9509
9510 #define ICorProfilerObjectEnum_Release(This)    \
9511     ( (This)->lpVtbl -> Release(This) ) 
9512
9513
9514 #define ICorProfilerObjectEnum_Skip(This,celt)  \
9515     ( (This)->lpVtbl -> Skip(This,celt) ) 
9516
9517 #define ICorProfilerObjectEnum_Reset(This)      \
9518     ( (This)->lpVtbl -> Reset(This) ) 
9519
9520 #define ICorProfilerObjectEnum_Clone(This,ppEnum)       \
9521     ( (This)->lpVtbl -> Clone(This,ppEnum) ) 
9522
9523 #define ICorProfilerObjectEnum_GetCount(This,pcelt)     \
9524     ( (This)->lpVtbl -> GetCount(This,pcelt) ) 
9525
9526 #define ICorProfilerObjectEnum_Next(This,celt,objects,pceltFetched)     \
9527     ( (This)->lpVtbl -> Next(This,celt,objects,pceltFetched) ) 
9528
9529 #endif /* COBJMACROS */
9530
9531
9532 #endif  /* C style interface */
9533
9534
9535
9536
9537 #endif  /* __ICorProfilerObjectEnum_INTERFACE_DEFINED__ */
9538
9539
9540 #ifndef __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9541 #define __ICorProfilerFunctionEnum_INTERFACE_DEFINED__
9542
9543 /* interface ICorProfilerFunctionEnum */
9544 /* [local][unique][uuid][object] */ 
9545
9546
9547 EXTERN_C const IID IID_ICorProfilerFunctionEnum;
9548
9549 #if defined(__cplusplus) && !defined(CINTERFACE)
9550     
9551     MIDL_INTERFACE("FF71301A-B994-429D-A10B-B345A65280EF")
9552     ICorProfilerFunctionEnum : public IUnknown
9553     {
9554     public:
9555         virtual HRESULT STDMETHODCALLTYPE Skip( 
9556             /* [in] */ ULONG celt) = 0;
9557         
9558         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9559         
9560         virtual HRESULT STDMETHODCALLTYPE Clone( 
9561             /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
9562         
9563         virtual HRESULT STDMETHODCALLTYPE GetCount( 
9564             /* [out] */ ULONG *pcelt) = 0;
9565         
9566         virtual HRESULT STDMETHODCALLTYPE Next( 
9567             /* [in] */ ULONG celt,
9568             /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[  ],
9569             /* [out] */ ULONG *pceltFetched) = 0;
9570         
9571     };
9572     
9573     
9574 #else   /* C style interface */
9575
9576     typedef struct ICorProfilerFunctionEnumVtbl
9577     {
9578         BEGIN_INTERFACE
9579         
9580         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9581             ICorProfilerFunctionEnum * This,
9582             /* [in] */ REFIID riid,
9583             /* [annotation][iid_is][out] */ 
9584             _COM_Outptr_  void **ppvObject);
9585         
9586         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9587             ICorProfilerFunctionEnum * This);
9588         
9589         ULONG ( STDMETHODCALLTYPE *Release )( 
9590             ICorProfilerFunctionEnum * This);
9591         
9592         HRESULT ( STDMETHODCALLTYPE *Skip )( 
9593             ICorProfilerFunctionEnum * This,
9594             /* [in] */ ULONG celt);
9595         
9596         HRESULT ( STDMETHODCALLTYPE *Reset )( 
9597             ICorProfilerFunctionEnum * This);
9598         
9599         HRESULT ( STDMETHODCALLTYPE *Clone )( 
9600             ICorProfilerFunctionEnum * This,
9601             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
9602         
9603         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
9604             ICorProfilerFunctionEnum * This,
9605             /* [out] */ ULONG *pcelt);
9606         
9607         HRESULT ( STDMETHODCALLTYPE *Next )( 
9608             ICorProfilerFunctionEnum * This,
9609             /* [in] */ ULONG celt,
9610             /* [length_is][size_is][out] */ COR_PRF_FUNCTION ids[  ],
9611             /* [out] */ ULONG *pceltFetched);
9612         
9613         END_INTERFACE
9614     } ICorProfilerFunctionEnumVtbl;
9615
9616     interface ICorProfilerFunctionEnum
9617     {
9618         CONST_VTBL struct ICorProfilerFunctionEnumVtbl *lpVtbl;
9619     };
9620
9621     
9622
9623 #ifdef COBJMACROS
9624
9625
9626 #define ICorProfilerFunctionEnum_QueryInterface(This,riid,ppvObject)    \
9627     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9628
9629 #define ICorProfilerFunctionEnum_AddRef(This)   \
9630     ( (This)->lpVtbl -> AddRef(This) ) 
9631
9632 #define ICorProfilerFunctionEnum_Release(This)  \
9633     ( (This)->lpVtbl -> Release(This) ) 
9634
9635
9636 #define ICorProfilerFunctionEnum_Skip(This,celt)        \
9637     ( (This)->lpVtbl -> Skip(This,celt) ) 
9638
9639 #define ICorProfilerFunctionEnum_Reset(This)    \
9640     ( (This)->lpVtbl -> Reset(This) ) 
9641
9642 #define ICorProfilerFunctionEnum_Clone(This,ppEnum)     \
9643     ( (This)->lpVtbl -> Clone(This,ppEnum) ) 
9644
9645 #define ICorProfilerFunctionEnum_GetCount(This,pcelt)   \
9646     ( (This)->lpVtbl -> GetCount(This,pcelt) ) 
9647
9648 #define ICorProfilerFunctionEnum_Next(This,celt,ids,pceltFetched)       \
9649     ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) 
9650
9651 #endif /* COBJMACROS */
9652
9653
9654 #endif  /* C style interface */
9655
9656
9657
9658
9659 #endif  /* __ICorProfilerFunctionEnum_INTERFACE_DEFINED__ */
9660
9661
9662 #ifndef __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9663 #define __ICorProfilerModuleEnum_INTERFACE_DEFINED__
9664
9665 /* interface ICorProfilerModuleEnum */
9666 /* [local][unique][uuid][object] */ 
9667
9668
9669 EXTERN_C const IID IID_ICorProfilerModuleEnum;
9670
9671 #if defined(__cplusplus) && !defined(CINTERFACE)
9672     
9673     MIDL_INTERFACE("b0266d75-2081-4493-af7f-028ba34db891")
9674     ICorProfilerModuleEnum : public IUnknown
9675     {
9676     public:
9677         virtual HRESULT STDMETHODCALLTYPE Skip( 
9678             /* [in] */ ULONG celt) = 0;
9679         
9680         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
9681         
9682         virtual HRESULT STDMETHODCALLTYPE Clone( 
9683             /* [out] */ ICorProfilerModuleEnum **ppEnum) = 0;
9684         
9685         virtual HRESULT STDMETHODCALLTYPE GetCount( 
9686             /* [out] */ ULONG *pcelt) = 0;
9687         
9688         virtual HRESULT STDMETHODCALLTYPE Next( 
9689             /* [in] */ ULONG celt,
9690             /* [length_is][size_is][out] */ ModuleID ids[  ],
9691             /* [out] */ ULONG *pceltFetched) = 0;
9692         
9693     };
9694     
9695     
9696 #else   /* C style interface */
9697
9698     typedef struct ICorProfilerModuleEnumVtbl
9699     {
9700         BEGIN_INTERFACE
9701         
9702         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9703             ICorProfilerModuleEnum * This,
9704             /* [in] */ REFIID riid,
9705             /* [annotation][iid_is][out] */ 
9706             _COM_Outptr_  void **ppvObject);
9707         
9708         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9709             ICorProfilerModuleEnum * This);
9710         
9711         ULONG ( STDMETHODCALLTYPE *Release )( 
9712             ICorProfilerModuleEnum * This);
9713         
9714         HRESULT ( STDMETHODCALLTYPE *Skip )( 
9715             ICorProfilerModuleEnum * This,
9716             /* [in] */ ULONG celt);
9717         
9718         HRESULT ( STDMETHODCALLTYPE *Reset )( 
9719             ICorProfilerModuleEnum * This);
9720         
9721         HRESULT ( STDMETHODCALLTYPE *Clone )( 
9722             ICorProfilerModuleEnum * This,
9723             /* [out] */ ICorProfilerModuleEnum **ppEnum);
9724         
9725         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
9726             ICorProfilerModuleEnum * This,
9727             /* [out] */ ULONG *pcelt);
9728         
9729         HRESULT ( STDMETHODCALLTYPE *Next )( 
9730             ICorProfilerModuleEnum * This,
9731             /* [in] */ ULONG celt,
9732             /* [length_is][size_is][out] */ ModuleID ids[  ],
9733             /* [out] */ ULONG *pceltFetched);
9734         
9735         END_INTERFACE
9736     } ICorProfilerModuleEnumVtbl;
9737
9738     interface ICorProfilerModuleEnum
9739     {
9740         CONST_VTBL struct ICorProfilerModuleEnumVtbl *lpVtbl;
9741     };
9742
9743     
9744
9745 #ifdef COBJMACROS
9746
9747
9748 #define ICorProfilerModuleEnum_QueryInterface(This,riid,ppvObject)      \
9749     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9750
9751 #define ICorProfilerModuleEnum_AddRef(This)     \
9752     ( (This)->lpVtbl -> AddRef(This) ) 
9753
9754 #define ICorProfilerModuleEnum_Release(This)    \
9755     ( (This)->lpVtbl -> Release(This) ) 
9756
9757
9758 #define ICorProfilerModuleEnum_Skip(This,celt)  \
9759     ( (This)->lpVtbl -> Skip(This,celt) ) 
9760
9761 #define ICorProfilerModuleEnum_Reset(This)      \
9762     ( (This)->lpVtbl -> Reset(This) ) 
9763
9764 #define ICorProfilerModuleEnum_Clone(This,ppEnum)       \
9765     ( (This)->lpVtbl -> Clone(This,ppEnum) ) 
9766
9767 #define ICorProfilerModuleEnum_GetCount(This,pcelt)     \
9768     ( (This)->lpVtbl -> GetCount(This,pcelt) ) 
9769
9770 #define ICorProfilerModuleEnum_Next(This,celt,ids,pceltFetched) \
9771     ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) 
9772
9773 #endif /* COBJMACROS */
9774
9775
9776 #endif  /* C style interface */
9777
9778
9779
9780
9781 #endif  /* __ICorProfilerModuleEnum_INTERFACE_DEFINED__ */
9782
9783
9784 #ifndef __IMethodMalloc_INTERFACE_DEFINED__
9785 #define __IMethodMalloc_INTERFACE_DEFINED__
9786
9787 /* interface IMethodMalloc */
9788 /* [local][unique][uuid][object] */ 
9789
9790
9791 EXTERN_C const IID IID_IMethodMalloc;
9792
9793 #if defined(__cplusplus) && !defined(CINTERFACE)
9794     
9795     MIDL_INTERFACE("A0EFB28B-6EE2-4d7b-B983-A75EF7BEEDB8")
9796     IMethodMalloc : public IUnknown
9797     {
9798     public:
9799         virtual PVOID STDMETHODCALLTYPE Alloc( 
9800             /* [in] */ ULONG cb) = 0;
9801         
9802     };
9803     
9804     
9805 #else   /* C style interface */
9806
9807     typedef struct IMethodMallocVtbl
9808     {
9809         BEGIN_INTERFACE
9810         
9811         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9812             IMethodMalloc * This,
9813             /* [in] */ REFIID riid,
9814             /* [annotation][iid_is][out] */ 
9815             _COM_Outptr_  void **ppvObject);
9816         
9817         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9818             IMethodMalloc * This);
9819         
9820         ULONG ( STDMETHODCALLTYPE *Release )( 
9821             IMethodMalloc * This);
9822         
9823         PVOID ( STDMETHODCALLTYPE *Alloc )( 
9824             IMethodMalloc * This,
9825             /* [in] */ ULONG cb);
9826         
9827         END_INTERFACE
9828     } IMethodMallocVtbl;
9829
9830     interface IMethodMalloc
9831     {
9832         CONST_VTBL struct IMethodMallocVtbl *lpVtbl;
9833     };
9834
9835     
9836
9837 #ifdef COBJMACROS
9838
9839
9840 #define IMethodMalloc_QueryInterface(This,riid,ppvObject)       \
9841     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9842
9843 #define IMethodMalloc_AddRef(This)      \
9844     ( (This)->lpVtbl -> AddRef(This) ) 
9845
9846 #define IMethodMalloc_Release(This)     \
9847     ( (This)->lpVtbl -> Release(This) ) 
9848
9849
9850 #define IMethodMalloc_Alloc(This,cb)    \
9851     ( (This)->lpVtbl -> Alloc(This,cb) ) 
9852
9853 #endif /* COBJMACROS */
9854
9855
9856 #endif  /* C style interface */
9857
9858
9859
9860
9861 #endif  /* __IMethodMalloc_INTERFACE_DEFINED__ */
9862
9863
9864 #ifndef __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9865 #define __ICorProfilerFunctionControl_INTERFACE_DEFINED__
9866
9867 /* interface ICorProfilerFunctionControl */
9868 /* [local][unique][uuid][object] */ 
9869
9870
9871 EXTERN_C const IID IID_ICorProfilerFunctionControl;
9872
9873 #if defined(__cplusplus) && !defined(CINTERFACE)
9874     
9875     MIDL_INTERFACE("F0963021-E1EA-4732-8581-E01B0BD3C0C6")
9876     ICorProfilerFunctionControl : public IUnknown
9877     {
9878     public:
9879         virtual HRESULT STDMETHODCALLTYPE SetCodegenFlags( 
9880             /* [in] */ DWORD flags) = 0;
9881         
9882         virtual HRESULT STDMETHODCALLTYPE SetILFunctionBody( 
9883             /* [in] */ ULONG cbNewILMethodHeader,
9884             /* [size_is][in] */ LPCBYTE pbNewILMethodHeader) = 0;
9885         
9886         virtual HRESULT STDMETHODCALLTYPE SetILInstrumentedCodeMap( 
9887             /* [in] */ ULONG cILMapEntries,
9888             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]) = 0;
9889         
9890     };
9891     
9892     
9893 #else   /* C style interface */
9894
9895     typedef struct ICorProfilerFunctionControlVtbl
9896     {
9897         BEGIN_INTERFACE
9898         
9899         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
9900             ICorProfilerFunctionControl * This,
9901             /* [in] */ REFIID riid,
9902             /* [annotation][iid_is][out] */ 
9903             _COM_Outptr_  void **ppvObject);
9904         
9905         ULONG ( STDMETHODCALLTYPE *AddRef )( 
9906             ICorProfilerFunctionControl * This);
9907         
9908         ULONG ( STDMETHODCALLTYPE *Release )( 
9909             ICorProfilerFunctionControl * This);
9910         
9911         HRESULT ( STDMETHODCALLTYPE *SetCodegenFlags )( 
9912             ICorProfilerFunctionControl * This,
9913             /* [in] */ DWORD flags);
9914         
9915         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
9916             ICorProfilerFunctionControl * This,
9917             /* [in] */ ULONG cbNewILMethodHeader,
9918             /* [size_is][in] */ LPCBYTE pbNewILMethodHeader);
9919         
9920         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
9921             ICorProfilerFunctionControl * This,
9922             /* [in] */ ULONG cILMapEntries,
9923             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
9924         
9925         END_INTERFACE
9926     } ICorProfilerFunctionControlVtbl;
9927
9928     interface ICorProfilerFunctionControl
9929     {
9930         CONST_VTBL struct ICorProfilerFunctionControlVtbl *lpVtbl;
9931     };
9932
9933     
9934
9935 #ifdef COBJMACROS
9936
9937
9938 #define ICorProfilerFunctionControl_QueryInterface(This,riid,ppvObject) \
9939     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
9940
9941 #define ICorProfilerFunctionControl_AddRef(This)        \
9942     ( (This)->lpVtbl -> AddRef(This) ) 
9943
9944 #define ICorProfilerFunctionControl_Release(This)       \
9945     ( (This)->lpVtbl -> Release(This) ) 
9946
9947
9948 #define ICorProfilerFunctionControl_SetCodegenFlags(This,flags) \
9949     ( (This)->lpVtbl -> SetCodegenFlags(This,flags) ) 
9950
9951 #define ICorProfilerFunctionControl_SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader)     \
9952     ( (This)->lpVtbl -> SetILFunctionBody(This,cbNewILMethodHeader,pbNewILMethodHeader) ) 
9953
9954 #define ICorProfilerFunctionControl_SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) \
9955     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,cILMapEntries,rgILMapEntries) ) 
9956
9957 #endif /* COBJMACROS */
9958
9959
9960 #endif  /* C style interface */
9961
9962
9963
9964
9965 #endif  /* __ICorProfilerFunctionControl_INTERFACE_DEFINED__ */
9966
9967
9968 #ifndef __ICorProfilerInfo4_INTERFACE_DEFINED__
9969 #define __ICorProfilerInfo4_INTERFACE_DEFINED__
9970
9971 /* interface ICorProfilerInfo4 */
9972 /* [local][unique][uuid][object] */ 
9973
9974
9975 EXTERN_C const IID IID_ICorProfilerInfo4;
9976
9977 #if defined(__cplusplus) && !defined(CINTERFACE)
9978     
9979     MIDL_INTERFACE("0d8fdcaa-6257-47bf-b1bf-94dac88466ee")
9980     ICorProfilerInfo4 : public ICorProfilerInfo3
9981     {
9982     public:
9983         virtual HRESULT STDMETHODCALLTYPE EnumThreads( 
9984             /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
9985         
9986         virtual HRESULT STDMETHODCALLTYPE InitializeCurrentThread( void) = 0;
9987         
9988         virtual HRESULT STDMETHODCALLTYPE RequestReJIT( 
9989             /* [in] */ ULONG cFunctions,
9990             /* [size_is][in] */ ModuleID moduleIds[  ],
9991             /* [size_is][in] */ mdMethodDef methodIds[  ]) = 0;
9992         
9993         virtual HRESULT STDMETHODCALLTYPE RequestRevert( 
9994             /* [in] */ ULONG cFunctions,
9995             /* [size_is][in] */ ModuleID moduleIds[  ],
9996             /* [size_is][in] */ mdMethodDef methodIds[  ],
9997             /* [size_is][out] */ HRESULT status[  ]) = 0;
9998         
9999         virtual HRESULT STDMETHODCALLTYPE GetCodeInfo3( 
10000             /* [in] */ FunctionID functionID,
10001             /* [in] */ ReJITID reJitId,
10002             /* [in] */ ULONG32 cCodeInfos,
10003             /* [out] */ ULONG32 *pcCodeInfos,
10004             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]) = 0;
10005         
10006         virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP2( 
10007             /* [in] */ LPCBYTE ip,
10008             /* [out] */ FunctionID *pFunctionId,
10009             /* [out] */ ReJITID *pReJitId) = 0;
10010         
10011         virtual HRESULT STDMETHODCALLTYPE GetReJITIDs( 
10012             /* [in] */ FunctionID functionId,
10013             /* [in] */ ULONG cReJitIds,
10014             /* [out] */ ULONG *pcReJitIds,
10015             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]) = 0;
10016         
10017         virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping2( 
10018             /* [in] */ FunctionID functionId,
10019             /* [in] */ ReJITID reJitId,
10020             /* [in] */ ULONG32 cMap,
10021             /* [out] */ ULONG32 *pcMap,
10022             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]) = 0;
10023         
10024         virtual HRESULT STDMETHODCALLTYPE EnumJITedFunctions2( 
10025             /* [out] */ ICorProfilerFunctionEnum **ppEnum) = 0;
10026         
10027         virtual HRESULT STDMETHODCALLTYPE GetObjectSize2( 
10028             /* [in] */ ObjectID objectId,
10029             /* [out] */ SIZE_T *pcSize) = 0;
10030         
10031     };
10032     
10033     
10034 #else   /* C style interface */
10035
10036     typedef struct ICorProfilerInfo4Vtbl
10037     {
10038         BEGIN_INTERFACE
10039         
10040         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10041             ICorProfilerInfo4 * This,
10042             /* [in] */ REFIID riid,
10043             /* [annotation][iid_is][out] */ 
10044             _COM_Outptr_  void **ppvObject);
10045         
10046         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10047             ICorProfilerInfo4 * This);
10048         
10049         ULONG ( STDMETHODCALLTYPE *Release )( 
10050             ICorProfilerInfo4 * This);
10051         
10052         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
10053             ICorProfilerInfo4 * This,
10054             /* [in] */ ObjectID objectId,
10055             /* [out] */ ClassID *pClassId);
10056         
10057         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
10058             ICorProfilerInfo4 * This,
10059             /* [in] */ ModuleID moduleId,
10060             /* [in] */ mdTypeDef typeDef,
10061             /* [out] */ ClassID *pClassId);
10062         
10063         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
10064             ICorProfilerInfo4 * This,
10065             /* [in] */ FunctionID functionId,
10066             /* [out] */ LPCBYTE *pStart,
10067             /* [out] */ ULONG *pcSize);
10068         
10069         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
10070             ICorProfilerInfo4 * This,
10071             /* [out] */ DWORD *pdwEvents);
10072         
10073         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
10074             ICorProfilerInfo4 * This,
10075             /* [in] */ LPCBYTE ip,
10076             /* [out] */ FunctionID *pFunctionId);
10077         
10078         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
10079             ICorProfilerInfo4 * This,
10080             /* [in] */ ModuleID moduleId,
10081             /* [in] */ mdToken token,
10082             /* [out] */ FunctionID *pFunctionId);
10083         
10084         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
10085             ICorProfilerInfo4 * This,
10086             /* [in] */ ThreadID threadId,
10087             /* [out] */ HANDLE *phThread);
10088         
10089         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
10090             ICorProfilerInfo4 * This,
10091             /* [in] */ ObjectID objectId,
10092             /* [out] */ ULONG *pcSize);
10093         
10094         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
10095             ICorProfilerInfo4 * This,
10096             /* [in] */ ClassID classId,
10097             /* [out] */ CorElementType *pBaseElemType,
10098             /* [out] */ ClassID *pBaseClassId,
10099             /* [out] */ ULONG *pcRank);
10100         
10101         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
10102             ICorProfilerInfo4 * This,
10103             /* [in] */ ThreadID threadId,
10104             /* [out] */ DWORD *pdwWin32ThreadId);
10105         
10106         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
10107             ICorProfilerInfo4 * This,
10108             /* [out] */ ThreadID *pThreadId);
10109         
10110         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
10111             ICorProfilerInfo4 * This,
10112             /* [in] */ ClassID classId,
10113             /* [out] */ ModuleID *pModuleId,
10114             /* [out] */ mdTypeDef *pTypeDefToken);
10115         
10116         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
10117             ICorProfilerInfo4 * This,
10118             /* [in] */ FunctionID functionId,
10119             /* [out] */ ClassID *pClassId,
10120             /* [out] */ ModuleID *pModuleId,
10121             /* [out] */ mdToken *pToken);
10122         
10123         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
10124             ICorProfilerInfo4 * This,
10125             /* [in] */ DWORD dwEvents);
10126         
10127         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
10128             ICorProfilerInfo4 * This,
10129             /* [in] */ FunctionEnter *pFuncEnter,
10130             /* [in] */ FunctionLeave *pFuncLeave,
10131             /* [in] */ FunctionTailcall *pFuncTailcall);
10132         
10133         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
10134             ICorProfilerInfo4 * This,
10135             /* [in] */ FunctionIDMapper *pFunc);
10136         
10137         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
10138             ICorProfilerInfo4 * This,
10139             /* [in] */ FunctionID functionId,
10140             /* [in] */ REFIID riid,
10141             /* [out] */ IUnknown **ppImport,
10142             /* [out] */ mdToken *pToken);
10143         
10144         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
10145             ICorProfilerInfo4 * This,
10146             /* [in] */ ModuleID moduleId,
10147             /* [out] */ LPCBYTE *ppBaseLoadAddress,
10148             /* [in] */ ULONG cchName,
10149             /* [out] */ ULONG *pcchName,
10150             /* [annotation][out] */ 
10151             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10152             /* [out] */ AssemblyID *pAssemblyId);
10153         
10154         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
10155             ICorProfilerInfo4 * This,
10156             /* [in] */ ModuleID moduleId,
10157             /* [in] */ DWORD dwOpenFlags,
10158             /* [in] */ REFIID riid,
10159             /* [out] */ IUnknown **ppOut);
10160         
10161         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
10162             ICorProfilerInfo4 * This,
10163             /* [in] */ ModuleID moduleId,
10164             /* [in] */ mdMethodDef methodId,
10165             /* [out] */ LPCBYTE *ppMethodHeader,
10166             /* [out] */ ULONG *pcbMethodSize);
10167         
10168         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
10169             ICorProfilerInfo4 * This,
10170             /* [in] */ ModuleID moduleId,
10171             /* [out] */ IMethodMalloc **ppMalloc);
10172         
10173         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
10174             ICorProfilerInfo4 * This,
10175             /* [in] */ ModuleID moduleId,
10176             /* [in] */ mdMethodDef methodid,
10177             /* [in] */ LPCBYTE pbNewILMethodHeader);
10178         
10179         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
10180             ICorProfilerInfo4 * This,
10181             /* [in] */ AppDomainID appDomainId,
10182             /* [in] */ ULONG cchName,
10183             /* [out] */ ULONG *pcchName,
10184             /* [annotation][out] */ 
10185             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10186             /* [out] */ ProcessID *pProcessId);
10187         
10188         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
10189             ICorProfilerInfo4 * This,
10190             /* [in] */ AssemblyID assemblyId,
10191             /* [in] */ ULONG cchName,
10192             /* [out] */ ULONG *pcchName,
10193             /* [annotation][out] */ 
10194             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10195             /* [out] */ AppDomainID *pAppDomainId,
10196             /* [out] */ ModuleID *pModuleId);
10197         
10198         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
10199             ICorProfilerInfo4 * This,
10200             /* [in] */ FunctionID functionId);
10201         
10202         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
10203             ICorProfilerInfo4 * This);
10204         
10205         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
10206             ICorProfilerInfo4 * This,
10207             /* [in] */ FunctionID functionId,
10208             /* [in] */ BOOL fStartJit,
10209             /* [in] */ ULONG cILMapEntries,
10210             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
10211         
10212         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
10213             ICorProfilerInfo4 * This,
10214             /* [out] */ IUnknown **ppicd);
10215         
10216         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
10217             ICorProfilerInfo4 * This,
10218             /* [out] */ IUnknown **ppicd);
10219         
10220         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
10221             ICorProfilerInfo4 * This,
10222             /* [in] */ ThreadID threadId,
10223             /* [out] */ ContextID *pContextId);
10224         
10225         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
10226             ICorProfilerInfo4 * This,
10227             /* [in] */ BOOL fThisThreadOnly,
10228             /* [out] */ DWORD *pdwProfilerContext);
10229         
10230         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
10231             ICorProfilerInfo4 * This,
10232             /* [in] */ DWORD dwProfilerContext);
10233         
10234         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
10235             ICorProfilerInfo4 * This,
10236             /* [in] */ FunctionID functionId,
10237             /* [in] */ ULONG32 cMap,
10238             /* [out] */ ULONG32 *pcMap,
10239             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
10240         
10241         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
10242             ICorProfilerInfo4 * This,
10243             /* [in] */ ThreadID thread,
10244             /* [in] */ StackSnapshotCallback *callback,
10245             /* [in] */ ULONG32 infoFlags,
10246             /* [in] */ void *clientData,
10247             /* [size_is][in] */ BYTE context[  ],
10248             /* [in] */ ULONG32 contextSize);
10249         
10250         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
10251             ICorProfilerInfo4 * This,
10252             /* [in] */ FunctionEnter2 *pFuncEnter,
10253             /* [in] */ FunctionLeave2 *pFuncLeave,
10254             /* [in] */ FunctionTailcall2 *pFuncTailcall);
10255         
10256         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
10257             ICorProfilerInfo4 * This,
10258             /* [in] */ FunctionID funcId,
10259             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
10260             /* [out] */ ClassID *pClassId,
10261             /* [out] */ ModuleID *pModuleId,
10262             /* [out] */ mdToken *pToken,
10263             /* [in] */ ULONG32 cTypeArgs,
10264             /* [out] */ ULONG32 *pcTypeArgs,
10265             /* [out] */ ClassID typeArgs[  ]);
10266         
10267         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
10268             ICorProfilerInfo4 * This,
10269             /* [out] */ ULONG *pBufferLengthOffset,
10270             /* [out] */ ULONG *pStringLengthOffset,
10271             /* [out] */ ULONG *pBufferOffset);
10272         
10273         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
10274             ICorProfilerInfo4 * This,
10275             /* [in] */ ClassID classID,
10276             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
10277             /* [in] */ ULONG cFieldOffset,
10278             /* [out] */ ULONG *pcFieldOffset,
10279             /* [out] */ ULONG *pulClassSize);
10280         
10281         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
10282             ICorProfilerInfo4 * This,
10283             /* [in] */ ClassID classId,
10284             /* [out] */ ModuleID *pModuleId,
10285             /* [out] */ mdTypeDef *pTypeDefToken,
10286             /* [out] */ ClassID *pParentClassId,
10287             /* [in] */ ULONG32 cNumTypeArgs,
10288             /* [out] */ ULONG32 *pcNumTypeArgs,
10289             /* [out] */ ClassID typeArgs[  ]);
10290         
10291         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
10292             ICorProfilerInfo4 * This,
10293             /* [in] */ FunctionID functionID,
10294             /* [in] */ ULONG32 cCodeInfos,
10295             /* [out] */ ULONG32 *pcCodeInfos,
10296             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
10297         
10298         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
10299             ICorProfilerInfo4 * This,
10300             /* [in] */ ModuleID moduleID,
10301             /* [in] */ mdTypeDef typeDef,
10302             /* [in] */ ULONG32 cTypeArgs,
10303             /* [size_is][in] */ ClassID typeArgs[  ],
10304             /* [out] */ ClassID *pClassID);
10305         
10306         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
10307             ICorProfilerInfo4 * This,
10308             /* [in] */ ModuleID moduleID,
10309             /* [in] */ mdMethodDef funcDef,
10310             /* [in] */ ClassID classId,
10311             /* [in] */ ULONG32 cTypeArgs,
10312             /* [size_is][in] */ ClassID typeArgs[  ],
10313             /* [out] */ FunctionID *pFunctionID);
10314         
10315         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
10316             ICorProfilerInfo4 * This,
10317             /* [in] */ ModuleID moduleID,
10318             /* [out] */ ICorProfilerObjectEnum **ppEnum);
10319         
10320         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
10321             ICorProfilerInfo4 * This,
10322             /* [in] */ ObjectID objectId,
10323             /* [in] */ ULONG32 cDimensions,
10324             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
10325             /* [size_is][out] */ int pDimensionLowerBounds[  ],
10326             /* [out] */ BYTE **ppData);
10327         
10328         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
10329             ICorProfilerInfo4 * This,
10330             /* [in] */ ClassID classId,
10331             /* [out] */ ULONG32 *pBufferOffset);
10332         
10333         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
10334             ICorProfilerInfo4 * This,
10335             /* [in] */ ThreadID threadId,
10336             /* [out] */ AppDomainID *pAppDomainId);
10337         
10338         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
10339             ICorProfilerInfo4 * This,
10340             /* [in] */ ClassID classId,
10341             /* [in] */ mdFieldDef fieldToken,
10342             /* [out] */ void **ppAddress);
10343         
10344         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
10345             ICorProfilerInfo4 * This,
10346             /* [in] */ ClassID classId,
10347             /* [in] */ mdFieldDef fieldToken,
10348             /* [in] */ AppDomainID appDomainId,
10349             /* [out] */ void **ppAddress);
10350         
10351         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
10352             ICorProfilerInfo4 * This,
10353             /* [in] */ ClassID classId,
10354             /* [in] */ mdFieldDef fieldToken,
10355             /* [in] */ ThreadID threadId,
10356             /* [out] */ void **ppAddress);
10357         
10358         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
10359             ICorProfilerInfo4 * This,
10360             /* [in] */ ClassID classId,
10361             /* [in] */ mdFieldDef fieldToken,
10362             /* [in] */ ContextID contextId,
10363             /* [out] */ void **ppAddress);
10364         
10365         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
10366             ICorProfilerInfo4 * This,
10367             /* [in] */ ClassID classId,
10368             /* [in] */ mdFieldDef fieldToken,
10369             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
10370         
10371         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
10372             ICorProfilerInfo4 * This,
10373             /* [in] */ ULONG cObjectRanges,
10374             /* [out] */ ULONG *pcObjectRanges,
10375             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
10376         
10377         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
10378             ICorProfilerInfo4 * This,
10379             /* [in] */ ObjectID objectId,
10380             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
10381         
10382         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
10383             ICorProfilerInfo4 * This,
10384             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
10385         
10386         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
10387             ICorProfilerInfo4 * This,
10388             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10389         
10390         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
10391             ICorProfilerInfo4 * This,
10392             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
10393         
10394         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
10395             ICorProfilerInfo4 * This,
10396             /* [in] */ FunctionIDMapper2 *pFunc,
10397             /* [in] */ void *clientData);
10398         
10399         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
10400             ICorProfilerInfo4 * This,
10401             /* [out] */ ULONG *pStringLengthOffset,
10402             /* [out] */ ULONG *pBufferOffset);
10403         
10404         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
10405             ICorProfilerInfo4 * This,
10406             /* [in] */ FunctionEnter3 *pFuncEnter3,
10407             /* [in] */ FunctionLeave3 *pFuncLeave3,
10408             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
10409         
10410         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
10411             ICorProfilerInfo4 * This,
10412             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
10413             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
10414             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
10415         
10416         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
10417             ICorProfilerInfo4 * This,
10418             /* [in] */ FunctionID functionId,
10419             /* [in] */ COR_PRF_ELT_INFO eltInfo,
10420             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10421             /* [out][in] */ ULONG *pcbArgumentInfo,
10422             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
10423         
10424         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
10425             ICorProfilerInfo4 * This,
10426             /* [in] */ FunctionID functionId,
10427             /* [in] */ COR_PRF_ELT_INFO eltInfo,
10428             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
10429             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
10430         
10431         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
10432             ICorProfilerInfo4 * This,
10433             /* [in] */ FunctionID functionId,
10434             /* [in] */ COR_PRF_ELT_INFO eltInfo,
10435             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
10436         
10437         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
10438             ICorProfilerInfo4 * This,
10439             /* [out] */ ICorProfilerModuleEnum **ppEnum);
10440         
10441         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
10442             ICorProfilerInfo4 * This,
10443             /* [out] */ USHORT *pClrInstanceId,
10444             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
10445             /* [out] */ USHORT *pMajorVersion,
10446             /* [out] */ USHORT *pMinorVersion,
10447             /* [out] */ USHORT *pBuildNumber,
10448             /* [out] */ USHORT *pQFEVersion,
10449             /* [in] */ ULONG cchVersionString,
10450             /* [out] */ ULONG *pcchVersionString,
10451             /* [annotation][out] */ 
10452             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
10453         
10454         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
10455             ICorProfilerInfo4 * This,
10456             /* [in] */ ClassID classId,
10457             /* [in] */ mdFieldDef fieldToken,
10458             /* [in] */ AppDomainID appDomainId,
10459             /* [in] */ ThreadID threadId,
10460             /* [out] */ void **ppAddress);
10461         
10462         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
10463             ICorProfilerInfo4 * This,
10464             /* [in] */ ModuleID moduleId,
10465             /* [in] */ ULONG32 cAppDomainIds,
10466             /* [out] */ ULONG32 *pcAppDomainIds,
10467             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
10468         
10469         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
10470             ICorProfilerInfo4 * This,
10471             /* [in] */ ModuleID moduleId,
10472             /* [out] */ LPCBYTE *ppBaseLoadAddress,
10473             /* [in] */ ULONG cchName,
10474             /* [out] */ ULONG *pcchName,
10475             /* [annotation][out] */ 
10476             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10477             /* [out] */ AssemblyID *pAssemblyId,
10478             /* [out] */ DWORD *pdwModuleFlags);
10479         
10480         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
10481             ICorProfilerInfo4 * This,
10482             /* [out] */ ICorProfilerThreadEnum **ppEnum);
10483         
10484         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
10485             ICorProfilerInfo4 * This);
10486         
10487         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
10488             ICorProfilerInfo4 * This,
10489             /* [in] */ ULONG cFunctions,
10490             /* [size_is][in] */ ModuleID moduleIds[  ],
10491             /* [size_is][in] */ mdMethodDef methodIds[  ]);
10492         
10493         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
10494             ICorProfilerInfo4 * This,
10495             /* [in] */ ULONG cFunctions,
10496             /* [size_is][in] */ ModuleID moduleIds[  ],
10497             /* [size_is][in] */ mdMethodDef methodIds[  ],
10498             /* [size_is][out] */ HRESULT status[  ]);
10499         
10500         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
10501             ICorProfilerInfo4 * This,
10502             /* [in] */ FunctionID functionID,
10503             /* [in] */ ReJITID reJitId,
10504             /* [in] */ ULONG32 cCodeInfos,
10505             /* [out] */ ULONG32 *pcCodeInfos,
10506             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
10507         
10508         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
10509             ICorProfilerInfo4 * This,
10510             /* [in] */ LPCBYTE ip,
10511             /* [out] */ FunctionID *pFunctionId,
10512             /* [out] */ ReJITID *pReJitId);
10513         
10514         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
10515             ICorProfilerInfo4 * This,
10516             /* [in] */ FunctionID functionId,
10517             /* [in] */ ULONG cReJitIds,
10518             /* [out] */ ULONG *pcReJitIds,
10519             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
10520         
10521         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
10522             ICorProfilerInfo4 * This,
10523             /* [in] */ FunctionID functionId,
10524             /* [in] */ ReJITID reJitId,
10525             /* [in] */ ULONG32 cMap,
10526             /* [out] */ ULONG32 *pcMap,
10527             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
10528         
10529         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
10530             ICorProfilerInfo4 * This,
10531             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
10532         
10533         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
10534             ICorProfilerInfo4 * This,
10535             /* [in] */ ObjectID objectId,
10536             /* [out] */ SIZE_T *pcSize);
10537         
10538         END_INTERFACE
10539     } ICorProfilerInfo4Vtbl;
10540
10541     interface ICorProfilerInfo4
10542     {
10543         CONST_VTBL struct ICorProfilerInfo4Vtbl *lpVtbl;
10544     };
10545
10546     
10547
10548 #ifdef COBJMACROS
10549
10550
10551 #define ICorProfilerInfo4_QueryInterface(This,riid,ppvObject)   \
10552     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
10553
10554 #define ICorProfilerInfo4_AddRef(This)  \
10555     ( (This)->lpVtbl -> AddRef(This) ) 
10556
10557 #define ICorProfilerInfo4_Release(This) \
10558     ( (This)->lpVtbl -> Release(This) ) 
10559
10560
10561 #define ICorProfilerInfo4_GetClassFromObject(This,objectId,pClassId)    \
10562     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
10563
10564 #define ICorProfilerInfo4_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
10565     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
10566
10567 #define ICorProfilerInfo4_GetCodeInfo(This,functionId,pStart,pcSize)    \
10568     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
10569
10570 #define ICorProfilerInfo4_GetEventMask(This,pdwEvents)  \
10571     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
10572
10573 #define ICorProfilerInfo4_GetFunctionFromIP(This,ip,pFunctionId)        \
10574     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
10575
10576 #define ICorProfilerInfo4_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
10577     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
10578
10579 #define ICorProfilerInfo4_GetHandleFromThread(This,threadId,phThread)   \
10580     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
10581
10582 #define ICorProfilerInfo4_GetObjectSize(This,objectId,pcSize)   \
10583     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
10584
10585 #define ICorProfilerInfo4_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
10586     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
10587
10588 #define ICorProfilerInfo4_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
10589     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
10590
10591 #define ICorProfilerInfo4_GetCurrentThreadID(This,pThreadId)    \
10592     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
10593
10594 #define ICorProfilerInfo4_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
10595     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
10596
10597 #define ICorProfilerInfo4_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
10598     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
10599
10600 #define ICorProfilerInfo4_SetEventMask(This,dwEvents)   \
10601     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
10602
10603 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
10604     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
10605
10606 #define ICorProfilerInfo4_SetFunctionIDMapper(This,pFunc)       \
10607     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
10608
10609 #define ICorProfilerInfo4_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
10610     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
10611
10612 #define ICorProfilerInfo4_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
10613     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
10614
10615 #define ICorProfilerInfo4_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
10616     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
10617
10618 #define ICorProfilerInfo4_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
10619     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
10620
10621 #define ICorProfilerInfo4_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
10622     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
10623
10624 #define ICorProfilerInfo4_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
10625     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
10626
10627 #define ICorProfilerInfo4_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
10628     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
10629
10630 #define ICorProfilerInfo4_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
10631     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
10632
10633 #define ICorProfilerInfo4_SetFunctionReJIT(This,functionId)     \
10634     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
10635
10636 #define ICorProfilerInfo4_ForceGC(This) \
10637     ( (This)->lpVtbl -> ForceGC(This) ) 
10638
10639 #define ICorProfilerInfo4_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
10640     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
10641
10642 #define ICorProfilerInfo4_GetInprocInspectionInterface(This,ppicd)      \
10643     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
10644
10645 #define ICorProfilerInfo4_GetInprocInspectionIThisThread(This,ppicd)    \
10646     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
10647
10648 #define ICorProfilerInfo4_GetThreadContext(This,threadId,pContextId)    \
10649     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
10650
10651 #define ICorProfilerInfo4_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
10652     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
10653
10654 #define ICorProfilerInfo4_EndInprocDebugging(This,dwProfilerContext)    \
10655     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
10656
10657 #define ICorProfilerInfo4_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
10658     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
10659
10660
10661 #define ICorProfilerInfo4_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
10662     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
10663
10664 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
10665     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
10666
10667 #define ICorProfilerInfo4_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
10668     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
10669
10670 #define ICorProfilerInfo4_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
10671     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
10672
10673 #define ICorProfilerInfo4_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
10674     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
10675
10676 #define ICorProfilerInfo4_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
10677     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
10678
10679 #define ICorProfilerInfo4_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
10680     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
10681
10682 #define ICorProfilerInfo4_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
10683     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
10684
10685 #define ICorProfilerInfo4_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
10686     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
10687
10688 #define ICorProfilerInfo4_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
10689     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
10690
10691 #define ICorProfilerInfo4_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
10692     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
10693
10694 #define ICorProfilerInfo4_GetBoxClassLayout(This,classId,pBufferOffset) \
10695     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
10696
10697 #define ICorProfilerInfo4_GetThreadAppDomain(This,threadId,pAppDomainId)        \
10698     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
10699
10700 #define ICorProfilerInfo4_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
10701     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
10702
10703 #define ICorProfilerInfo4_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
10704     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
10705
10706 #define ICorProfilerInfo4_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
10707     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
10708
10709 #define ICorProfilerInfo4_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
10710     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
10711
10712 #define ICorProfilerInfo4_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
10713     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
10714
10715 #define ICorProfilerInfo4_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
10716     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
10717
10718 #define ICorProfilerInfo4_GetObjectGeneration(This,objectId,range)      \
10719     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
10720
10721 #define ICorProfilerInfo4_GetNotifiedExceptionClauseInfo(This,pinfo)    \
10722     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
10723
10724
10725 #define ICorProfilerInfo4_EnumJITedFunctions(This,ppEnum)       \
10726     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
10727
10728 #define ICorProfilerInfo4_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
10729     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
10730
10731 #define ICorProfilerInfo4_SetFunctionIDMapper2(This,pFunc,clientData)   \
10732     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
10733
10734 #define ICorProfilerInfo4_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
10735     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
10736
10737 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
10738     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
10739
10740 #define ICorProfilerInfo4_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
10741     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
10742
10743 #define ICorProfilerInfo4_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
10744     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
10745
10746 #define ICorProfilerInfo4_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
10747     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
10748
10749 #define ICorProfilerInfo4_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
10750     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
10751
10752 #define ICorProfilerInfo4_EnumModules(This,ppEnum)      \
10753     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
10754
10755 #define ICorProfilerInfo4_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
10756     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
10757
10758 #define ICorProfilerInfo4_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
10759     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
10760
10761 #define ICorProfilerInfo4_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
10762     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
10763
10764 #define ICorProfilerInfo4_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
10765     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
10766
10767
10768 #define ICorProfilerInfo4_EnumThreads(This,ppEnum)      \
10769     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
10770
10771 #define ICorProfilerInfo4_InitializeCurrentThread(This) \
10772     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
10773
10774 #define ICorProfilerInfo4_RequestReJIT(This,cFunctions,moduleIds,methodIds)     \
10775     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
10776
10777 #define ICorProfilerInfo4_RequestRevert(This,cFunctions,moduleIds,methodIds,status)     \
10778     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
10779
10780 #define ICorProfilerInfo4_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)        \
10781     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
10782
10783 #define ICorProfilerInfo4_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)      \
10784     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
10785
10786 #define ICorProfilerInfo4_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
10787     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
10788
10789 #define ICorProfilerInfo4_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
10790     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
10791
10792 #define ICorProfilerInfo4_EnumJITedFunctions2(This,ppEnum)      \
10793     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
10794
10795 #define ICorProfilerInfo4_GetObjectSize2(This,objectId,pcSize)  \
10796     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
10797
10798 #endif /* COBJMACROS */
10799
10800
10801 #endif  /* C style interface */
10802
10803
10804
10805
10806 #endif  /* __ICorProfilerInfo4_INTERFACE_DEFINED__ */
10807
10808
10809 #ifndef __ICorProfilerInfo5_INTERFACE_DEFINED__
10810 #define __ICorProfilerInfo5_INTERFACE_DEFINED__
10811
10812 /* interface ICorProfilerInfo5 */
10813 /* [local][unique][uuid][object] */ 
10814
10815
10816 EXTERN_C const IID IID_ICorProfilerInfo5;
10817
10818 #if defined(__cplusplus) && !defined(CINTERFACE)
10819     
10820     MIDL_INTERFACE("07602928-CE38-4B83-81E7-74ADAF781214")
10821     ICorProfilerInfo5 : public ICorProfilerInfo4
10822     {
10823     public:
10824         virtual HRESULT STDMETHODCALLTYPE GetEventMask2( 
10825             /* [out] */ DWORD *pdwEventsLow,
10826             /* [out] */ DWORD *pdwEventsHigh) = 0;
10827         
10828         virtual HRESULT STDMETHODCALLTYPE SetEventMask2( 
10829             /* [in] */ DWORD dwEventsLow,
10830             /* [in] */ DWORD dwEventsHigh) = 0;
10831         
10832     };
10833     
10834     
10835 #else   /* C style interface */
10836
10837     typedef struct ICorProfilerInfo5Vtbl
10838     {
10839         BEGIN_INTERFACE
10840         
10841         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
10842             ICorProfilerInfo5 * This,
10843             /* [in] */ REFIID riid,
10844             /* [annotation][iid_is][out] */ 
10845             _COM_Outptr_  void **ppvObject);
10846         
10847         ULONG ( STDMETHODCALLTYPE *AddRef )( 
10848             ICorProfilerInfo5 * This);
10849         
10850         ULONG ( STDMETHODCALLTYPE *Release )( 
10851             ICorProfilerInfo5 * This);
10852         
10853         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
10854             ICorProfilerInfo5 * This,
10855             /* [in] */ ObjectID objectId,
10856             /* [out] */ ClassID *pClassId);
10857         
10858         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
10859             ICorProfilerInfo5 * This,
10860             /* [in] */ ModuleID moduleId,
10861             /* [in] */ mdTypeDef typeDef,
10862             /* [out] */ ClassID *pClassId);
10863         
10864         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
10865             ICorProfilerInfo5 * This,
10866             /* [in] */ FunctionID functionId,
10867             /* [out] */ LPCBYTE *pStart,
10868             /* [out] */ ULONG *pcSize);
10869         
10870         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
10871             ICorProfilerInfo5 * This,
10872             /* [out] */ DWORD *pdwEvents);
10873         
10874         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
10875             ICorProfilerInfo5 * This,
10876             /* [in] */ LPCBYTE ip,
10877             /* [out] */ FunctionID *pFunctionId);
10878         
10879         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
10880             ICorProfilerInfo5 * This,
10881             /* [in] */ ModuleID moduleId,
10882             /* [in] */ mdToken token,
10883             /* [out] */ FunctionID *pFunctionId);
10884         
10885         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
10886             ICorProfilerInfo5 * This,
10887             /* [in] */ ThreadID threadId,
10888             /* [out] */ HANDLE *phThread);
10889         
10890         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
10891             ICorProfilerInfo5 * This,
10892             /* [in] */ ObjectID objectId,
10893             /* [out] */ ULONG *pcSize);
10894         
10895         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
10896             ICorProfilerInfo5 * This,
10897             /* [in] */ ClassID classId,
10898             /* [out] */ CorElementType *pBaseElemType,
10899             /* [out] */ ClassID *pBaseClassId,
10900             /* [out] */ ULONG *pcRank);
10901         
10902         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
10903             ICorProfilerInfo5 * This,
10904             /* [in] */ ThreadID threadId,
10905             /* [out] */ DWORD *pdwWin32ThreadId);
10906         
10907         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
10908             ICorProfilerInfo5 * This,
10909             /* [out] */ ThreadID *pThreadId);
10910         
10911         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
10912             ICorProfilerInfo5 * This,
10913             /* [in] */ ClassID classId,
10914             /* [out] */ ModuleID *pModuleId,
10915             /* [out] */ mdTypeDef *pTypeDefToken);
10916         
10917         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
10918             ICorProfilerInfo5 * This,
10919             /* [in] */ FunctionID functionId,
10920             /* [out] */ ClassID *pClassId,
10921             /* [out] */ ModuleID *pModuleId,
10922             /* [out] */ mdToken *pToken);
10923         
10924         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
10925             ICorProfilerInfo5 * This,
10926             /* [in] */ DWORD dwEvents);
10927         
10928         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
10929             ICorProfilerInfo5 * This,
10930             /* [in] */ FunctionEnter *pFuncEnter,
10931             /* [in] */ FunctionLeave *pFuncLeave,
10932             /* [in] */ FunctionTailcall *pFuncTailcall);
10933         
10934         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
10935             ICorProfilerInfo5 * This,
10936             /* [in] */ FunctionIDMapper *pFunc);
10937         
10938         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
10939             ICorProfilerInfo5 * This,
10940             /* [in] */ FunctionID functionId,
10941             /* [in] */ REFIID riid,
10942             /* [out] */ IUnknown **ppImport,
10943             /* [out] */ mdToken *pToken);
10944         
10945         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
10946             ICorProfilerInfo5 * This,
10947             /* [in] */ ModuleID moduleId,
10948             /* [out] */ LPCBYTE *ppBaseLoadAddress,
10949             /* [in] */ ULONG cchName,
10950             /* [out] */ ULONG *pcchName,
10951             /* [annotation][out] */ 
10952             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10953             /* [out] */ AssemblyID *pAssemblyId);
10954         
10955         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
10956             ICorProfilerInfo5 * This,
10957             /* [in] */ ModuleID moduleId,
10958             /* [in] */ DWORD dwOpenFlags,
10959             /* [in] */ REFIID riid,
10960             /* [out] */ IUnknown **ppOut);
10961         
10962         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
10963             ICorProfilerInfo5 * This,
10964             /* [in] */ ModuleID moduleId,
10965             /* [in] */ mdMethodDef methodId,
10966             /* [out] */ LPCBYTE *ppMethodHeader,
10967             /* [out] */ ULONG *pcbMethodSize);
10968         
10969         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
10970             ICorProfilerInfo5 * This,
10971             /* [in] */ ModuleID moduleId,
10972             /* [out] */ IMethodMalloc **ppMalloc);
10973         
10974         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
10975             ICorProfilerInfo5 * This,
10976             /* [in] */ ModuleID moduleId,
10977             /* [in] */ mdMethodDef methodid,
10978             /* [in] */ LPCBYTE pbNewILMethodHeader);
10979         
10980         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
10981             ICorProfilerInfo5 * This,
10982             /* [in] */ AppDomainID appDomainId,
10983             /* [in] */ ULONG cchName,
10984             /* [out] */ ULONG *pcchName,
10985             /* [annotation][out] */ 
10986             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10987             /* [out] */ ProcessID *pProcessId);
10988         
10989         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
10990             ICorProfilerInfo5 * This,
10991             /* [in] */ AssemblyID assemblyId,
10992             /* [in] */ ULONG cchName,
10993             /* [out] */ ULONG *pcchName,
10994             /* [annotation][out] */ 
10995             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
10996             /* [out] */ AppDomainID *pAppDomainId,
10997             /* [out] */ ModuleID *pModuleId);
10998         
10999         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
11000             ICorProfilerInfo5 * This,
11001             /* [in] */ FunctionID functionId);
11002         
11003         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
11004             ICorProfilerInfo5 * This);
11005         
11006         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
11007             ICorProfilerInfo5 * This,
11008             /* [in] */ FunctionID functionId,
11009             /* [in] */ BOOL fStartJit,
11010             /* [in] */ ULONG cILMapEntries,
11011             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
11012         
11013         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
11014             ICorProfilerInfo5 * This,
11015             /* [out] */ IUnknown **ppicd);
11016         
11017         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
11018             ICorProfilerInfo5 * This,
11019             /* [out] */ IUnknown **ppicd);
11020         
11021         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
11022             ICorProfilerInfo5 * This,
11023             /* [in] */ ThreadID threadId,
11024             /* [out] */ ContextID *pContextId);
11025         
11026         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
11027             ICorProfilerInfo5 * This,
11028             /* [in] */ BOOL fThisThreadOnly,
11029             /* [out] */ DWORD *pdwProfilerContext);
11030         
11031         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
11032             ICorProfilerInfo5 * This,
11033             /* [in] */ DWORD dwProfilerContext);
11034         
11035         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
11036             ICorProfilerInfo5 * This,
11037             /* [in] */ FunctionID functionId,
11038             /* [in] */ ULONG32 cMap,
11039             /* [out] */ ULONG32 *pcMap,
11040             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
11041         
11042         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
11043             ICorProfilerInfo5 * This,
11044             /* [in] */ ThreadID thread,
11045             /* [in] */ StackSnapshotCallback *callback,
11046             /* [in] */ ULONG32 infoFlags,
11047             /* [in] */ void *clientData,
11048             /* [size_is][in] */ BYTE context[  ],
11049             /* [in] */ ULONG32 contextSize);
11050         
11051         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
11052             ICorProfilerInfo5 * This,
11053             /* [in] */ FunctionEnter2 *pFuncEnter,
11054             /* [in] */ FunctionLeave2 *pFuncLeave,
11055             /* [in] */ FunctionTailcall2 *pFuncTailcall);
11056         
11057         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
11058             ICorProfilerInfo5 * This,
11059             /* [in] */ FunctionID funcId,
11060             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11061             /* [out] */ ClassID *pClassId,
11062             /* [out] */ ModuleID *pModuleId,
11063             /* [out] */ mdToken *pToken,
11064             /* [in] */ ULONG32 cTypeArgs,
11065             /* [out] */ ULONG32 *pcTypeArgs,
11066             /* [out] */ ClassID typeArgs[  ]);
11067         
11068         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
11069             ICorProfilerInfo5 * This,
11070             /* [out] */ ULONG *pBufferLengthOffset,
11071             /* [out] */ ULONG *pStringLengthOffset,
11072             /* [out] */ ULONG *pBufferOffset);
11073         
11074         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
11075             ICorProfilerInfo5 * This,
11076             /* [in] */ ClassID classID,
11077             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
11078             /* [in] */ ULONG cFieldOffset,
11079             /* [out] */ ULONG *pcFieldOffset,
11080             /* [out] */ ULONG *pulClassSize);
11081         
11082         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
11083             ICorProfilerInfo5 * This,
11084             /* [in] */ ClassID classId,
11085             /* [out] */ ModuleID *pModuleId,
11086             /* [out] */ mdTypeDef *pTypeDefToken,
11087             /* [out] */ ClassID *pParentClassId,
11088             /* [in] */ ULONG32 cNumTypeArgs,
11089             /* [out] */ ULONG32 *pcNumTypeArgs,
11090             /* [out] */ ClassID typeArgs[  ]);
11091         
11092         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
11093             ICorProfilerInfo5 * This,
11094             /* [in] */ FunctionID functionID,
11095             /* [in] */ ULONG32 cCodeInfos,
11096             /* [out] */ ULONG32 *pcCodeInfos,
11097             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
11098         
11099         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
11100             ICorProfilerInfo5 * This,
11101             /* [in] */ ModuleID moduleID,
11102             /* [in] */ mdTypeDef typeDef,
11103             /* [in] */ ULONG32 cTypeArgs,
11104             /* [size_is][in] */ ClassID typeArgs[  ],
11105             /* [out] */ ClassID *pClassID);
11106         
11107         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
11108             ICorProfilerInfo5 * This,
11109             /* [in] */ ModuleID moduleID,
11110             /* [in] */ mdMethodDef funcDef,
11111             /* [in] */ ClassID classId,
11112             /* [in] */ ULONG32 cTypeArgs,
11113             /* [size_is][in] */ ClassID typeArgs[  ],
11114             /* [out] */ FunctionID *pFunctionID);
11115         
11116         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
11117             ICorProfilerInfo5 * This,
11118             /* [in] */ ModuleID moduleID,
11119             /* [out] */ ICorProfilerObjectEnum **ppEnum);
11120         
11121         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
11122             ICorProfilerInfo5 * This,
11123             /* [in] */ ObjectID objectId,
11124             /* [in] */ ULONG32 cDimensions,
11125             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
11126             /* [size_is][out] */ int pDimensionLowerBounds[  ],
11127             /* [out] */ BYTE **ppData);
11128         
11129         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
11130             ICorProfilerInfo5 * This,
11131             /* [in] */ ClassID classId,
11132             /* [out] */ ULONG32 *pBufferOffset);
11133         
11134         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
11135             ICorProfilerInfo5 * This,
11136             /* [in] */ ThreadID threadId,
11137             /* [out] */ AppDomainID *pAppDomainId);
11138         
11139         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
11140             ICorProfilerInfo5 * This,
11141             /* [in] */ ClassID classId,
11142             /* [in] */ mdFieldDef fieldToken,
11143             /* [out] */ void **ppAddress);
11144         
11145         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
11146             ICorProfilerInfo5 * This,
11147             /* [in] */ ClassID classId,
11148             /* [in] */ mdFieldDef fieldToken,
11149             /* [in] */ AppDomainID appDomainId,
11150             /* [out] */ void **ppAddress);
11151         
11152         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
11153             ICorProfilerInfo5 * This,
11154             /* [in] */ ClassID classId,
11155             /* [in] */ mdFieldDef fieldToken,
11156             /* [in] */ ThreadID threadId,
11157             /* [out] */ void **ppAddress);
11158         
11159         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
11160             ICorProfilerInfo5 * This,
11161             /* [in] */ ClassID classId,
11162             /* [in] */ mdFieldDef fieldToken,
11163             /* [in] */ ContextID contextId,
11164             /* [out] */ void **ppAddress);
11165         
11166         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
11167             ICorProfilerInfo5 * This,
11168             /* [in] */ ClassID classId,
11169             /* [in] */ mdFieldDef fieldToken,
11170             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
11171         
11172         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
11173             ICorProfilerInfo5 * This,
11174             /* [in] */ ULONG cObjectRanges,
11175             /* [out] */ ULONG *pcObjectRanges,
11176             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
11177         
11178         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
11179             ICorProfilerInfo5 * This,
11180             /* [in] */ ObjectID objectId,
11181             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
11182         
11183         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
11184             ICorProfilerInfo5 * This,
11185             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
11186         
11187         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
11188             ICorProfilerInfo5 * This,
11189             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11190         
11191         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
11192             ICorProfilerInfo5 * This,
11193             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
11194         
11195         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
11196             ICorProfilerInfo5 * This,
11197             /* [in] */ FunctionIDMapper2 *pFunc,
11198             /* [in] */ void *clientData);
11199         
11200         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
11201             ICorProfilerInfo5 * This,
11202             /* [out] */ ULONG *pStringLengthOffset,
11203             /* [out] */ ULONG *pBufferOffset);
11204         
11205         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
11206             ICorProfilerInfo5 * This,
11207             /* [in] */ FunctionEnter3 *pFuncEnter3,
11208             /* [in] */ FunctionLeave3 *pFuncLeave3,
11209             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
11210         
11211         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
11212             ICorProfilerInfo5 * This,
11213             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
11214             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
11215             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
11216         
11217         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
11218             ICorProfilerInfo5 * This,
11219             /* [in] */ FunctionID functionId,
11220             /* [in] */ COR_PRF_ELT_INFO eltInfo,
11221             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11222             /* [out][in] */ ULONG *pcbArgumentInfo,
11223             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
11224         
11225         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
11226             ICorProfilerInfo5 * This,
11227             /* [in] */ FunctionID functionId,
11228             /* [in] */ COR_PRF_ELT_INFO eltInfo,
11229             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
11230             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
11231         
11232         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
11233             ICorProfilerInfo5 * This,
11234             /* [in] */ FunctionID functionId,
11235             /* [in] */ COR_PRF_ELT_INFO eltInfo,
11236             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
11237         
11238         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
11239             ICorProfilerInfo5 * This,
11240             /* [out] */ ICorProfilerModuleEnum **ppEnum);
11241         
11242         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
11243             ICorProfilerInfo5 * This,
11244             /* [out] */ USHORT *pClrInstanceId,
11245             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
11246             /* [out] */ USHORT *pMajorVersion,
11247             /* [out] */ USHORT *pMinorVersion,
11248             /* [out] */ USHORT *pBuildNumber,
11249             /* [out] */ USHORT *pQFEVersion,
11250             /* [in] */ ULONG cchVersionString,
11251             /* [out] */ ULONG *pcchVersionString,
11252             /* [annotation][out] */ 
11253             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
11254         
11255         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
11256             ICorProfilerInfo5 * This,
11257             /* [in] */ ClassID classId,
11258             /* [in] */ mdFieldDef fieldToken,
11259             /* [in] */ AppDomainID appDomainId,
11260             /* [in] */ ThreadID threadId,
11261             /* [out] */ void **ppAddress);
11262         
11263         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
11264             ICorProfilerInfo5 * This,
11265             /* [in] */ ModuleID moduleId,
11266             /* [in] */ ULONG32 cAppDomainIds,
11267             /* [out] */ ULONG32 *pcAppDomainIds,
11268             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
11269         
11270         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
11271             ICorProfilerInfo5 * This,
11272             /* [in] */ ModuleID moduleId,
11273             /* [out] */ LPCBYTE *ppBaseLoadAddress,
11274             /* [in] */ ULONG cchName,
11275             /* [out] */ ULONG *pcchName,
11276             /* [annotation][out] */ 
11277             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
11278             /* [out] */ AssemblyID *pAssemblyId,
11279             /* [out] */ DWORD *pdwModuleFlags);
11280         
11281         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
11282             ICorProfilerInfo5 * This,
11283             /* [out] */ ICorProfilerThreadEnum **ppEnum);
11284         
11285         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
11286             ICorProfilerInfo5 * This);
11287         
11288         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
11289             ICorProfilerInfo5 * This,
11290             /* [in] */ ULONG cFunctions,
11291             /* [size_is][in] */ ModuleID moduleIds[  ],
11292             /* [size_is][in] */ mdMethodDef methodIds[  ]);
11293         
11294         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
11295             ICorProfilerInfo5 * This,
11296             /* [in] */ ULONG cFunctions,
11297             /* [size_is][in] */ ModuleID moduleIds[  ],
11298             /* [size_is][in] */ mdMethodDef methodIds[  ],
11299             /* [size_is][out] */ HRESULT status[  ]);
11300         
11301         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
11302             ICorProfilerInfo5 * This,
11303             /* [in] */ FunctionID functionID,
11304             /* [in] */ ReJITID reJitId,
11305             /* [in] */ ULONG32 cCodeInfos,
11306             /* [out] */ ULONG32 *pcCodeInfos,
11307             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
11308         
11309         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
11310             ICorProfilerInfo5 * This,
11311             /* [in] */ LPCBYTE ip,
11312             /* [out] */ FunctionID *pFunctionId,
11313             /* [out] */ ReJITID *pReJitId);
11314         
11315         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
11316             ICorProfilerInfo5 * This,
11317             /* [in] */ FunctionID functionId,
11318             /* [in] */ ULONG cReJitIds,
11319             /* [out] */ ULONG *pcReJitIds,
11320             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
11321         
11322         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
11323             ICorProfilerInfo5 * This,
11324             /* [in] */ FunctionID functionId,
11325             /* [in] */ ReJITID reJitId,
11326             /* [in] */ ULONG32 cMap,
11327             /* [out] */ ULONG32 *pcMap,
11328             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
11329         
11330         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
11331             ICorProfilerInfo5 * This,
11332             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
11333         
11334         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
11335             ICorProfilerInfo5 * This,
11336             /* [in] */ ObjectID objectId,
11337             /* [out] */ SIZE_T *pcSize);
11338         
11339         HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( 
11340             ICorProfilerInfo5 * This,
11341             /* [out] */ DWORD *pdwEventsLow,
11342             /* [out] */ DWORD *pdwEventsHigh);
11343         
11344         HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( 
11345             ICorProfilerInfo5 * This,
11346             /* [in] */ DWORD dwEventsLow,
11347             /* [in] */ DWORD dwEventsHigh);
11348         
11349         END_INTERFACE
11350     } ICorProfilerInfo5Vtbl;
11351
11352     interface ICorProfilerInfo5
11353     {
11354         CONST_VTBL struct ICorProfilerInfo5Vtbl *lpVtbl;
11355     };
11356
11357     
11358
11359 #ifdef COBJMACROS
11360
11361
11362 #define ICorProfilerInfo5_QueryInterface(This,riid,ppvObject)   \
11363     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
11364
11365 #define ICorProfilerInfo5_AddRef(This)  \
11366     ( (This)->lpVtbl -> AddRef(This) ) 
11367
11368 #define ICorProfilerInfo5_Release(This) \
11369     ( (This)->lpVtbl -> Release(This) ) 
11370
11371
11372 #define ICorProfilerInfo5_GetClassFromObject(This,objectId,pClassId)    \
11373     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
11374
11375 #define ICorProfilerInfo5_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
11376     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
11377
11378 #define ICorProfilerInfo5_GetCodeInfo(This,functionId,pStart,pcSize)    \
11379     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
11380
11381 #define ICorProfilerInfo5_GetEventMask(This,pdwEvents)  \
11382     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
11383
11384 #define ICorProfilerInfo5_GetFunctionFromIP(This,ip,pFunctionId)        \
11385     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
11386
11387 #define ICorProfilerInfo5_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
11388     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
11389
11390 #define ICorProfilerInfo5_GetHandleFromThread(This,threadId,phThread)   \
11391     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
11392
11393 #define ICorProfilerInfo5_GetObjectSize(This,objectId,pcSize)   \
11394     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
11395
11396 #define ICorProfilerInfo5_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
11397     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
11398
11399 #define ICorProfilerInfo5_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
11400     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
11401
11402 #define ICorProfilerInfo5_GetCurrentThreadID(This,pThreadId)    \
11403     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
11404
11405 #define ICorProfilerInfo5_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
11406     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
11407
11408 #define ICorProfilerInfo5_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
11409     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
11410
11411 #define ICorProfilerInfo5_SetEventMask(This,dwEvents)   \
11412     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
11413
11414 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
11415     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
11416
11417 #define ICorProfilerInfo5_SetFunctionIDMapper(This,pFunc)       \
11418     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
11419
11420 #define ICorProfilerInfo5_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
11421     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
11422
11423 #define ICorProfilerInfo5_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
11424     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
11425
11426 #define ICorProfilerInfo5_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
11427     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
11428
11429 #define ICorProfilerInfo5_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
11430     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
11431
11432 #define ICorProfilerInfo5_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
11433     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
11434
11435 #define ICorProfilerInfo5_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
11436     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
11437
11438 #define ICorProfilerInfo5_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
11439     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
11440
11441 #define ICorProfilerInfo5_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
11442     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
11443
11444 #define ICorProfilerInfo5_SetFunctionReJIT(This,functionId)     \
11445     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
11446
11447 #define ICorProfilerInfo5_ForceGC(This) \
11448     ( (This)->lpVtbl -> ForceGC(This) ) 
11449
11450 #define ICorProfilerInfo5_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
11451     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
11452
11453 #define ICorProfilerInfo5_GetInprocInspectionInterface(This,ppicd)      \
11454     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
11455
11456 #define ICorProfilerInfo5_GetInprocInspectionIThisThread(This,ppicd)    \
11457     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
11458
11459 #define ICorProfilerInfo5_GetThreadContext(This,threadId,pContextId)    \
11460     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
11461
11462 #define ICorProfilerInfo5_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
11463     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
11464
11465 #define ICorProfilerInfo5_EndInprocDebugging(This,dwProfilerContext)    \
11466     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
11467
11468 #define ICorProfilerInfo5_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
11469     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
11470
11471
11472 #define ICorProfilerInfo5_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
11473     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
11474
11475 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
11476     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
11477
11478 #define ICorProfilerInfo5_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
11479     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
11480
11481 #define ICorProfilerInfo5_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
11482     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
11483
11484 #define ICorProfilerInfo5_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
11485     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
11486
11487 #define ICorProfilerInfo5_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
11488     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
11489
11490 #define ICorProfilerInfo5_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
11491     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
11492
11493 #define ICorProfilerInfo5_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
11494     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
11495
11496 #define ICorProfilerInfo5_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
11497     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
11498
11499 #define ICorProfilerInfo5_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
11500     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
11501
11502 #define ICorProfilerInfo5_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
11503     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
11504
11505 #define ICorProfilerInfo5_GetBoxClassLayout(This,classId,pBufferOffset) \
11506     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
11507
11508 #define ICorProfilerInfo5_GetThreadAppDomain(This,threadId,pAppDomainId)        \
11509     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
11510
11511 #define ICorProfilerInfo5_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
11512     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
11513
11514 #define ICorProfilerInfo5_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
11515     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
11516
11517 #define ICorProfilerInfo5_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
11518     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
11519
11520 #define ICorProfilerInfo5_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
11521     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
11522
11523 #define ICorProfilerInfo5_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
11524     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
11525
11526 #define ICorProfilerInfo5_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
11527     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
11528
11529 #define ICorProfilerInfo5_GetObjectGeneration(This,objectId,range)      \
11530     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
11531
11532 #define ICorProfilerInfo5_GetNotifiedExceptionClauseInfo(This,pinfo)    \
11533     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
11534
11535
11536 #define ICorProfilerInfo5_EnumJITedFunctions(This,ppEnum)       \
11537     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
11538
11539 #define ICorProfilerInfo5_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
11540     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
11541
11542 #define ICorProfilerInfo5_SetFunctionIDMapper2(This,pFunc,clientData)   \
11543     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
11544
11545 #define ICorProfilerInfo5_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
11546     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
11547
11548 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
11549     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
11550
11551 #define ICorProfilerInfo5_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
11552     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
11553
11554 #define ICorProfilerInfo5_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
11555     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
11556
11557 #define ICorProfilerInfo5_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
11558     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
11559
11560 #define ICorProfilerInfo5_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
11561     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
11562
11563 #define ICorProfilerInfo5_EnumModules(This,ppEnum)      \
11564     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
11565
11566 #define ICorProfilerInfo5_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
11567     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
11568
11569 #define ICorProfilerInfo5_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
11570     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
11571
11572 #define ICorProfilerInfo5_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
11573     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
11574
11575 #define ICorProfilerInfo5_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
11576     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
11577
11578
11579 #define ICorProfilerInfo5_EnumThreads(This,ppEnum)      \
11580     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
11581
11582 #define ICorProfilerInfo5_InitializeCurrentThread(This) \
11583     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
11584
11585 #define ICorProfilerInfo5_RequestReJIT(This,cFunctions,moduleIds,methodIds)     \
11586     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
11587
11588 #define ICorProfilerInfo5_RequestRevert(This,cFunctions,moduleIds,methodIds,status)     \
11589     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
11590
11591 #define ICorProfilerInfo5_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)        \
11592     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
11593
11594 #define ICorProfilerInfo5_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)      \
11595     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
11596
11597 #define ICorProfilerInfo5_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
11598     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
11599
11600 #define ICorProfilerInfo5_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
11601     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
11602
11603 #define ICorProfilerInfo5_EnumJITedFunctions2(This,ppEnum)      \
11604     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
11605
11606 #define ICorProfilerInfo5_GetObjectSize2(This,objectId,pcSize)  \
11607     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
11608
11609
11610 #define ICorProfilerInfo5_GetEventMask2(This,pdwEventsLow,pdwEventsHigh)        \
11611     ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) 
11612
11613 #define ICorProfilerInfo5_SetEventMask2(This,dwEventsLow,dwEventsHigh)  \
11614     ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) 
11615
11616 #endif /* COBJMACROS */
11617
11618
11619 #endif  /* C style interface */
11620
11621
11622
11623
11624 #endif  /* __ICorProfilerInfo5_INTERFACE_DEFINED__ */
11625
11626
11627 #ifndef __ICorProfilerInfo6_INTERFACE_DEFINED__
11628 #define __ICorProfilerInfo6_INTERFACE_DEFINED__
11629
11630 /* interface ICorProfilerInfo6 */
11631 /* [local][unique][uuid][object] */ 
11632
11633
11634 EXTERN_C const IID IID_ICorProfilerInfo6;
11635
11636 #if defined(__cplusplus) && !defined(CINTERFACE)
11637     
11638     MIDL_INTERFACE("F30A070D-BFFB-46A7-B1D8-8781EF7B698A")
11639     ICorProfilerInfo6 : public ICorProfilerInfo5
11640     {
11641     public:
11642         virtual HRESULT STDMETHODCALLTYPE EnumNgenModuleMethodsInliningThisMethod( 
11643             /* [in] */ ModuleID inlinersModuleId,
11644             /* [in] */ ModuleID inlineeModuleId,
11645             /* [in] */ mdMethodDef inlineeMethodId,
11646             /* [out] */ BOOL *incompleteData,
11647             /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
11648         
11649     };
11650     
11651     
11652 #else   /* C style interface */
11653
11654     typedef struct ICorProfilerInfo6Vtbl
11655     {
11656         BEGIN_INTERFACE
11657         
11658         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
11659             ICorProfilerInfo6 * This,
11660             /* [in] */ REFIID riid,
11661             /* [annotation][iid_is][out] */ 
11662             _COM_Outptr_  void **ppvObject);
11663         
11664         ULONG ( STDMETHODCALLTYPE *AddRef )( 
11665             ICorProfilerInfo6 * This);
11666         
11667         ULONG ( STDMETHODCALLTYPE *Release )( 
11668             ICorProfilerInfo6 * This);
11669         
11670         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
11671             ICorProfilerInfo6 * This,
11672             /* [in] */ ObjectID objectId,
11673             /* [out] */ ClassID *pClassId);
11674         
11675         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
11676             ICorProfilerInfo6 * This,
11677             /* [in] */ ModuleID moduleId,
11678             /* [in] */ mdTypeDef typeDef,
11679             /* [out] */ ClassID *pClassId);
11680         
11681         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
11682             ICorProfilerInfo6 * This,
11683             /* [in] */ FunctionID functionId,
11684             /* [out] */ LPCBYTE *pStart,
11685             /* [out] */ ULONG *pcSize);
11686         
11687         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
11688             ICorProfilerInfo6 * This,
11689             /* [out] */ DWORD *pdwEvents);
11690         
11691         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
11692             ICorProfilerInfo6 * This,
11693             /* [in] */ LPCBYTE ip,
11694             /* [out] */ FunctionID *pFunctionId);
11695         
11696         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
11697             ICorProfilerInfo6 * This,
11698             /* [in] */ ModuleID moduleId,
11699             /* [in] */ mdToken token,
11700             /* [out] */ FunctionID *pFunctionId);
11701         
11702         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
11703             ICorProfilerInfo6 * This,
11704             /* [in] */ ThreadID threadId,
11705             /* [out] */ HANDLE *phThread);
11706         
11707         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
11708             ICorProfilerInfo6 * This,
11709             /* [in] */ ObjectID objectId,
11710             /* [out] */ ULONG *pcSize);
11711         
11712         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
11713             ICorProfilerInfo6 * This,
11714             /* [in] */ ClassID classId,
11715             /* [out] */ CorElementType *pBaseElemType,
11716             /* [out] */ ClassID *pBaseClassId,
11717             /* [out] */ ULONG *pcRank);
11718         
11719         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
11720             ICorProfilerInfo6 * This,
11721             /* [in] */ ThreadID threadId,
11722             /* [out] */ DWORD *pdwWin32ThreadId);
11723         
11724         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
11725             ICorProfilerInfo6 * This,
11726             /* [out] */ ThreadID *pThreadId);
11727         
11728         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
11729             ICorProfilerInfo6 * This,
11730             /* [in] */ ClassID classId,
11731             /* [out] */ ModuleID *pModuleId,
11732             /* [out] */ mdTypeDef *pTypeDefToken);
11733         
11734         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
11735             ICorProfilerInfo6 * This,
11736             /* [in] */ FunctionID functionId,
11737             /* [out] */ ClassID *pClassId,
11738             /* [out] */ ModuleID *pModuleId,
11739             /* [out] */ mdToken *pToken);
11740         
11741         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
11742             ICorProfilerInfo6 * This,
11743             /* [in] */ DWORD dwEvents);
11744         
11745         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
11746             ICorProfilerInfo6 * This,
11747             /* [in] */ FunctionEnter *pFuncEnter,
11748             /* [in] */ FunctionLeave *pFuncLeave,
11749             /* [in] */ FunctionTailcall *pFuncTailcall);
11750         
11751         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
11752             ICorProfilerInfo6 * This,
11753             /* [in] */ FunctionIDMapper *pFunc);
11754         
11755         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
11756             ICorProfilerInfo6 * This,
11757             /* [in] */ FunctionID functionId,
11758             /* [in] */ REFIID riid,
11759             /* [out] */ IUnknown **ppImport,
11760             /* [out] */ mdToken *pToken);
11761         
11762         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
11763             ICorProfilerInfo6 * This,
11764             /* [in] */ ModuleID moduleId,
11765             /* [out] */ LPCBYTE *ppBaseLoadAddress,
11766             /* [in] */ ULONG cchName,
11767             /* [out] */ ULONG *pcchName,
11768             /* [annotation][out] */ 
11769             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
11770             /* [out] */ AssemblyID *pAssemblyId);
11771         
11772         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
11773             ICorProfilerInfo6 * This,
11774             /* [in] */ ModuleID moduleId,
11775             /* [in] */ DWORD dwOpenFlags,
11776             /* [in] */ REFIID riid,
11777             /* [out] */ IUnknown **ppOut);
11778         
11779         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
11780             ICorProfilerInfo6 * This,
11781             /* [in] */ ModuleID moduleId,
11782             /* [in] */ mdMethodDef methodId,
11783             /* [out] */ LPCBYTE *ppMethodHeader,
11784             /* [out] */ ULONG *pcbMethodSize);
11785         
11786         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
11787             ICorProfilerInfo6 * This,
11788             /* [in] */ ModuleID moduleId,
11789             /* [out] */ IMethodMalloc **ppMalloc);
11790         
11791         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
11792             ICorProfilerInfo6 * This,
11793             /* [in] */ ModuleID moduleId,
11794             /* [in] */ mdMethodDef methodid,
11795             /* [in] */ LPCBYTE pbNewILMethodHeader);
11796         
11797         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
11798             ICorProfilerInfo6 * This,
11799             /* [in] */ AppDomainID appDomainId,
11800             /* [in] */ ULONG cchName,
11801             /* [out] */ ULONG *pcchName,
11802             /* [annotation][out] */ 
11803             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
11804             /* [out] */ ProcessID *pProcessId);
11805         
11806         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
11807             ICorProfilerInfo6 * This,
11808             /* [in] */ AssemblyID assemblyId,
11809             /* [in] */ ULONG cchName,
11810             /* [out] */ ULONG *pcchName,
11811             /* [annotation][out] */ 
11812             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
11813             /* [out] */ AppDomainID *pAppDomainId,
11814             /* [out] */ ModuleID *pModuleId);
11815         
11816         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
11817             ICorProfilerInfo6 * This,
11818             /* [in] */ FunctionID functionId);
11819         
11820         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
11821             ICorProfilerInfo6 * This);
11822         
11823         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
11824             ICorProfilerInfo6 * This,
11825             /* [in] */ FunctionID functionId,
11826             /* [in] */ BOOL fStartJit,
11827             /* [in] */ ULONG cILMapEntries,
11828             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
11829         
11830         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
11831             ICorProfilerInfo6 * This,
11832             /* [out] */ IUnknown **ppicd);
11833         
11834         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
11835             ICorProfilerInfo6 * This,
11836             /* [out] */ IUnknown **ppicd);
11837         
11838         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
11839             ICorProfilerInfo6 * This,
11840             /* [in] */ ThreadID threadId,
11841             /* [out] */ ContextID *pContextId);
11842         
11843         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
11844             ICorProfilerInfo6 * This,
11845             /* [in] */ BOOL fThisThreadOnly,
11846             /* [out] */ DWORD *pdwProfilerContext);
11847         
11848         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
11849             ICorProfilerInfo6 * This,
11850             /* [in] */ DWORD dwProfilerContext);
11851         
11852         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
11853             ICorProfilerInfo6 * This,
11854             /* [in] */ FunctionID functionId,
11855             /* [in] */ ULONG32 cMap,
11856             /* [out] */ ULONG32 *pcMap,
11857             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
11858         
11859         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
11860             ICorProfilerInfo6 * This,
11861             /* [in] */ ThreadID thread,
11862             /* [in] */ StackSnapshotCallback *callback,
11863             /* [in] */ ULONG32 infoFlags,
11864             /* [in] */ void *clientData,
11865             /* [size_is][in] */ BYTE context[  ],
11866             /* [in] */ ULONG32 contextSize);
11867         
11868         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
11869             ICorProfilerInfo6 * This,
11870             /* [in] */ FunctionEnter2 *pFuncEnter,
11871             /* [in] */ FunctionLeave2 *pFuncLeave,
11872             /* [in] */ FunctionTailcall2 *pFuncTailcall);
11873         
11874         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
11875             ICorProfilerInfo6 * This,
11876             /* [in] */ FunctionID funcId,
11877             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
11878             /* [out] */ ClassID *pClassId,
11879             /* [out] */ ModuleID *pModuleId,
11880             /* [out] */ mdToken *pToken,
11881             /* [in] */ ULONG32 cTypeArgs,
11882             /* [out] */ ULONG32 *pcTypeArgs,
11883             /* [out] */ ClassID typeArgs[  ]);
11884         
11885         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
11886             ICorProfilerInfo6 * This,
11887             /* [out] */ ULONG *pBufferLengthOffset,
11888             /* [out] */ ULONG *pStringLengthOffset,
11889             /* [out] */ ULONG *pBufferOffset);
11890         
11891         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
11892             ICorProfilerInfo6 * This,
11893             /* [in] */ ClassID classID,
11894             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
11895             /* [in] */ ULONG cFieldOffset,
11896             /* [out] */ ULONG *pcFieldOffset,
11897             /* [out] */ ULONG *pulClassSize);
11898         
11899         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
11900             ICorProfilerInfo6 * This,
11901             /* [in] */ ClassID classId,
11902             /* [out] */ ModuleID *pModuleId,
11903             /* [out] */ mdTypeDef *pTypeDefToken,
11904             /* [out] */ ClassID *pParentClassId,
11905             /* [in] */ ULONG32 cNumTypeArgs,
11906             /* [out] */ ULONG32 *pcNumTypeArgs,
11907             /* [out] */ ClassID typeArgs[  ]);
11908         
11909         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
11910             ICorProfilerInfo6 * This,
11911             /* [in] */ FunctionID functionID,
11912             /* [in] */ ULONG32 cCodeInfos,
11913             /* [out] */ ULONG32 *pcCodeInfos,
11914             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
11915         
11916         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
11917             ICorProfilerInfo6 * This,
11918             /* [in] */ ModuleID moduleID,
11919             /* [in] */ mdTypeDef typeDef,
11920             /* [in] */ ULONG32 cTypeArgs,
11921             /* [size_is][in] */ ClassID typeArgs[  ],
11922             /* [out] */ ClassID *pClassID);
11923         
11924         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
11925             ICorProfilerInfo6 * This,
11926             /* [in] */ ModuleID moduleID,
11927             /* [in] */ mdMethodDef funcDef,
11928             /* [in] */ ClassID classId,
11929             /* [in] */ ULONG32 cTypeArgs,
11930             /* [size_is][in] */ ClassID typeArgs[  ],
11931             /* [out] */ FunctionID *pFunctionID);
11932         
11933         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
11934             ICorProfilerInfo6 * This,
11935             /* [in] */ ModuleID moduleID,
11936             /* [out] */ ICorProfilerObjectEnum **ppEnum);
11937         
11938         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
11939             ICorProfilerInfo6 * This,
11940             /* [in] */ ObjectID objectId,
11941             /* [in] */ ULONG32 cDimensions,
11942             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
11943             /* [size_is][out] */ int pDimensionLowerBounds[  ],
11944             /* [out] */ BYTE **ppData);
11945         
11946         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
11947             ICorProfilerInfo6 * This,
11948             /* [in] */ ClassID classId,
11949             /* [out] */ ULONG32 *pBufferOffset);
11950         
11951         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
11952             ICorProfilerInfo6 * This,
11953             /* [in] */ ThreadID threadId,
11954             /* [out] */ AppDomainID *pAppDomainId);
11955         
11956         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
11957             ICorProfilerInfo6 * This,
11958             /* [in] */ ClassID classId,
11959             /* [in] */ mdFieldDef fieldToken,
11960             /* [out] */ void **ppAddress);
11961         
11962         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
11963             ICorProfilerInfo6 * This,
11964             /* [in] */ ClassID classId,
11965             /* [in] */ mdFieldDef fieldToken,
11966             /* [in] */ AppDomainID appDomainId,
11967             /* [out] */ void **ppAddress);
11968         
11969         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
11970             ICorProfilerInfo6 * This,
11971             /* [in] */ ClassID classId,
11972             /* [in] */ mdFieldDef fieldToken,
11973             /* [in] */ ThreadID threadId,
11974             /* [out] */ void **ppAddress);
11975         
11976         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
11977             ICorProfilerInfo6 * This,
11978             /* [in] */ ClassID classId,
11979             /* [in] */ mdFieldDef fieldToken,
11980             /* [in] */ ContextID contextId,
11981             /* [out] */ void **ppAddress);
11982         
11983         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
11984             ICorProfilerInfo6 * This,
11985             /* [in] */ ClassID classId,
11986             /* [in] */ mdFieldDef fieldToken,
11987             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
11988         
11989         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
11990             ICorProfilerInfo6 * This,
11991             /* [in] */ ULONG cObjectRanges,
11992             /* [out] */ ULONG *pcObjectRanges,
11993             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
11994         
11995         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
11996             ICorProfilerInfo6 * This,
11997             /* [in] */ ObjectID objectId,
11998             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
11999         
12000         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
12001             ICorProfilerInfo6 * This,
12002             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12003         
12004         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
12005             ICorProfilerInfo6 * This,
12006             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12007         
12008         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
12009             ICorProfilerInfo6 * This,
12010             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12011         
12012         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
12013             ICorProfilerInfo6 * This,
12014             /* [in] */ FunctionIDMapper2 *pFunc,
12015             /* [in] */ void *clientData);
12016         
12017         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
12018             ICorProfilerInfo6 * This,
12019             /* [out] */ ULONG *pStringLengthOffset,
12020             /* [out] */ ULONG *pBufferOffset);
12021         
12022         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
12023             ICorProfilerInfo6 * This,
12024             /* [in] */ FunctionEnter3 *pFuncEnter3,
12025             /* [in] */ FunctionLeave3 *pFuncLeave3,
12026             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12027         
12028         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
12029             ICorProfilerInfo6 * This,
12030             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12031             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12032             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12033         
12034         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
12035             ICorProfilerInfo6 * This,
12036             /* [in] */ FunctionID functionId,
12037             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12038             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12039             /* [out][in] */ ULONG *pcbArgumentInfo,
12040             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12041         
12042         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
12043             ICorProfilerInfo6 * This,
12044             /* [in] */ FunctionID functionId,
12045             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12046             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12047             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12048         
12049         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
12050             ICorProfilerInfo6 * This,
12051             /* [in] */ FunctionID functionId,
12052             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12053             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12054         
12055         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
12056             ICorProfilerInfo6 * This,
12057             /* [out] */ ICorProfilerModuleEnum **ppEnum);
12058         
12059         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
12060             ICorProfilerInfo6 * This,
12061             /* [out] */ USHORT *pClrInstanceId,
12062             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12063             /* [out] */ USHORT *pMajorVersion,
12064             /* [out] */ USHORT *pMinorVersion,
12065             /* [out] */ USHORT *pBuildNumber,
12066             /* [out] */ USHORT *pQFEVersion,
12067             /* [in] */ ULONG cchVersionString,
12068             /* [out] */ ULONG *pcchVersionString,
12069             /* [annotation][out] */ 
12070             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
12071         
12072         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
12073             ICorProfilerInfo6 * This,
12074             /* [in] */ ClassID classId,
12075             /* [in] */ mdFieldDef fieldToken,
12076             /* [in] */ AppDomainID appDomainId,
12077             /* [in] */ ThreadID threadId,
12078             /* [out] */ void **ppAddress);
12079         
12080         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
12081             ICorProfilerInfo6 * This,
12082             /* [in] */ ModuleID moduleId,
12083             /* [in] */ ULONG32 cAppDomainIds,
12084             /* [out] */ ULONG32 *pcAppDomainIds,
12085             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
12086         
12087         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
12088             ICorProfilerInfo6 * This,
12089             /* [in] */ ModuleID moduleId,
12090             /* [out] */ LPCBYTE *ppBaseLoadAddress,
12091             /* [in] */ ULONG cchName,
12092             /* [out] */ ULONG *pcchName,
12093             /* [annotation][out] */ 
12094             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
12095             /* [out] */ AssemblyID *pAssemblyId,
12096             /* [out] */ DWORD *pdwModuleFlags);
12097         
12098         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
12099             ICorProfilerInfo6 * This,
12100             /* [out] */ ICorProfilerThreadEnum **ppEnum);
12101         
12102         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
12103             ICorProfilerInfo6 * This);
12104         
12105         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
12106             ICorProfilerInfo6 * This,
12107             /* [in] */ ULONG cFunctions,
12108             /* [size_is][in] */ ModuleID moduleIds[  ],
12109             /* [size_is][in] */ mdMethodDef methodIds[  ]);
12110         
12111         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
12112             ICorProfilerInfo6 * This,
12113             /* [in] */ ULONG cFunctions,
12114             /* [size_is][in] */ ModuleID moduleIds[  ],
12115             /* [size_is][in] */ mdMethodDef methodIds[  ],
12116             /* [size_is][out] */ HRESULT status[  ]);
12117         
12118         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
12119             ICorProfilerInfo6 * This,
12120             /* [in] */ FunctionID functionID,
12121             /* [in] */ ReJITID reJitId,
12122             /* [in] */ ULONG32 cCodeInfos,
12123             /* [out] */ ULONG32 *pcCodeInfos,
12124             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
12125         
12126         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
12127             ICorProfilerInfo6 * This,
12128             /* [in] */ LPCBYTE ip,
12129             /* [out] */ FunctionID *pFunctionId,
12130             /* [out] */ ReJITID *pReJitId);
12131         
12132         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
12133             ICorProfilerInfo6 * This,
12134             /* [in] */ FunctionID functionId,
12135             /* [in] */ ULONG cReJitIds,
12136             /* [out] */ ULONG *pcReJitIds,
12137             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
12138         
12139         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
12140             ICorProfilerInfo6 * This,
12141             /* [in] */ FunctionID functionId,
12142             /* [in] */ ReJITID reJitId,
12143             /* [in] */ ULONG32 cMap,
12144             /* [out] */ ULONG32 *pcMap,
12145             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
12146         
12147         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
12148             ICorProfilerInfo6 * This,
12149             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12150         
12151         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
12152             ICorProfilerInfo6 * This,
12153             /* [in] */ ObjectID objectId,
12154             /* [out] */ SIZE_T *pcSize);
12155         
12156         HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( 
12157             ICorProfilerInfo6 * This,
12158             /* [out] */ DWORD *pdwEventsLow,
12159             /* [out] */ DWORD *pdwEventsHigh);
12160         
12161         HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( 
12162             ICorProfilerInfo6 * This,
12163             /* [in] */ DWORD dwEventsLow,
12164             /* [in] */ DWORD dwEventsHigh);
12165         
12166         HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )( 
12167             ICorProfilerInfo6 * This,
12168             /* [in] */ ModuleID inlinersModuleId,
12169             /* [in] */ ModuleID inlineeModuleId,
12170             /* [in] */ mdMethodDef inlineeMethodId,
12171             /* [out] */ BOOL *incompleteData,
12172             /* [out] */ ICorProfilerMethodEnum **ppEnum);
12173         
12174         END_INTERFACE
12175     } ICorProfilerInfo6Vtbl;
12176
12177     interface ICorProfilerInfo6
12178     {
12179         CONST_VTBL struct ICorProfilerInfo6Vtbl *lpVtbl;
12180     };
12181
12182     
12183
12184 #ifdef COBJMACROS
12185
12186
12187 #define ICorProfilerInfo6_QueryInterface(This,riid,ppvObject)   \
12188     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
12189
12190 #define ICorProfilerInfo6_AddRef(This)  \
12191     ( (This)->lpVtbl -> AddRef(This) ) 
12192
12193 #define ICorProfilerInfo6_Release(This) \
12194     ( (This)->lpVtbl -> Release(This) ) 
12195
12196
12197 #define ICorProfilerInfo6_GetClassFromObject(This,objectId,pClassId)    \
12198     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
12199
12200 #define ICorProfilerInfo6_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
12201     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
12202
12203 #define ICorProfilerInfo6_GetCodeInfo(This,functionId,pStart,pcSize)    \
12204     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
12205
12206 #define ICorProfilerInfo6_GetEventMask(This,pdwEvents)  \
12207     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
12208
12209 #define ICorProfilerInfo6_GetFunctionFromIP(This,ip,pFunctionId)        \
12210     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
12211
12212 #define ICorProfilerInfo6_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
12213     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
12214
12215 #define ICorProfilerInfo6_GetHandleFromThread(This,threadId,phThread)   \
12216     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
12217
12218 #define ICorProfilerInfo6_GetObjectSize(This,objectId,pcSize)   \
12219     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
12220
12221 #define ICorProfilerInfo6_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
12222     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
12223
12224 #define ICorProfilerInfo6_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
12225     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
12226
12227 #define ICorProfilerInfo6_GetCurrentThreadID(This,pThreadId)    \
12228     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
12229
12230 #define ICorProfilerInfo6_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
12231     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
12232
12233 #define ICorProfilerInfo6_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
12234     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
12235
12236 #define ICorProfilerInfo6_SetEventMask(This,dwEvents)   \
12237     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
12238
12239 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
12240     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
12241
12242 #define ICorProfilerInfo6_SetFunctionIDMapper(This,pFunc)       \
12243     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
12244
12245 #define ICorProfilerInfo6_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
12246     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
12247
12248 #define ICorProfilerInfo6_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
12249     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
12250
12251 #define ICorProfilerInfo6_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
12252     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
12253
12254 #define ICorProfilerInfo6_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
12255     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
12256
12257 #define ICorProfilerInfo6_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
12258     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
12259
12260 #define ICorProfilerInfo6_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
12261     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
12262
12263 #define ICorProfilerInfo6_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
12264     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
12265
12266 #define ICorProfilerInfo6_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
12267     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
12268
12269 #define ICorProfilerInfo6_SetFunctionReJIT(This,functionId)     \
12270     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
12271
12272 #define ICorProfilerInfo6_ForceGC(This) \
12273     ( (This)->lpVtbl -> ForceGC(This) ) 
12274
12275 #define ICorProfilerInfo6_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
12276     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
12277
12278 #define ICorProfilerInfo6_GetInprocInspectionInterface(This,ppicd)      \
12279     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
12280
12281 #define ICorProfilerInfo6_GetInprocInspectionIThisThread(This,ppicd)    \
12282     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
12283
12284 #define ICorProfilerInfo6_GetThreadContext(This,threadId,pContextId)    \
12285     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
12286
12287 #define ICorProfilerInfo6_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
12288     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
12289
12290 #define ICorProfilerInfo6_EndInprocDebugging(This,dwProfilerContext)    \
12291     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
12292
12293 #define ICorProfilerInfo6_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
12294     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
12295
12296
12297 #define ICorProfilerInfo6_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
12298     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
12299
12300 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
12301     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
12302
12303 #define ICorProfilerInfo6_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
12304     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
12305
12306 #define ICorProfilerInfo6_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
12307     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
12308
12309 #define ICorProfilerInfo6_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
12310     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
12311
12312 #define ICorProfilerInfo6_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
12313     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
12314
12315 #define ICorProfilerInfo6_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
12316     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
12317
12318 #define ICorProfilerInfo6_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
12319     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
12320
12321 #define ICorProfilerInfo6_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
12322     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
12323
12324 #define ICorProfilerInfo6_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
12325     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
12326
12327 #define ICorProfilerInfo6_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
12328     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
12329
12330 #define ICorProfilerInfo6_GetBoxClassLayout(This,classId,pBufferOffset) \
12331     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
12332
12333 #define ICorProfilerInfo6_GetThreadAppDomain(This,threadId,pAppDomainId)        \
12334     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
12335
12336 #define ICorProfilerInfo6_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
12337     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
12338
12339 #define ICorProfilerInfo6_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
12340     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
12341
12342 #define ICorProfilerInfo6_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
12343     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
12344
12345 #define ICorProfilerInfo6_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
12346     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
12347
12348 #define ICorProfilerInfo6_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
12349     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
12350
12351 #define ICorProfilerInfo6_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
12352     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
12353
12354 #define ICorProfilerInfo6_GetObjectGeneration(This,objectId,range)      \
12355     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
12356
12357 #define ICorProfilerInfo6_GetNotifiedExceptionClauseInfo(This,pinfo)    \
12358     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
12359
12360
12361 #define ICorProfilerInfo6_EnumJITedFunctions(This,ppEnum)       \
12362     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
12363
12364 #define ICorProfilerInfo6_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
12365     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
12366
12367 #define ICorProfilerInfo6_SetFunctionIDMapper2(This,pFunc,clientData)   \
12368     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
12369
12370 #define ICorProfilerInfo6_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
12371     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
12372
12373 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
12374     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
12375
12376 #define ICorProfilerInfo6_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
12377     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
12378
12379 #define ICorProfilerInfo6_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
12380     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
12381
12382 #define ICorProfilerInfo6_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
12383     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
12384
12385 #define ICorProfilerInfo6_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
12386     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
12387
12388 #define ICorProfilerInfo6_EnumModules(This,ppEnum)      \
12389     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
12390
12391 #define ICorProfilerInfo6_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
12392     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
12393
12394 #define ICorProfilerInfo6_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
12395     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
12396
12397 #define ICorProfilerInfo6_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
12398     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
12399
12400 #define ICorProfilerInfo6_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
12401     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
12402
12403
12404 #define ICorProfilerInfo6_EnumThreads(This,ppEnum)      \
12405     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
12406
12407 #define ICorProfilerInfo6_InitializeCurrentThread(This) \
12408     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
12409
12410 #define ICorProfilerInfo6_RequestReJIT(This,cFunctions,moduleIds,methodIds)     \
12411     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
12412
12413 #define ICorProfilerInfo6_RequestRevert(This,cFunctions,moduleIds,methodIds,status)     \
12414     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
12415
12416 #define ICorProfilerInfo6_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)        \
12417     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
12418
12419 #define ICorProfilerInfo6_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)      \
12420     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
12421
12422 #define ICorProfilerInfo6_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
12423     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
12424
12425 #define ICorProfilerInfo6_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
12426     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
12427
12428 #define ICorProfilerInfo6_EnumJITedFunctions2(This,ppEnum)      \
12429     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
12430
12431 #define ICorProfilerInfo6_GetObjectSize2(This,objectId,pcSize)  \
12432     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
12433
12434
12435 #define ICorProfilerInfo6_GetEventMask2(This,pdwEventsLow,pdwEventsHigh)        \
12436     ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) 
12437
12438 #define ICorProfilerInfo6_SetEventMask2(This,dwEventsLow,dwEventsHigh)  \
12439     ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) 
12440
12441
12442 #define ICorProfilerInfo6_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum)  \
12443     ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) 
12444
12445 #endif /* COBJMACROS */
12446
12447
12448 #endif  /* C style interface */
12449
12450
12451
12452
12453 #endif  /* __ICorProfilerInfo6_INTERFACE_DEFINED__ */
12454
12455
12456 #ifndef __ICorProfilerInfo7_INTERFACE_DEFINED__
12457 #define __ICorProfilerInfo7_INTERFACE_DEFINED__
12458
12459 /* interface ICorProfilerInfo7 */
12460 /* [local][unique][uuid][object] */ 
12461
12462
12463 EXTERN_C const IID IID_ICorProfilerInfo7;
12464
12465 #if defined(__cplusplus) && !defined(CINTERFACE)
12466     
12467     MIDL_INTERFACE("9AEECC0D-63E0-4187-8C00-E312F503F663")
12468     ICorProfilerInfo7 : public ICorProfilerInfo6
12469     {
12470     public:
12471         virtual HRESULT STDMETHODCALLTYPE ApplyMetaData( 
12472             /* [in] */ ModuleID moduleId) = 0;
12473         
12474         virtual HRESULT STDMETHODCALLTYPE GetInMemorySymbolsLength( 
12475             /* [in] */ ModuleID moduleId,
12476             /* [out] */ DWORD *pCountSymbolBytes) = 0;
12477         
12478         virtual HRESULT STDMETHODCALLTYPE ReadInMemorySymbols( 
12479             /* [in] */ ModuleID moduleId,
12480             /* [in] */ DWORD symbolsReadOffset,
12481             /* [out] */ BYTE *pSymbolBytes,
12482             /* [in] */ DWORD countSymbolBytes,
12483             /* [out] */ DWORD *pCountSymbolBytesRead) = 0;
12484         
12485     };
12486     
12487     
12488 #else   /* C style interface */
12489
12490     typedef struct ICorProfilerInfo7Vtbl
12491     {
12492         BEGIN_INTERFACE
12493         
12494         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
12495             ICorProfilerInfo7 * This,
12496             /* [in] */ REFIID riid,
12497             /* [annotation][iid_is][out] */ 
12498             _COM_Outptr_  void **ppvObject);
12499         
12500         ULONG ( STDMETHODCALLTYPE *AddRef )( 
12501             ICorProfilerInfo7 * This);
12502         
12503         ULONG ( STDMETHODCALLTYPE *Release )( 
12504             ICorProfilerInfo7 * This);
12505         
12506         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
12507             ICorProfilerInfo7 * This,
12508             /* [in] */ ObjectID objectId,
12509             /* [out] */ ClassID *pClassId);
12510         
12511         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
12512             ICorProfilerInfo7 * This,
12513             /* [in] */ ModuleID moduleId,
12514             /* [in] */ mdTypeDef typeDef,
12515             /* [out] */ ClassID *pClassId);
12516         
12517         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
12518             ICorProfilerInfo7 * This,
12519             /* [in] */ FunctionID functionId,
12520             /* [out] */ LPCBYTE *pStart,
12521             /* [out] */ ULONG *pcSize);
12522         
12523         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
12524             ICorProfilerInfo7 * This,
12525             /* [out] */ DWORD *pdwEvents);
12526         
12527         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
12528             ICorProfilerInfo7 * This,
12529             /* [in] */ LPCBYTE ip,
12530             /* [out] */ FunctionID *pFunctionId);
12531         
12532         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
12533             ICorProfilerInfo7 * This,
12534             /* [in] */ ModuleID moduleId,
12535             /* [in] */ mdToken token,
12536             /* [out] */ FunctionID *pFunctionId);
12537         
12538         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
12539             ICorProfilerInfo7 * This,
12540             /* [in] */ ThreadID threadId,
12541             /* [out] */ HANDLE *phThread);
12542         
12543         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
12544             ICorProfilerInfo7 * This,
12545             /* [in] */ ObjectID objectId,
12546             /* [out] */ ULONG *pcSize);
12547         
12548         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
12549             ICorProfilerInfo7 * This,
12550             /* [in] */ ClassID classId,
12551             /* [out] */ CorElementType *pBaseElemType,
12552             /* [out] */ ClassID *pBaseClassId,
12553             /* [out] */ ULONG *pcRank);
12554         
12555         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
12556             ICorProfilerInfo7 * This,
12557             /* [in] */ ThreadID threadId,
12558             /* [out] */ DWORD *pdwWin32ThreadId);
12559         
12560         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
12561             ICorProfilerInfo7 * This,
12562             /* [out] */ ThreadID *pThreadId);
12563         
12564         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
12565             ICorProfilerInfo7 * This,
12566             /* [in] */ ClassID classId,
12567             /* [out] */ ModuleID *pModuleId,
12568             /* [out] */ mdTypeDef *pTypeDefToken);
12569         
12570         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
12571             ICorProfilerInfo7 * This,
12572             /* [in] */ FunctionID functionId,
12573             /* [out] */ ClassID *pClassId,
12574             /* [out] */ ModuleID *pModuleId,
12575             /* [out] */ mdToken *pToken);
12576         
12577         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
12578             ICorProfilerInfo7 * This,
12579             /* [in] */ DWORD dwEvents);
12580         
12581         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
12582             ICorProfilerInfo7 * This,
12583             /* [in] */ FunctionEnter *pFuncEnter,
12584             /* [in] */ FunctionLeave *pFuncLeave,
12585             /* [in] */ FunctionTailcall *pFuncTailcall);
12586         
12587         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
12588             ICorProfilerInfo7 * This,
12589             /* [in] */ FunctionIDMapper *pFunc);
12590         
12591         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
12592             ICorProfilerInfo7 * This,
12593             /* [in] */ FunctionID functionId,
12594             /* [in] */ REFIID riid,
12595             /* [out] */ IUnknown **ppImport,
12596             /* [out] */ mdToken *pToken);
12597         
12598         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
12599             ICorProfilerInfo7 * This,
12600             /* [in] */ ModuleID moduleId,
12601             /* [out] */ LPCBYTE *ppBaseLoadAddress,
12602             /* [in] */ ULONG cchName,
12603             /* [out] */ ULONG *pcchName,
12604             /* [annotation][out] */ 
12605             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
12606             /* [out] */ AssemblyID *pAssemblyId);
12607         
12608         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
12609             ICorProfilerInfo7 * This,
12610             /* [in] */ ModuleID moduleId,
12611             /* [in] */ DWORD dwOpenFlags,
12612             /* [in] */ REFIID riid,
12613             /* [out] */ IUnknown **ppOut);
12614         
12615         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
12616             ICorProfilerInfo7 * This,
12617             /* [in] */ ModuleID moduleId,
12618             /* [in] */ mdMethodDef methodId,
12619             /* [out] */ LPCBYTE *ppMethodHeader,
12620             /* [out] */ ULONG *pcbMethodSize);
12621         
12622         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
12623             ICorProfilerInfo7 * This,
12624             /* [in] */ ModuleID moduleId,
12625             /* [out] */ IMethodMalloc **ppMalloc);
12626         
12627         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
12628             ICorProfilerInfo7 * This,
12629             /* [in] */ ModuleID moduleId,
12630             /* [in] */ mdMethodDef methodid,
12631             /* [in] */ LPCBYTE pbNewILMethodHeader);
12632         
12633         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
12634             ICorProfilerInfo7 * This,
12635             /* [in] */ AppDomainID appDomainId,
12636             /* [in] */ ULONG cchName,
12637             /* [out] */ ULONG *pcchName,
12638             /* [annotation][out] */ 
12639             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
12640             /* [out] */ ProcessID *pProcessId);
12641         
12642         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
12643             ICorProfilerInfo7 * This,
12644             /* [in] */ AssemblyID assemblyId,
12645             /* [in] */ ULONG cchName,
12646             /* [out] */ ULONG *pcchName,
12647             /* [annotation][out] */ 
12648             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
12649             /* [out] */ AppDomainID *pAppDomainId,
12650             /* [out] */ ModuleID *pModuleId);
12651         
12652         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
12653             ICorProfilerInfo7 * This,
12654             /* [in] */ FunctionID functionId);
12655         
12656         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
12657             ICorProfilerInfo7 * This);
12658         
12659         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
12660             ICorProfilerInfo7 * This,
12661             /* [in] */ FunctionID functionId,
12662             /* [in] */ BOOL fStartJit,
12663             /* [in] */ ULONG cILMapEntries,
12664             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
12665         
12666         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
12667             ICorProfilerInfo7 * This,
12668             /* [out] */ IUnknown **ppicd);
12669         
12670         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
12671             ICorProfilerInfo7 * This,
12672             /* [out] */ IUnknown **ppicd);
12673         
12674         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
12675             ICorProfilerInfo7 * This,
12676             /* [in] */ ThreadID threadId,
12677             /* [out] */ ContextID *pContextId);
12678         
12679         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
12680             ICorProfilerInfo7 * This,
12681             /* [in] */ BOOL fThisThreadOnly,
12682             /* [out] */ DWORD *pdwProfilerContext);
12683         
12684         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
12685             ICorProfilerInfo7 * This,
12686             /* [in] */ DWORD dwProfilerContext);
12687         
12688         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
12689             ICorProfilerInfo7 * This,
12690             /* [in] */ FunctionID functionId,
12691             /* [in] */ ULONG32 cMap,
12692             /* [out] */ ULONG32 *pcMap,
12693             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
12694         
12695         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
12696             ICorProfilerInfo7 * This,
12697             /* [in] */ ThreadID thread,
12698             /* [in] */ StackSnapshotCallback *callback,
12699             /* [in] */ ULONG32 infoFlags,
12700             /* [in] */ void *clientData,
12701             /* [size_is][in] */ BYTE context[  ],
12702             /* [in] */ ULONG32 contextSize);
12703         
12704         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
12705             ICorProfilerInfo7 * This,
12706             /* [in] */ FunctionEnter2 *pFuncEnter,
12707             /* [in] */ FunctionLeave2 *pFuncLeave,
12708             /* [in] */ FunctionTailcall2 *pFuncTailcall);
12709         
12710         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
12711             ICorProfilerInfo7 * This,
12712             /* [in] */ FunctionID funcId,
12713             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
12714             /* [out] */ ClassID *pClassId,
12715             /* [out] */ ModuleID *pModuleId,
12716             /* [out] */ mdToken *pToken,
12717             /* [in] */ ULONG32 cTypeArgs,
12718             /* [out] */ ULONG32 *pcTypeArgs,
12719             /* [out] */ ClassID typeArgs[  ]);
12720         
12721         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
12722             ICorProfilerInfo7 * This,
12723             /* [out] */ ULONG *pBufferLengthOffset,
12724             /* [out] */ ULONG *pStringLengthOffset,
12725             /* [out] */ ULONG *pBufferOffset);
12726         
12727         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
12728             ICorProfilerInfo7 * This,
12729             /* [in] */ ClassID classID,
12730             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
12731             /* [in] */ ULONG cFieldOffset,
12732             /* [out] */ ULONG *pcFieldOffset,
12733             /* [out] */ ULONG *pulClassSize);
12734         
12735         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
12736             ICorProfilerInfo7 * This,
12737             /* [in] */ ClassID classId,
12738             /* [out] */ ModuleID *pModuleId,
12739             /* [out] */ mdTypeDef *pTypeDefToken,
12740             /* [out] */ ClassID *pParentClassId,
12741             /* [in] */ ULONG32 cNumTypeArgs,
12742             /* [out] */ ULONG32 *pcNumTypeArgs,
12743             /* [out] */ ClassID typeArgs[  ]);
12744         
12745         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
12746             ICorProfilerInfo7 * This,
12747             /* [in] */ FunctionID functionID,
12748             /* [in] */ ULONG32 cCodeInfos,
12749             /* [out] */ ULONG32 *pcCodeInfos,
12750             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
12751         
12752         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
12753             ICorProfilerInfo7 * This,
12754             /* [in] */ ModuleID moduleID,
12755             /* [in] */ mdTypeDef typeDef,
12756             /* [in] */ ULONG32 cTypeArgs,
12757             /* [size_is][in] */ ClassID typeArgs[  ],
12758             /* [out] */ ClassID *pClassID);
12759         
12760         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
12761             ICorProfilerInfo7 * This,
12762             /* [in] */ ModuleID moduleID,
12763             /* [in] */ mdMethodDef funcDef,
12764             /* [in] */ ClassID classId,
12765             /* [in] */ ULONG32 cTypeArgs,
12766             /* [size_is][in] */ ClassID typeArgs[  ],
12767             /* [out] */ FunctionID *pFunctionID);
12768         
12769         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
12770             ICorProfilerInfo7 * This,
12771             /* [in] */ ModuleID moduleID,
12772             /* [out] */ ICorProfilerObjectEnum **ppEnum);
12773         
12774         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
12775             ICorProfilerInfo7 * This,
12776             /* [in] */ ObjectID objectId,
12777             /* [in] */ ULONG32 cDimensions,
12778             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
12779             /* [size_is][out] */ int pDimensionLowerBounds[  ],
12780             /* [out] */ BYTE **ppData);
12781         
12782         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
12783             ICorProfilerInfo7 * This,
12784             /* [in] */ ClassID classId,
12785             /* [out] */ ULONG32 *pBufferOffset);
12786         
12787         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
12788             ICorProfilerInfo7 * This,
12789             /* [in] */ ThreadID threadId,
12790             /* [out] */ AppDomainID *pAppDomainId);
12791         
12792         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
12793             ICorProfilerInfo7 * This,
12794             /* [in] */ ClassID classId,
12795             /* [in] */ mdFieldDef fieldToken,
12796             /* [out] */ void **ppAddress);
12797         
12798         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
12799             ICorProfilerInfo7 * This,
12800             /* [in] */ ClassID classId,
12801             /* [in] */ mdFieldDef fieldToken,
12802             /* [in] */ AppDomainID appDomainId,
12803             /* [out] */ void **ppAddress);
12804         
12805         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
12806             ICorProfilerInfo7 * This,
12807             /* [in] */ ClassID classId,
12808             /* [in] */ mdFieldDef fieldToken,
12809             /* [in] */ ThreadID threadId,
12810             /* [out] */ void **ppAddress);
12811         
12812         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
12813             ICorProfilerInfo7 * This,
12814             /* [in] */ ClassID classId,
12815             /* [in] */ mdFieldDef fieldToken,
12816             /* [in] */ ContextID contextId,
12817             /* [out] */ void **ppAddress);
12818         
12819         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
12820             ICorProfilerInfo7 * This,
12821             /* [in] */ ClassID classId,
12822             /* [in] */ mdFieldDef fieldToken,
12823             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
12824         
12825         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
12826             ICorProfilerInfo7 * This,
12827             /* [in] */ ULONG cObjectRanges,
12828             /* [out] */ ULONG *pcObjectRanges,
12829             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
12830         
12831         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
12832             ICorProfilerInfo7 * This,
12833             /* [in] */ ObjectID objectId,
12834             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
12835         
12836         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
12837             ICorProfilerInfo7 * This,
12838             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
12839         
12840         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
12841             ICorProfilerInfo7 * This,
12842             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12843         
12844         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
12845             ICorProfilerInfo7 * This,
12846             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
12847         
12848         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
12849             ICorProfilerInfo7 * This,
12850             /* [in] */ FunctionIDMapper2 *pFunc,
12851             /* [in] */ void *clientData);
12852         
12853         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
12854             ICorProfilerInfo7 * This,
12855             /* [out] */ ULONG *pStringLengthOffset,
12856             /* [out] */ ULONG *pBufferOffset);
12857         
12858         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
12859             ICorProfilerInfo7 * This,
12860             /* [in] */ FunctionEnter3 *pFuncEnter3,
12861             /* [in] */ FunctionLeave3 *pFuncLeave3,
12862             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
12863         
12864         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
12865             ICorProfilerInfo7 * This,
12866             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
12867             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
12868             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
12869         
12870         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
12871             ICorProfilerInfo7 * This,
12872             /* [in] */ FunctionID functionId,
12873             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12874             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12875             /* [out][in] */ ULONG *pcbArgumentInfo,
12876             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
12877         
12878         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
12879             ICorProfilerInfo7 * This,
12880             /* [in] */ FunctionID functionId,
12881             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12882             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
12883             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
12884         
12885         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
12886             ICorProfilerInfo7 * This,
12887             /* [in] */ FunctionID functionId,
12888             /* [in] */ COR_PRF_ELT_INFO eltInfo,
12889             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
12890         
12891         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
12892             ICorProfilerInfo7 * This,
12893             /* [out] */ ICorProfilerModuleEnum **ppEnum);
12894         
12895         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
12896             ICorProfilerInfo7 * This,
12897             /* [out] */ USHORT *pClrInstanceId,
12898             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
12899             /* [out] */ USHORT *pMajorVersion,
12900             /* [out] */ USHORT *pMinorVersion,
12901             /* [out] */ USHORT *pBuildNumber,
12902             /* [out] */ USHORT *pQFEVersion,
12903             /* [in] */ ULONG cchVersionString,
12904             /* [out] */ ULONG *pcchVersionString,
12905             /* [annotation][out] */ 
12906             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
12907         
12908         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
12909             ICorProfilerInfo7 * This,
12910             /* [in] */ ClassID classId,
12911             /* [in] */ mdFieldDef fieldToken,
12912             /* [in] */ AppDomainID appDomainId,
12913             /* [in] */ ThreadID threadId,
12914             /* [out] */ void **ppAddress);
12915         
12916         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
12917             ICorProfilerInfo7 * This,
12918             /* [in] */ ModuleID moduleId,
12919             /* [in] */ ULONG32 cAppDomainIds,
12920             /* [out] */ ULONG32 *pcAppDomainIds,
12921             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
12922         
12923         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
12924             ICorProfilerInfo7 * This,
12925             /* [in] */ ModuleID moduleId,
12926             /* [out] */ LPCBYTE *ppBaseLoadAddress,
12927             /* [in] */ ULONG cchName,
12928             /* [out] */ ULONG *pcchName,
12929             /* [annotation][out] */ 
12930             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
12931             /* [out] */ AssemblyID *pAssemblyId,
12932             /* [out] */ DWORD *pdwModuleFlags);
12933         
12934         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
12935             ICorProfilerInfo7 * This,
12936             /* [out] */ ICorProfilerThreadEnum **ppEnum);
12937         
12938         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
12939             ICorProfilerInfo7 * This);
12940         
12941         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
12942             ICorProfilerInfo7 * This,
12943             /* [in] */ ULONG cFunctions,
12944             /* [size_is][in] */ ModuleID moduleIds[  ],
12945             /* [size_is][in] */ mdMethodDef methodIds[  ]);
12946         
12947         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
12948             ICorProfilerInfo7 * This,
12949             /* [in] */ ULONG cFunctions,
12950             /* [size_is][in] */ ModuleID moduleIds[  ],
12951             /* [size_is][in] */ mdMethodDef methodIds[  ],
12952             /* [size_is][out] */ HRESULT status[  ]);
12953         
12954         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
12955             ICorProfilerInfo7 * This,
12956             /* [in] */ FunctionID functionID,
12957             /* [in] */ ReJITID reJitId,
12958             /* [in] */ ULONG32 cCodeInfos,
12959             /* [out] */ ULONG32 *pcCodeInfos,
12960             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
12961         
12962         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
12963             ICorProfilerInfo7 * This,
12964             /* [in] */ LPCBYTE ip,
12965             /* [out] */ FunctionID *pFunctionId,
12966             /* [out] */ ReJITID *pReJitId);
12967         
12968         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
12969             ICorProfilerInfo7 * This,
12970             /* [in] */ FunctionID functionId,
12971             /* [in] */ ULONG cReJitIds,
12972             /* [out] */ ULONG *pcReJitIds,
12973             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
12974         
12975         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
12976             ICorProfilerInfo7 * This,
12977             /* [in] */ FunctionID functionId,
12978             /* [in] */ ReJITID reJitId,
12979             /* [in] */ ULONG32 cMap,
12980             /* [out] */ ULONG32 *pcMap,
12981             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
12982         
12983         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
12984             ICorProfilerInfo7 * This,
12985             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
12986         
12987         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
12988             ICorProfilerInfo7 * This,
12989             /* [in] */ ObjectID objectId,
12990             /* [out] */ SIZE_T *pcSize);
12991         
12992         HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( 
12993             ICorProfilerInfo7 * This,
12994             /* [out] */ DWORD *pdwEventsLow,
12995             /* [out] */ DWORD *pdwEventsHigh);
12996         
12997         HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( 
12998             ICorProfilerInfo7 * This,
12999             /* [in] */ DWORD dwEventsLow,
13000             /* [in] */ DWORD dwEventsHigh);
13001         
13002         HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )( 
13003             ICorProfilerInfo7 * This,
13004             /* [in] */ ModuleID inlinersModuleId,
13005             /* [in] */ ModuleID inlineeModuleId,
13006             /* [in] */ mdMethodDef inlineeMethodId,
13007             /* [out] */ BOOL *incompleteData,
13008             /* [out] */ ICorProfilerMethodEnum **ppEnum);
13009         
13010         HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )( 
13011             ICorProfilerInfo7 * This,
13012             /* [in] */ ModuleID moduleId);
13013         
13014         HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )( 
13015             ICorProfilerInfo7 * This,
13016             /* [in] */ ModuleID moduleId,
13017             /* [out] */ DWORD *pCountSymbolBytes);
13018         
13019         HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )( 
13020             ICorProfilerInfo7 * This,
13021             /* [in] */ ModuleID moduleId,
13022             /* [in] */ DWORD symbolsReadOffset,
13023             /* [out] */ BYTE *pSymbolBytes,
13024             /* [in] */ DWORD countSymbolBytes,
13025             /* [out] */ DWORD *pCountSymbolBytesRead);
13026         
13027         END_INTERFACE
13028     } ICorProfilerInfo7Vtbl;
13029
13030     interface ICorProfilerInfo7
13031     {
13032         CONST_VTBL struct ICorProfilerInfo7Vtbl *lpVtbl;
13033     };
13034
13035     
13036
13037 #ifdef COBJMACROS
13038
13039
13040 #define ICorProfilerInfo7_QueryInterface(This,riid,ppvObject)   \
13041     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
13042
13043 #define ICorProfilerInfo7_AddRef(This)  \
13044     ( (This)->lpVtbl -> AddRef(This) ) 
13045
13046 #define ICorProfilerInfo7_Release(This) \
13047     ( (This)->lpVtbl -> Release(This) ) 
13048
13049
13050 #define ICorProfilerInfo7_GetClassFromObject(This,objectId,pClassId)    \
13051     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
13052
13053 #define ICorProfilerInfo7_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
13054     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
13055
13056 #define ICorProfilerInfo7_GetCodeInfo(This,functionId,pStart,pcSize)    \
13057     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
13058
13059 #define ICorProfilerInfo7_GetEventMask(This,pdwEvents)  \
13060     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
13061
13062 #define ICorProfilerInfo7_GetFunctionFromIP(This,ip,pFunctionId)        \
13063     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
13064
13065 #define ICorProfilerInfo7_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13066     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
13067
13068 #define ICorProfilerInfo7_GetHandleFromThread(This,threadId,phThread)   \
13069     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
13070
13071 #define ICorProfilerInfo7_GetObjectSize(This,objectId,pcSize)   \
13072     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
13073
13074 #define ICorProfilerInfo7_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
13075     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
13076
13077 #define ICorProfilerInfo7_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13078     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
13079
13080 #define ICorProfilerInfo7_GetCurrentThreadID(This,pThreadId)    \
13081     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
13082
13083 #define ICorProfilerInfo7_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
13084     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
13085
13086 #define ICorProfilerInfo7_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
13087     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
13088
13089 #define ICorProfilerInfo7_SetEventMask(This,dwEvents)   \
13090     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
13091
13092 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
13093     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
13094
13095 #define ICorProfilerInfo7_SetFunctionIDMapper(This,pFunc)       \
13096     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
13097
13098 #define ICorProfilerInfo7_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
13099     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
13100
13101 #define ICorProfilerInfo7_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
13102     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
13103
13104 #define ICorProfilerInfo7_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
13105     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
13106
13107 #define ICorProfilerInfo7_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
13108     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
13109
13110 #define ICorProfilerInfo7_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
13111     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
13112
13113 #define ICorProfilerInfo7_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
13114     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
13115
13116 #define ICorProfilerInfo7_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
13117     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
13118
13119 #define ICorProfilerInfo7_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
13120     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
13121
13122 #define ICorProfilerInfo7_SetFunctionReJIT(This,functionId)     \
13123     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
13124
13125 #define ICorProfilerInfo7_ForceGC(This) \
13126     ( (This)->lpVtbl -> ForceGC(This) ) 
13127
13128 #define ICorProfilerInfo7_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
13129     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
13130
13131 #define ICorProfilerInfo7_GetInprocInspectionInterface(This,ppicd)      \
13132     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
13133
13134 #define ICorProfilerInfo7_GetInprocInspectionIThisThread(This,ppicd)    \
13135     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
13136
13137 #define ICorProfilerInfo7_GetThreadContext(This,threadId,pContextId)    \
13138     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
13139
13140 #define ICorProfilerInfo7_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
13141     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
13142
13143 #define ICorProfilerInfo7_EndInprocDebugging(This,dwProfilerContext)    \
13144     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
13145
13146 #define ICorProfilerInfo7_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
13147     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
13148
13149
13150 #define ICorProfilerInfo7_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
13151     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
13152
13153 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
13154     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
13155
13156 #define ICorProfilerInfo7_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
13157     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
13158
13159 #define ICorProfilerInfo7_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
13160     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
13161
13162 #define ICorProfilerInfo7_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
13163     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
13164
13165 #define ICorProfilerInfo7_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
13166     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
13167
13168 #define ICorProfilerInfo7_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
13169     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
13170
13171 #define ICorProfilerInfo7_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
13172     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
13173
13174 #define ICorProfilerInfo7_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
13175     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
13176
13177 #define ICorProfilerInfo7_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
13178     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
13179
13180 #define ICorProfilerInfo7_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
13181     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
13182
13183 #define ICorProfilerInfo7_GetBoxClassLayout(This,classId,pBufferOffset) \
13184     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
13185
13186 #define ICorProfilerInfo7_GetThreadAppDomain(This,threadId,pAppDomainId)        \
13187     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
13188
13189 #define ICorProfilerInfo7_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
13190     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
13191
13192 #define ICorProfilerInfo7_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
13193     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
13194
13195 #define ICorProfilerInfo7_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
13196     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
13197
13198 #define ICorProfilerInfo7_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
13199     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
13200
13201 #define ICorProfilerInfo7_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
13202     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
13203
13204 #define ICorProfilerInfo7_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
13205     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
13206
13207 #define ICorProfilerInfo7_GetObjectGeneration(This,objectId,range)      \
13208     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
13209
13210 #define ICorProfilerInfo7_GetNotifiedExceptionClauseInfo(This,pinfo)    \
13211     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
13212
13213
13214 #define ICorProfilerInfo7_EnumJITedFunctions(This,ppEnum)       \
13215     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
13216
13217 #define ICorProfilerInfo7_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
13218     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
13219
13220 #define ICorProfilerInfo7_SetFunctionIDMapper2(This,pFunc,clientData)   \
13221     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
13222
13223 #define ICorProfilerInfo7_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
13224     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
13225
13226 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
13227     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
13228
13229 #define ICorProfilerInfo7_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
13230     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
13231
13232 #define ICorProfilerInfo7_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
13233     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
13234
13235 #define ICorProfilerInfo7_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
13236     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
13237
13238 #define ICorProfilerInfo7_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
13239     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
13240
13241 #define ICorProfilerInfo7_EnumModules(This,ppEnum)      \
13242     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
13243
13244 #define ICorProfilerInfo7_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
13245     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
13246
13247 #define ICorProfilerInfo7_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
13248     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
13249
13250 #define ICorProfilerInfo7_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
13251     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
13252
13253 #define ICorProfilerInfo7_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
13254     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
13255
13256
13257 #define ICorProfilerInfo7_EnumThreads(This,ppEnum)      \
13258     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
13259
13260 #define ICorProfilerInfo7_InitializeCurrentThread(This) \
13261     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
13262
13263 #define ICorProfilerInfo7_RequestReJIT(This,cFunctions,moduleIds,methodIds)     \
13264     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
13265
13266 #define ICorProfilerInfo7_RequestRevert(This,cFunctions,moduleIds,methodIds,status)     \
13267     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
13268
13269 #define ICorProfilerInfo7_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)        \
13270     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
13271
13272 #define ICorProfilerInfo7_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)      \
13273     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
13274
13275 #define ICorProfilerInfo7_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
13276     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
13277
13278 #define ICorProfilerInfo7_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
13279     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
13280
13281 #define ICorProfilerInfo7_EnumJITedFunctions2(This,ppEnum)      \
13282     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
13283
13284 #define ICorProfilerInfo7_GetObjectSize2(This,objectId,pcSize)  \
13285     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
13286
13287
13288 #define ICorProfilerInfo7_GetEventMask2(This,pdwEventsLow,pdwEventsHigh)        \
13289     ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) 
13290
13291 #define ICorProfilerInfo7_SetEventMask2(This,dwEventsLow,dwEventsHigh)  \
13292     ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) 
13293
13294
13295 #define ICorProfilerInfo7_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum)  \
13296     ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) 
13297
13298
13299 #define ICorProfilerInfo7_ApplyMetaData(This,moduleId)  \
13300     ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) 
13301
13302 #define ICorProfilerInfo7_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes)     \
13303     ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) 
13304
13305 #define ICorProfilerInfo7_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead)      \
13306     ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) 
13307
13308 #endif /* COBJMACROS */
13309
13310
13311 #endif  /* C style interface */
13312
13313
13314
13315
13316 #endif  /* __ICorProfilerInfo7_INTERFACE_DEFINED__ */
13317
13318
13319 #ifndef __ICorProfilerInfo8_INTERFACE_DEFINED__
13320 #define __ICorProfilerInfo8_INTERFACE_DEFINED__
13321
13322 /* interface ICorProfilerInfo8 */
13323 /* [local][unique][uuid][object] */ 
13324
13325
13326 EXTERN_C const IID IID_ICorProfilerInfo8;
13327
13328 #if defined(__cplusplus) && !defined(CINTERFACE)
13329     
13330     MIDL_INTERFACE("C5AC80A6-782E-4716-8044-39598C60CFBF")
13331     ICorProfilerInfo8 : public ICorProfilerInfo7
13332     {
13333     public:
13334         virtual HRESULT STDMETHODCALLTYPE IsFunctionDynamic( 
13335             /* [in] */ FunctionID functionId,
13336             /* [out] */ BOOL *isDynamic) = 0;
13337         
13338         virtual HRESULT STDMETHODCALLTYPE GetFunctionFromIP3( 
13339             /* [in] */ LPCBYTE ip,
13340             /* [out] */ FunctionID *functionId,
13341             /* [out] */ ReJITID *pReJitId) = 0;
13342         
13343         virtual HRESULT STDMETHODCALLTYPE GetDynamicFunctionInfo( 
13344             /* [in] */ FunctionID functionId,
13345             /* [out] */ ModuleID *moduleId,
13346             /* [out] */ PCCOR_SIGNATURE *ppvSig,
13347             /* [out] */ ULONG *pbSig,
13348             /* [in] */ ULONG cchName,
13349             /* [out] */ ULONG *pcchName,
13350             /* [out] */ WCHAR wszName[  ]) = 0;
13351         
13352     };
13353     
13354     
13355 #else   /* C style interface */
13356
13357     typedef struct ICorProfilerInfo8Vtbl
13358     {
13359         BEGIN_INTERFACE
13360         
13361         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
13362             ICorProfilerInfo8 * This,
13363             /* [in] */ REFIID riid,
13364             /* [annotation][iid_is][out] */ 
13365             _COM_Outptr_  void **ppvObject);
13366         
13367         ULONG ( STDMETHODCALLTYPE *AddRef )( 
13368             ICorProfilerInfo8 * This);
13369         
13370         ULONG ( STDMETHODCALLTYPE *Release )( 
13371             ICorProfilerInfo8 * This);
13372         
13373         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
13374             ICorProfilerInfo8 * This,
13375             /* [in] */ ObjectID objectId,
13376             /* [out] */ ClassID *pClassId);
13377         
13378         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
13379             ICorProfilerInfo8 * This,
13380             /* [in] */ ModuleID moduleId,
13381             /* [in] */ mdTypeDef typeDef,
13382             /* [out] */ ClassID *pClassId);
13383         
13384         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
13385             ICorProfilerInfo8 * This,
13386             /* [in] */ FunctionID functionId,
13387             /* [out] */ LPCBYTE *pStart,
13388             /* [out] */ ULONG *pcSize);
13389         
13390         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
13391             ICorProfilerInfo8 * This,
13392             /* [out] */ DWORD *pdwEvents);
13393         
13394         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
13395             ICorProfilerInfo8 * This,
13396             /* [in] */ LPCBYTE ip,
13397             /* [out] */ FunctionID *pFunctionId);
13398         
13399         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
13400             ICorProfilerInfo8 * This,
13401             /* [in] */ ModuleID moduleId,
13402             /* [in] */ mdToken token,
13403             /* [out] */ FunctionID *pFunctionId);
13404         
13405         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
13406             ICorProfilerInfo8 * This,
13407             /* [in] */ ThreadID threadId,
13408             /* [out] */ HANDLE *phThread);
13409         
13410         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
13411             ICorProfilerInfo8 * This,
13412             /* [in] */ ObjectID objectId,
13413             /* [out] */ ULONG *pcSize);
13414         
13415         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
13416             ICorProfilerInfo8 * This,
13417             /* [in] */ ClassID classId,
13418             /* [out] */ CorElementType *pBaseElemType,
13419             /* [out] */ ClassID *pBaseClassId,
13420             /* [out] */ ULONG *pcRank);
13421         
13422         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
13423             ICorProfilerInfo8 * This,
13424             /* [in] */ ThreadID threadId,
13425             /* [out] */ DWORD *pdwWin32ThreadId);
13426         
13427         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
13428             ICorProfilerInfo8 * This,
13429             /* [out] */ ThreadID *pThreadId);
13430         
13431         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
13432             ICorProfilerInfo8 * This,
13433             /* [in] */ ClassID classId,
13434             /* [out] */ ModuleID *pModuleId,
13435             /* [out] */ mdTypeDef *pTypeDefToken);
13436         
13437         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
13438             ICorProfilerInfo8 * This,
13439             /* [in] */ FunctionID functionId,
13440             /* [out] */ ClassID *pClassId,
13441             /* [out] */ ModuleID *pModuleId,
13442             /* [out] */ mdToken *pToken);
13443         
13444         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
13445             ICorProfilerInfo8 * This,
13446             /* [in] */ DWORD dwEvents);
13447         
13448         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
13449             ICorProfilerInfo8 * This,
13450             /* [in] */ FunctionEnter *pFuncEnter,
13451             /* [in] */ FunctionLeave *pFuncLeave,
13452             /* [in] */ FunctionTailcall *pFuncTailcall);
13453         
13454         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
13455             ICorProfilerInfo8 * This,
13456             /* [in] */ FunctionIDMapper *pFunc);
13457         
13458         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
13459             ICorProfilerInfo8 * This,
13460             /* [in] */ FunctionID functionId,
13461             /* [in] */ REFIID riid,
13462             /* [out] */ IUnknown **ppImport,
13463             /* [out] */ mdToken *pToken);
13464         
13465         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
13466             ICorProfilerInfo8 * This,
13467             /* [in] */ ModuleID moduleId,
13468             /* [out] */ LPCBYTE *ppBaseLoadAddress,
13469             /* [in] */ ULONG cchName,
13470             /* [out] */ ULONG *pcchName,
13471             /* [annotation][out] */ 
13472             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
13473             /* [out] */ AssemblyID *pAssemblyId);
13474         
13475         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
13476             ICorProfilerInfo8 * This,
13477             /* [in] */ ModuleID moduleId,
13478             /* [in] */ DWORD dwOpenFlags,
13479             /* [in] */ REFIID riid,
13480             /* [out] */ IUnknown **ppOut);
13481         
13482         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
13483             ICorProfilerInfo8 * This,
13484             /* [in] */ ModuleID moduleId,
13485             /* [in] */ mdMethodDef methodId,
13486             /* [out] */ LPCBYTE *ppMethodHeader,
13487             /* [out] */ ULONG *pcbMethodSize);
13488         
13489         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
13490             ICorProfilerInfo8 * This,
13491             /* [in] */ ModuleID moduleId,
13492             /* [out] */ IMethodMalloc **ppMalloc);
13493         
13494         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
13495             ICorProfilerInfo8 * This,
13496             /* [in] */ ModuleID moduleId,
13497             /* [in] */ mdMethodDef methodid,
13498             /* [in] */ LPCBYTE pbNewILMethodHeader);
13499         
13500         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
13501             ICorProfilerInfo8 * This,
13502             /* [in] */ AppDomainID appDomainId,
13503             /* [in] */ ULONG cchName,
13504             /* [out] */ ULONG *pcchName,
13505             /* [annotation][out] */ 
13506             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
13507             /* [out] */ ProcessID *pProcessId);
13508         
13509         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
13510             ICorProfilerInfo8 * This,
13511             /* [in] */ AssemblyID assemblyId,
13512             /* [in] */ ULONG cchName,
13513             /* [out] */ ULONG *pcchName,
13514             /* [annotation][out] */ 
13515             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
13516             /* [out] */ AppDomainID *pAppDomainId,
13517             /* [out] */ ModuleID *pModuleId);
13518         
13519         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
13520             ICorProfilerInfo8 * This,
13521             /* [in] */ FunctionID functionId);
13522         
13523         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
13524             ICorProfilerInfo8 * This);
13525         
13526         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
13527             ICorProfilerInfo8 * This,
13528             /* [in] */ FunctionID functionId,
13529             /* [in] */ BOOL fStartJit,
13530             /* [in] */ ULONG cILMapEntries,
13531             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
13532         
13533         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
13534             ICorProfilerInfo8 * This,
13535             /* [out] */ IUnknown **ppicd);
13536         
13537         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
13538             ICorProfilerInfo8 * This,
13539             /* [out] */ IUnknown **ppicd);
13540         
13541         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
13542             ICorProfilerInfo8 * This,
13543             /* [in] */ ThreadID threadId,
13544             /* [out] */ ContextID *pContextId);
13545         
13546         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
13547             ICorProfilerInfo8 * This,
13548             /* [in] */ BOOL fThisThreadOnly,
13549             /* [out] */ DWORD *pdwProfilerContext);
13550         
13551         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
13552             ICorProfilerInfo8 * This,
13553             /* [in] */ DWORD dwProfilerContext);
13554         
13555         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
13556             ICorProfilerInfo8 * This,
13557             /* [in] */ FunctionID functionId,
13558             /* [in] */ ULONG32 cMap,
13559             /* [out] */ ULONG32 *pcMap,
13560             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
13561         
13562         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
13563             ICorProfilerInfo8 * This,
13564             /* [in] */ ThreadID thread,
13565             /* [in] */ StackSnapshotCallback *callback,
13566             /* [in] */ ULONG32 infoFlags,
13567             /* [in] */ void *clientData,
13568             /* [size_is][in] */ BYTE context[  ],
13569             /* [in] */ ULONG32 contextSize);
13570         
13571         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
13572             ICorProfilerInfo8 * This,
13573             /* [in] */ FunctionEnter2 *pFuncEnter,
13574             /* [in] */ FunctionLeave2 *pFuncLeave,
13575             /* [in] */ FunctionTailcall2 *pFuncTailcall);
13576         
13577         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
13578             ICorProfilerInfo8 * This,
13579             /* [in] */ FunctionID funcId,
13580             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
13581             /* [out] */ ClassID *pClassId,
13582             /* [out] */ ModuleID *pModuleId,
13583             /* [out] */ mdToken *pToken,
13584             /* [in] */ ULONG32 cTypeArgs,
13585             /* [out] */ ULONG32 *pcTypeArgs,
13586             /* [out] */ ClassID typeArgs[  ]);
13587         
13588         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
13589             ICorProfilerInfo8 * This,
13590             /* [out] */ ULONG *pBufferLengthOffset,
13591             /* [out] */ ULONG *pStringLengthOffset,
13592             /* [out] */ ULONG *pBufferOffset);
13593         
13594         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
13595             ICorProfilerInfo8 * This,
13596             /* [in] */ ClassID classID,
13597             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
13598             /* [in] */ ULONG cFieldOffset,
13599             /* [out] */ ULONG *pcFieldOffset,
13600             /* [out] */ ULONG *pulClassSize);
13601         
13602         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
13603             ICorProfilerInfo8 * This,
13604             /* [in] */ ClassID classId,
13605             /* [out] */ ModuleID *pModuleId,
13606             /* [out] */ mdTypeDef *pTypeDefToken,
13607             /* [out] */ ClassID *pParentClassId,
13608             /* [in] */ ULONG32 cNumTypeArgs,
13609             /* [out] */ ULONG32 *pcNumTypeArgs,
13610             /* [out] */ ClassID typeArgs[  ]);
13611         
13612         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
13613             ICorProfilerInfo8 * This,
13614             /* [in] */ FunctionID functionID,
13615             /* [in] */ ULONG32 cCodeInfos,
13616             /* [out] */ ULONG32 *pcCodeInfos,
13617             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
13618         
13619         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
13620             ICorProfilerInfo8 * This,
13621             /* [in] */ ModuleID moduleID,
13622             /* [in] */ mdTypeDef typeDef,
13623             /* [in] */ ULONG32 cTypeArgs,
13624             /* [size_is][in] */ ClassID typeArgs[  ],
13625             /* [out] */ ClassID *pClassID);
13626         
13627         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
13628             ICorProfilerInfo8 * This,
13629             /* [in] */ ModuleID moduleID,
13630             /* [in] */ mdMethodDef funcDef,
13631             /* [in] */ ClassID classId,
13632             /* [in] */ ULONG32 cTypeArgs,
13633             /* [size_is][in] */ ClassID typeArgs[  ],
13634             /* [out] */ FunctionID *pFunctionID);
13635         
13636         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
13637             ICorProfilerInfo8 * This,
13638             /* [in] */ ModuleID moduleID,
13639             /* [out] */ ICorProfilerObjectEnum **ppEnum);
13640         
13641         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
13642             ICorProfilerInfo8 * This,
13643             /* [in] */ ObjectID objectId,
13644             /* [in] */ ULONG32 cDimensions,
13645             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
13646             /* [size_is][out] */ int pDimensionLowerBounds[  ],
13647             /* [out] */ BYTE **ppData);
13648         
13649         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
13650             ICorProfilerInfo8 * This,
13651             /* [in] */ ClassID classId,
13652             /* [out] */ ULONG32 *pBufferOffset);
13653         
13654         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
13655             ICorProfilerInfo8 * This,
13656             /* [in] */ ThreadID threadId,
13657             /* [out] */ AppDomainID *pAppDomainId);
13658         
13659         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
13660             ICorProfilerInfo8 * This,
13661             /* [in] */ ClassID classId,
13662             /* [in] */ mdFieldDef fieldToken,
13663             /* [out] */ void **ppAddress);
13664         
13665         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
13666             ICorProfilerInfo8 * This,
13667             /* [in] */ ClassID classId,
13668             /* [in] */ mdFieldDef fieldToken,
13669             /* [in] */ AppDomainID appDomainId,
13670             /* [out] */ void **ppAddress);
13671         
13672         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
13673             ICorProfilerInfo8 * This,
13674             /* [in] */ ClassID classId,
13675             /* [in] */ mdFieldDef fieldToken,
13676             /* [in] */ ThreadID threadId,
13677             /* [out] */ void **ppAddress);
13678         
13679         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
13680             ICorProfilerInfo8 * This,
13681             /* [in] */ ClassID classId,
13682             /* [in] */ mdFieldDef fieldToken,
13683             /* [in] */ ContextID contextId,
13684             /* [out] */ void **ppAddress);
13685         
13686         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
13687             ICorProfilerInfo8 * This,
13688             /* [in] */ ClassID classId,
13689             /* [in] */ mdFieldDef fieldToken,
13690             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
13691         
13692         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
13693             ICorProfilerInfo8 * This,
13694             /* [in] */ ULONG cObjectRanges,
13695             /* [out] */ ULONG *pcObjectRanges,
13696             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
13697         
13698         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
13699             ICorProfilerInfo8 * This,
13700             /* [in] */ ObjectID objectId,
13701             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
13702         
13703         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
13704             ICorProfilerInfo8 * This,
13705             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
13706         
13707         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
13708             ICorProfilerInfo8 * This,
13709             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13710         
13711         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
13712             ICorProfilerInfo8 * This,
13713             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
13714         
13715         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
13716             ICorProfilerInfo8 * This,
13717             /* [in] */ FunctionIDMapper2 *pFunc,
13718             /* [in] */ void *clientData);
13719         
13720         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
13721             ICorProfilerInfo8 * This,
13722             /* [out] */ ULONG *pStringLengthOffset,
13723             /* [out] */ ULONG *pBufferOffset);
13724         
13725         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
13726             ICorProfilerInfo8 * This,
13727             /* [in] */ FunctionEnter3 *pFuncEnter3,
13728             /* [in] */ FunctionLeave3 *pFuncLeave3,
13729             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
13730         
13731         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
13732             ICorProfilerInfo8 * This,
13733             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
13734             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
13735             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
13736         
13737         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
13738             ICorProfilerInfo8 * This,
13739             /* [in] */ FunctionID functionId,
13740             /* [in] */ COR_PRF_ELT_INFO eltInfo,
13741             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13742             /* [out][in] */ ULONG *pcbArgumentInfo,
13743             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
13744         
13745         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
13746             ICorProfilerInfo8 * This,
13747             /* [in] */ FunctionID functionId,
13748             /* [in] */ COR_PRF_ELT_INFO eltInfo,
13749             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
13750             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
13751         
13752         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
13753             ICorProfilerInfo8 * This,
13754             /* [in] */ FunctionID functionId,
13755             /* [in] */ COR_PRF_ELT_INFO eltInfo,
13756             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
13757         
13758         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
13759             ICorProfilerInfo8 * This,
13760             /* [out] */ ICorProfilerModuleEnum **ppEnum);
13761         
13762         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
13763             ICorProfilerInfo8 * This,
13764             /* [out] */ USHORT *pClrInstanceId,
13765             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
13766             /* [out] */ USHORT *pMajorVersion,
13767             /* [out] */ USHORT *pMinorVersion,
13768             /* [out] */ USHORT *pBuildNumber,
13769             /* [out] */ USHORT *pQFEVersion,
13770             /* [in] */ ULONG cchVersionString,
13771             /* [out] */ ULONG *pcchVersionString,
13772             /* [annotation][out] */ 
13773             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
13774         
13775         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
13776             ICorProfilerInfo8 * This,
13777             /* [in] */ ClassID classId,
13778             /* [in] */ mdFieldDef fieldToken,
13779             /* [in] */ AppDomainID appDomainId,
13780             /* [in] */ ThreadID threadId,
13781             /* [out] */ void **ppAddress);
13782         
13783         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
13784             ICorProfilerInfo8 * This,
13785             /* [in] */ ModuleID moduleId,
13786             /* [in] */ ULONG32 cAppDomainIds,
13787             /* [out] */ ULONG32 *pcAppDomainIds,
13788             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
13789         
13790         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
13791             ICorProfilerInfo8 * This,
13792             /* [in] */ ModuleID moduleId,
13793             /* [out] */ LPCBYTE *ppBaseLoadAddress,
13794             /* [in] */ ULONG cchName,
13795             /* [out] */ ULONG *pcchName,
13796             /* [annotation][out] */ 
13797             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
13798             /* [out] */ AssemblyID *pAssemblyId,
13799             /* [out] */ DWORD *pdwModuleFlags);
13800         
13801         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
13802             ICorProfilerInfo8 * This,
13803             /* [out] */ ICorProfilerThreadEnum **ppEnum);
13804         
13805         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
13806             ICorProfilerInfo8 * This);
13807         
13808         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
13809             ICorProfilerInfo8 * This,
13810             /* [in] */ ULONG cFunctions,
13811             /* [size_is][in] */ ModuleID moduleIds[  ],
13812             /* [size_is][in] */ mdMethodDef methodIds[  ]);
13813         
13814         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
13815             ICorProfilerInfo8 * This,
13816             /* [in] */ ULONG cFunctions,
13817             /* [size_is][in] */ ModuleID moduleIds[  ],
13818             /* [size_is][in] */ mdMethodDef methodIds[  ],
13819             /* [size_is][out] */ HRESULT status[  ]);
13820         
13821         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
13822             ICorProfilerInfo8 * This,
13823             /* [in] */ FunctionID functionID,
13824             /* [in] */ ReJITID reJitId,
13825             /* [in] */ ULONG32 cCodeInfos,
13826             /* [out] */ ULONG32 *pcCodeInfos,
13827             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
13828         
13829         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
13830             ICorProfilerInfo8 * This,
13831             /* [in] */ LPCBYTE ip,
13832             /* [out] */ FunctionID *pFunctionId,
13833             /* [out] */ ReJITID *pReJitId);
13834         
13835         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
13836             ICorProfilerInfo8 * This,
13837             /* [in] */ FunctionID functionId,
13838             /* [in] */ ULONG cReJitIds,
13839             /* [out] */ ULONG *pcReJitIds,
13840             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
13841         
13842         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
13843             ICorProfilerInfo8 * This,
13844             /* [in] */ FunctionID functionId,
13845             /* [in] */ ReJITID reJitId,
13846             /* [in] */ ULONG32 cMap,
13847             /* [out] */ ULONG32 *pcMap,
13848             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
13849         
13850         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
13851             ICorProfilerInfo8 * This,
13852             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
13853         
13854         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
13855             ICorProfilerInfo8 * This,
13856             /* [in] */ ObjectID objectId,
13857             /* [out] */ SIZE_T *pcSize);
13858         
13859         HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( 
13860             ICorProfilerInfo8 * This,
13861             /* [out] */ DWORD *pdwEventsLow,
13862             /* [out] */ DWORD *pdwEventsHigh);
13863         
13864         HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( 
13865             ICorProfilerInfo8 * This,
13866             /* [in] */ DWORD dwEventsLow,
13867             /* [in] */ DWORD dwEventsHigh);
13868         
13869         HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )( 
13870             ICorProfilerInfo8 * This,
13871             /* [in] */ ModuleID inlinersModuleId,
13872             /* [in] */ ModuleID inlineeModuleId,
13873             /* [in] */ mdMethodDef inlineeMethodId,
13874             /* [out] */ BOOL *incompleteData,
13875             /* [out] */ ICorProfilerMethodEnum **ppEnum);
13876         
13877         HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )( 
13878             ICorProfilerInfo8 * This,
13879             /* [in] */ ModuleID moduleId);
13880         
13881         HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )( 
13882             ICorProfilerInfo8 * This,
13883             /* [in] */ ModuleID moduleId,
13884             /* [out] */ DWORD *pCountSymbolBytes);
13885         
13886         HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )( 
13887             ICorProfilerInfo8 * This,
13888             /* [in] */ ModuleID moduleId,
13889             /* [in] */ DWORD symbolsReadOffset,
13890             /* [out] */ BYTE *pSymbolBytes,
13891             /* [in] */ DWORD countSymbolBytes,
13892             /* [out] */ DWORD *pCountSymbolBytesRead);
13893         
13894         HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )( 
13895             ICorProfilerInfo8 * This,
13896             /* [in] */ FunctionID functionId,
13897             /* [out] */ BOOL *isDynamic);
13898         
13899         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )( 
13900             ICorProfilerInfo8 * This,
13901             /* [in] */ LPCBYTE ip,
13902             /* [out] */ FunctionID *functionId,
13903             /* [out] */ ReJITID *pReJitId);
13904         
13905         HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )( 
13906             ICorProfilerInfo8 * This,
13907             /* [in] */ FunctionID functionId,
13908             /* [out] */ ModuleID *moduleId,
13909             /* [out] */ PCCOR_SIGNATURE *ppvSig,
13910             /* [out] */ ULONG *pbSig,
13911             /* [in] */ ULONG cchName,
13912             /* [out] */ ULONG *pcchName,
13913             /* [out] */ WCHAR wszName[  ]);
13914         
13915         END_INTERFACE
13916     } ICorProfilerInfo8Vtbl;
13917
13918     interface ICorProfilerInfo8
13919     {
13920         CONST_VTBL struct ICorProfilerInfo8Vtbl *lpVtbl;
13921     };
13922
13923     
13924
13925 #ifdef COBJMACROS
13926
13927
13928 #define ICorProfilerInfo8_QueryInterface(This,riid,ppvObject)   \
13929     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
13930
13931 #define ICorProfilerInfo8_AddRef(This)  \
13932     ( (This)->lpVtbl -> AddRef(This) ) 
13933
13934 #define ICorProfilerInfo8_Release(This) \
13935     ( (This)->lpVtbl -> Release(This) ) 
13936
13937
13938 #define ICorProfilerInfo8_GetClassFromObject(This,objectId,pClassId)    \
13939     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
13940
13941 #define ICorProfilerInfo8_GetClassFromToken(This,moduleId,typeDef,pClassId)     \
13942     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
13943
13944 #define ICorProfilerInfo8_GetCodeInfo(This,functionId,pStart,pcSize)    \
13945     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
13946
13947 #define ICorProfilerInfo8_GetEventMask(This,pdwEvents)  \
13948     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
13949
13950 #define ICorProfilerInfo8_GetFunctionFromIP(This,ip,pFunctionId)        \
13951     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
13952
13953 #define ICorProfilerInfo8_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
13954     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
13955
13956 #define ICorProfilerInfo8_GetHandleFromThread(This,threadId,phThread)   \
13957     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
13958
13959 #define ICorProfilerInfo8_GetObjectSize(This,objectId,pcSize)   \
13960     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
13961
13962 #define ICorProfilerInfo8_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
13963     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
13964
13965 #define ICorProfilerInfo8_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
13966     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
13967
13968 #define ICorProfilerInfo8_GetCurrentThreadID(This,pThreadId)    \
13969     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
13970
13971 #define ICorProfilerInfo8_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
13972     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
13973
13974 #define ICorProfilerInfo8_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
13975     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
13976
13977 #define ICorProfilerInfo8_SetEventMask(This,dwEvents)   \
13978     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
13979
13980 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
13981     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
13982
13983 #define ICorProfilerInfo8_SetFunctionIDMapper(This,pFunc)       \
13984     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
13985
13986 #define ICorProfilerInfo8_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
13987     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
13988
13989 #define ICorProfilerInfo8_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
13990     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
13991
13992 #define ICorProfilerInfo8_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)       \
13993     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
13994
13995 #define ICorProfilerInfo8_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)        \
13996     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
13997
13998 #define ICorProfilerInfo8_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
13999     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
14000
14001 #define ICorProfilerInfo8_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14002     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
14003
14004 #define ICorProfilerInfo8_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14005     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
14006
14007 #define ICorProfilerInfo8_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)       \
14008     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
14009
14010 #define ICorProfilerInfo8_SetFunctionReJIT(This,functionId)     \
14011     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
14012
14013 #define ICorProfilerInfo8_ForceGC(This) \
14014     ( (This)->lpVtbl -> ForceGC(This) ) 
14015
14016 #define ICorProfilerInfo8_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)      \
14017     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
14018
14019 #define ICorProfilerInfo8_GetInprocInspectionInterface(This,ppicd)      \
14020     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
14021
14022 #define ICorProfilerInfo8_GetInprocInspectionIThisThread(This,ppicd)    \
14023     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
14024
14025 #define ICorProfilerInfo8_GetThreadContext(This,threadId,pContextId)    \
14026     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
14027
14028 #define ICorProfilerInfo8_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14029     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
14030
14031 #define ICorProfilerInfo8_EndInprocDebugging(This,dwProfilerContext)    \
14032     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
14033
14034 #define ICorProfilerInfo8_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
14035     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
14036
14037
14038 #define ICorProfilerInfo8_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)        \
14039     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
14040
14041 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14042     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
14043
14044 #define ICorProfilerInfo8_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)       \
14045     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
14046
14047 #define ICorProfilerInfo8_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
14048     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
14049
14050 #define ICorProfilerInfo8_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize)     \
14051     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
14052
14053 #define ICorProfilerInfo8_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)      \
14054     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
14055
14056 #define ICorProfilerInfo8_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)        \
14057     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
14058
14059 #define ICorProfilerInfo8_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)       \
14060     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
14061
14062 #define ICorProfilerInfo8_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
14063     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
14064
14065 #define ICorProfilerInfo8_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
14066     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
14067
14068 #define ICorProfilerInfo8_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
14069     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
14070
14071 #define ICorProfilerInfo8_GetBoxClassLayout(This,classId,pBufferOffset) \
14072     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
14073
14074 #define ICorProfilerInfo8_GetThreadAppDomain(This,threadId,pAppDomainId)        \
14075     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
14076
14077 #define ICorProfilerInfo8_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)        \
14078     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
14079
14080 #define ICorProfilerInfo8_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)      \
14081     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
14082
14083 #define ICorProfilerInfo8_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
14084     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
14085
14086 #define ICorProfilerInfo8_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
14087     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
14088
14089 #define ICorProfilerInfo8_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)        \
14090     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
14091
14092 #define ICorProfilerInfo8_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
14093     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
14094
14095 #define ICorProfilerInfo8_GetObjectGeneration(This,objectId,range)      \
14096     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
14097
14098 #define ICorProfilerInfo8_GetNotifiedExceptionClauseInfo(This,pinfo)    \
14099     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
14100
14101
14102 #define ICorProfilerInfo8_EnumJITedFunctions(This,ppEnum)       \
14103     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
14104
14105 #define ICorProfilerInfo8_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
14106     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
14107
14108 #define ICorProfilerInfo8_SetFunctionIDMapper2(This,pFunc,clientData)   \
14109     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
14110
14111 #define ICorProfilerInfo8_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)      \
14112     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
14113
14114 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)      \
14115     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
14116
14117 #define ICorProfilerInfo8_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)      \
14118     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
14119
14120 #define ICorProfilerInfo8_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)       \
14121     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
14122
14123 #define ICorProfilerInfo8_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)        \
14124     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
14125
14126 #define ICorProfilerInfo8_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
14127     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
14128
14129 #define ICorProfilerInfo8_EnumModules(This,ppEnum)      \
14130     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
14131
14132 #define ICorProfilerInfo8_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)       \
14133     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
14134
14135 #define ICorProfilerInfo8_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)       \
14136     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
14137
14138 #define ICorProfilerInfo8_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)        \
14139     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
14140
14141 #define ICorProfilerInfo8_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
14142     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
14143
14144
14145 #define ICorProfilerInfo8_EnumThreads(This,ppEnum)      \
14146     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
14147
14148 #define ICorProfilerInfo8_InitializeCurrentThread(This) \
14149     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
14150
14151 #define ICorProfilerInfo8_RequestReJIT(This,cFunctions,moduleIds,methodIds)     \
14152     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
14153
14154 #define ICorProfilerInfo8_RequestRevert(This,cFunctions,moduleIds,methodIds,status)     \
14155     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
14156
14157 #define ICorProfilerInfo8_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)        \
14158     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
14159
14160 #define ICorProfilerInfo8_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)      \
14161     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
14162
14163 #define ICorProfilerInfo8_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
14164     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
14165
14166 #define ICorProfilerInfo8_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
14167     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
14168
14169 #define ICorProfilerInfo8_EnumJITedFunctions2(This,ppEnum)      \
14170     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
14171
14172 #define ICorProfilerInfo8_GetObjectSize2(This,objectId,pcSize)  \
14173     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
14174
14175
14176 #define ICorProfilerInfo8_GetEventMask2(This,pdwEventsLow,pdwEventsHigh)        \
14177     ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) 
14178
14179 #define ICorProfilerInfo8_SetEventMask2(This,dwEventsLow,dwEventsHigh)  \
14180     ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) 
14181
14182
14183 #define ICorProfilerInfo8_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum)  \
14184     ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) 
14185
14186
14187 #define ICorProfilerInfo8_ApplyMetaData(This,moduleId)  \
14188     ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) 
14189
14190 #define ICorProfilerInfo8_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes)     \
14191     ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) 
14192
14193 #define ICorProfilerInfo8_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead)      \
14194     ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) 
14195
14196
14197 #define ICorProfilerInfo8_IsFunctionDynamic(This,functionId,isDynamic)  \
14198     ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) 
14199
14200 #define ICorProfilerInfo8_GetFunctionFromIP3(This,ip,functionId,pReJitId)       \
14201     ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) 
14202
14203 #define ICorProfilerInfo8_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName)        \
14204     ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) 
14205
14206 #endif /* COBJMACROS */
14207
14208
14209 #endif  /* C style interface */
14210
14211
14212
14213
14214 #endif  /* __ICorProfilerInfo8_INTERFACE_DEFINED__ */
14215
14216
14217 #ifndef __ICorProfilerInfo9_INTERFACE_DEFINED__
14218 #define __ICorProfilerInfo9_INTERFACE_DEFINED__
14219
14220 /* interface ICorProfilerInfo9 */
14221 /* [local][unique][uuid][object] */ 
14222
14223
14224 EXTERN_C const IID IID_ICorProfilerInfo9;
14225
14226 #if defined(__cplusplus) && !defined(CINTERFACE)
14227     
14228     MIDL_INTERFACE("008170db-f8cc-4796-9a51-dc8aa0b47012")
14229     ICorProfilerInfo9 : public ICorProfilerInfo8
14230     {
14231     public:
14232         virtual HRESULT STDMETHODCALLTYPE GetNativeCodeStartAddresses( 
14233             FunctionID functionID,
14234             ReJITID reJitId,
14235             ULONG32 cCodeStartAddresses,
14236             ULONG32 *pcCodeStartAddresses,
14237             UINT_PTR codeStartAddresses[  ]) = 0;
14238         
14239         virtual HRESULT STDMETHODCALLTYPE GetILToNativeMapping3( 
14240             UINT_PTR pNativeCodeStartAddress,
14241             ULONG32 cMap,
14242             ULONG32 *pcMap,
14243             COR_DEBUG_IL_TO_NATIVE_MAP map[  ]) = 0;
14244         
14245         virtual HRESULT STDMETHODCALLTYPE GetCodeInfo4( 
14246             UINT_PTR pNativeCodeStartAddress,
14247             ULONG32 cCodeInfos,
14248             ULONG32 *pcCodeInfos,
14249             COR_PRF_CODE_INFO codeInfos[  ]) = 0;
14250         
14251     };
14252     
14253     
14254 #else   /* C style interface */
14255
14256     typedef struct ICorProfilerInfo9Vtbl
14257     {
14258         BEGIN_INTERFACE
14259         
14260         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
14261             ICorProfilerInfo9 * This,
14262             /* [in] */ REFIID riid,
14263             /* [annotation][iid_is][out] */ 
14264             _COM_Outptr_  void **ppvObject);
14265         
14266         ULONG ( STDMETHODCALLTYPE *AddRef )( 
14267             ICorProfilerInfo9 * This);
14268         
14269         ULONG ( STDMETHODCALLTYPE *Release )( 
14270             ICorProfilerInfo9 * This);
14271         
14272         HRESULT ( STDMETHODCALLTYPE *GetClassFromObject )( 
14273             ICorProfilerInfo9 * This,
14274             /* [in] */ ObjectID objectId,
14275             /* [out] */ ClassID *pClassId);
14276         
14277         HRESULT ( STDMETHODCALLTYPE *GetClassFromToken )( 
14278             ICorProfilerInfo9 * This,
14279             /* [in] */ ModuleID moduleId,
14280             /* [in] */ mdTypeDef typeDef,
14281             /* [out] */ ClassID *pClassId);
14282         
14283         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo )( 
14284             ICorProfilerInfo9 * This,
14285             /* [in] */ FunctionID functionId,
14286             /* [out] */ LPCBYTE *pStart,
14287             /* [out] */ ULONG *pcSize);
14288         
14289         HRESULT ( STDMETHODCALLTYPE *GetEventMask )( 
14290             ICorProfilerInfo9 * This,
14291             /* [out] */ DWORD *pdwEvents);
14292         
14293         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP )( 
14294             ICorProfilerInfo9 * This,
14295             /* [in] */ LPCBYTE ip,
14296             /* [out] */ FunctionID *pFunctionId);
14297         
14298         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromToken )( 
14299             ICorProfilerInfo9 * This,
14300             /* [in] */ ModuleID moduleId,
14301             /* [in] */ mdToken token,
14302             /* [out] */ FunctionID *pFunctionId);
14303         
14304         HRESULT ( STDMETHODCALLTYPE *GetHandleFromThread )( 
14305             ICorProfilerInfo9 * This,
14306             /* [in] */ ThreadID threadId,
14307             /* [out] */ HANDLE *phThread);
14308         
14309         HRESULT ( STDMETHODCALLTYPE *GetObjectSize )( 
14310             ICorProfilerInfo9 * This,
14311             /* [in] */ ObjectID objectId,
14312             /* [out] */ ULONG *pcSize);
14313         
14314         HRESULT ( STDMETHODCALLTYPE *IsArrayClass )( 
14315             ICorProfilerInfo9 * This,
14316             /* [in] */ ClassID classId,
14317             /* [out] */ CorElementType *pBaseElemType,
14318             /* [out] */ ClassID *pBaseClassId,
14319             /* [out] */ ULONG *pcRank);
14320         
14321         HRESULT ( STDMETHODCALLTYPE *GetThreadInfo )( 
14322             ICorProfilerInfo9 * This,
14323             /* [in] */ ThreadID threadId,
14324             /* [out] */ DWORD *pdwWin32ThreadId);
14325         
14326         HRESULT ( STDMETHODCALLTYPE *GetCurrentThreadID )( 
14327             ICorProfilerInfo9 * This,
14328             /* [out] */ ThreadID *pThreadId);
14329         
14330         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo )( 
14331             ICorProfilerInfo9 * This,
14332             /* [in] */ ClassID classId,
14333             /* [out] */ ModuleID *pModuleId,
14334             /* [out] */ mdTypeDef *pTypeDefToken);
14335         
14336         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo )( 
14337             ICorProfilerInfo9 * This,
14338             /* [in] */ FunctionID functionId,
14339             /* [out] */ ClassID *pClassId,
14340             /* [out] */ ModuleID *pModuleId,
14341             /* [out] */ mdToken *pToken);
14342         
14343         HRESULT ( STDMETHODCALLTYPE *SetEventMask )( 
14344             ICorProfilerInfo9 * This,
14345             /* [in] */ DWORD dwEvents);
14346         
14347         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks )( 
14348             ICorProfilerInfo9 * This,
14349             /* [in] */ FunctionEnter *pFuncEnter,
14350             /* [in] */ FunctionLeave *pFuncLeave,
14351             /* [in] */ FunctionTailcall *pFuncTailcall);
14352         
14353         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper )( 
14354             ICorProfilerInfo9 * This,
14355             /* [in] */ FunctionIDMapper *pFunc);
14356         
14357         HRESULT ( STDMETHODCALLTYPE *GetTokenAndMetaDataFromFunction )( 
14358             ICorProfilerInfo9 * This,
14359             /* [in] */ FunctionID functionId,
14360             /* [in] */ REFIID riid,
14361             /* [out] */ IUnknown **ppImport,
14362             /* [out] */ mdToken *pToken);
14363         
14364         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo )( 
14365             ICorProfilerInfo9 * This,
14366             /* [in] */ ModuleID moduleId,
14367             /* [out] */ LPCBYTE *ppBaseLoadAddress,
14368             /* [in] */ ULONG cchName,
14369             /* [out] */ ULONG *pcchName,
14370             /* [annotation][out] */ 
14371             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
14372             /* [out] */ AssemblyID *pAssemblyId);
14373         
14374         HRESULT ( STDMETHODCALLTYPE *GetModuleMetaData )( 
14375             ICorProfilerInfo9 * This,
14376             /* [in] */ ModuleID moduleId,
14377             /* [in] */ DWORD dwOpenFlags,
14378             /* [in] */ REFIID riid,
14379             /* [out] */ IUnknown **ppOut);
14380         
14381         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBody )( 
14382             ICorProfilerInfo9 * This,
14383             /* [in] */ ModuleID moduleId,
14384             /* [in] */ mdMethodDef methodId,
14385             /* [out] */ LPCBYTE *ppMethodHeader,
14386             /* [out] */ ULONG *pcbMethodSize);
14387         
14388         HRESULT ( STDMETHODCALLTYPE *GetILFunctionBodyAllocator )( 
14389             ICorProfilerInfo9 * This,
14390             /* [in] */ ModuleID moduleId,
14391             /* [out] */ IMethodMalloc **ppMalloc);
14392         
14393         HRESULT ( STDMETHODCALLTYPE *SetILFunctionBody )( 
14394             ICorProfilerInfo9 * This,
14395             /* [in] */ ModuleID moduleId,
14396             /* [in] */ mdMethodDef methodid,
14397             /* [in] */ LPCBYTE pbNewILMethodHeader);
14398         
14399         HRESULT ( STDMETHODCALLTYPE *GetAppDomainInfo )( 
14400             ICorProfilerInfo9 * This,
14401             /* [in] */ AppDomainID appDomainId,
14402             /* [in] */ ULONG cchName,
14403             /* [out] */ ULONG *pcchName,
14404             /* [annotation][out] */ 
14405             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
14406             /* [out] */ ProcessID *pProcessId);
14407         
14408         HRESULT ( STDMETHODCALLTYPE *GetAssemblyInfo )( 
14409             ICorProfilerInfo9 * This,
14410             /* [in] */ AssemblyID assemblyId,
14411             /* [in] */ ULONG cchName,
14412             /* [out] */ ULONG *pcchName,
14413             /* [annotation][out] */ 
14414             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
14415             /* [out] */ AppDomainID *pAppDomainId,
14416             /* [out] */ ModuleID *pModuleId);
14417         
14418         HRESULT ( STDMETHODCALLTYPE *SetFunctionReJIT )( 
14419             ICorProfilerInfo9 * This,
14420             /* [in] */ FunctionID functionId);
14421         
14422         HRESULT ( STDMETHODCALLTYPE *ForceGC )( 
14423             ICorProfilerInfo9 * This);
14424         
14425         HRESULT ( STDMETHODCALLTYPE *SetILInstrumentedCodeMap )( 
14426             ICorProfilerInfo9 * This,
14427             /* [in] */ FunctionID functionId,
14428             /* [in] */ BOOL fStartJit,
14429             /* [in] */ ULONG cILMapEntries,
14430             /* [size_is][in] */ COR_IL_MAP rgILMapEntries[  ]);
14431         
14432         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionInterface )( 
14433             ICorProfilerInfo9 * This,
14434             /* [out] */ IUnknown **ppicd);
14435         
14436         HRESULT ( STDMETHODCALLTYPE *GetInprocInspectionIThisThread )( 
14437             ICorProfilerInfo9 * This,
14438             /* [out] */ IUnknown **ppicd);
14439         
14440         HRESULT ( STDMETHODCALLTYPE *GetThreadContext )( 
14441             ICorProfilerInfo9 * This,
14442             /* [in] */ ThreadID threadId,
14443             /* [out] */ ContextID *pContextId);
14444         
14445         HRESULT ( STDMETHODCALLTYPE *BeginInprocDebugging )( 
14446             ICorProfilerInfo9 * This,
14447             /* [in] */ BOOL fThisThreadOnly,
14448             /* [out] */ DWORD *pdwProfilerContext);
14449         
14450         HRESULT ( STDMETHODCALLTYPE *EndInprocDebugging )( 
14451             ICorProfilerInfo9 * This,
14452             /* [in] */ DWORD dwProfilerContext);
14453         
14454         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping )( 
14455             ICorProfilerInfo9 * This,
14456             /* [in] */ FunctionID functionId,
14457             /* [in] */ ULONG32 cMap,
14458             /* [out] */ ULONG32 *pcMap,
14459             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
14460         
14461         HRESULT ( STDMETHODCALLTYPE *DoStackSnapshot )( 
14462             ICorProfilerInfo9 * This,
14463             /* [in] */ ThreadID thread,
14464             /* [in] */ StackSnapshotCallback *callback,
14465             /* [in] */ ULONG32 infoFlags,
14466             /* [in] */ void *clientData,
14467             /* [size_is][in] */ BYTE context[  ],
14468             /* [in] */ ULONG32 contextSize);
14469         
14470         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks2 )( 
14471             ICorProfilerInfo9 * This,
14472             /* [in] */ FunctionEnter2 *pFuncEnter,
14473             /* [in] */ FunctionLeave2 *pFuncLeave,
14474             /* [in] */ FunctionTailcall2 *pFuncTailcall);
14475         
14476         HRESULT ( STDMETHODCALLTYPE *GetFunctionInfo2 )( 
14477             ICorProfilerInfo9 * This,
14478             /* [in] */ FunctionID funcId,
14479             /* [in] */ COR_PRF_FRAME_INFO frameInfo,
14480             /* [out] */ ClassID *pClassId,
14481             /* [out] */ ModuleID *pModuleId,
14482             /* [out] */ mdToken *pToken,
14483             /* [in] */ ULONG32 cTypeArgs,
14484             /* [out] */ ULONG32 *pcTypeArgs,
14485             /* [out] */ ClassID typeArgs[  ]);
14486         
14487         HRESULT ( STDMETHODCALLTYPE *GetStringLayout )( 
14488             ICorProfilerInfo9 * This,
14489             /* [out] */ ULONG *pBufferLengthOffset,
14490             /* [out] */ ULONG *pStringLengthOffset,
14491             /* [out] */ ULONG *pBufferOffset);
14492         
14493         HRESULT ( STDMETHODCALLTYPE *GetClassLayout )( 
14494             ICorProfilerInfo9 * This,
14495             /* [in] */ ClassID classID,
14496             /* [out][in] */ COR_FIELD_OFFSET rFieldOffset[  ],
14497             /* [in] */ ULONG cFieldOffset,
14498             /* [out] */ ULONG *pcFieldOffset,
14499             /* [out] */ ULONG *pulClassSize);
14500         
14501         HRESULT ( STDMETHODCALLTYPE *GetClassIDInfo2 )( 
14502             ICorProfilerInfo9 * This,
14503             /* [in] */ ClassID classId,
14504             /* [out] */ ModuleID *pModuleId,
14505             /* [out] */ mdTypeDef *pTypeDefToken,
14506             /* [out] */ ClassID *pParentClassId,
14507             /* [in] */ ULONG32 cNumTypeArgs,
14508             /* [out] */ ULONG32 *pcNumTypeArgs,
14509             /* [out] */ ClassID typeArgs[  ]);
14510         
14511         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo2 )( 
14512             ICorProfilerInfo9 * This,
14513             /* [in] */ FunctionID functionID,
14514             /* [in] */ ULONG32 cCodeInfos,
14515             /* [out] */ ULONG32 *pcCodeInfos,
14516             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
14517         
14518         HRESULT ( STDMETHODCALLTYPE *GetClassFromTokenAndTypeArgs )( 
14519             ICorProfilerInfo9 * This,
14520             /* [in] */ ModuleID moduleID,
14521             /* [in] */ mdTypeDef typeDef,
14522             /* [in] */ ULONG32 cTypeArgs,
14523             /* [size_is][in] */ ClassID typeArgs[  ],
14524             /* [out] */ ClassID *pClassID);
14525         
14526         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromTokenAndTypeArgs )( 
14527             ICorProfilerInfo9 * This,
14528             /* [in] */ ModuleID moduleID,
14529             /* [in] */ mdMethodDef funcDef,
14530             /* [in] */ ClassID classId,
14531             /* [in] */ ULONG32 cTypeArgs,
14532             /* [size_is][in] */ ClassID typeArgs[  ],
14533             /* [out] */ FunctionID *pFunctionID);
14534         
14535         HRESULT ( STDMETHODCALLTYPE *EnumModuleFrozenObjects )( 
14536             ICorProfilerInfo9 * This,
14537             /* [in] */ ModuleID moduleID,
14538             /* [out] */ ICorProfilerObjectEnum **ppEnum);
14539         
14540         HRESULT ( STDMETHODCALLTYPE *GetArrayObjectInfo )( 
14541             ICorProfilerInfo9 * This,
14542             /* [in] */ ObjectID objectId,
14543             /* [in] */ ULONG32 cDimensions,
14544             /* [size_is][out] */ ULONG32 pDimensionSizes[  ],
14545             /* [size_is][out] */ int pDimensionLowerBounds[  ],
14546             /* [out] */ BYTE **ppData);
14547         
14548         HRESULT ( STDMETHODCALLTYPE *GetBoxClassLayout )( 
14549             ICorProfilerInfo9 * This,
14550             /* [in] */ ClassID classId,
14551             /* [out] */ ULONG32 *pBufferOffset);
14552         
14553         HRESULT ( STDMETHODCALLTYPE *GetThreadAppDomain )( 
14554             ICorProfilerInfo9 * This,
14555             /* [in] */ ThreadID threadId,
14556             /* [out] */ AppDomainID *pAppDomainId);
14557         
14558         HRESULT ( STDMETHODCALLTYPE *GetRVAStaticAddress )( 
14559             ICorProfilerInfo9 * This,
14560             /* [in] */ ClassID classId,
14561             /* [in] */ mdFieldDef fieldToken,
14562             /* [out] */ void **ppAddress);
14563         
14564         HRESULT ( STDMETHODCALLTYPE *GetAppDomainStaticAddress )( 
14565             ICorProfilerInfo9 * This,
14566             /* [in] */ ClassID classId,
14567             /* [in] */ mdFieldDef fieldToken,
14568             /* [in] */ AppDomainID appDomainId,
14569             /* [out] */ void **ppAddress);
14570         
14571         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress )( 
14572             ICorProfilerInfo9 * This,
14573             /* [in] */ ClassID classId,
14574             /* [in] */ mdFieldDef fieldToken,
14575             /* [in] */ ThreadID threadId,
14576             /* [out] */ void **ppAddress);
14577         
14578         HRESULT ( STDMETHODCALLTYPE *GetContextStaticAddress )( 
14579             ICorProfilerInfo9 * This,
14580             /* [in] */ ClassID classId,
14581             /* [in] */ mdFieldDef fieldToken,
14582             /* [in] */ ContextID contextId,
14583             /* [out] */ void **ppAddress);
14584         
14585         HRESULT ( STDMETHODCALLTYPE *GetStaticFieldInfo )( 
14586             ICorProfilerInfo9 * This,
14587             /* [in] */ ClassID classId,
14588             /* [in] */ mdFieldDef fieldToken,
14589             /* [out] */ COR_PRF_STATIC_TYPE *pFieldInfo);
14590         
14591         HRESULT ( STDMETHODCALLTYPE *GetGenerationBounds )( 
14592             ICorProfilerInfo9 * This,
14593             /* [in] */ ULONG cObjectRanges,
14594             /* [out] */ ULONG *pcObjectRanges,
14595             /* [length_is][size_is][out] */ COR_PRF_GC_GENERATION_RANGE ranges[  ]);
14596         
14597         HRESULT ( STDMETHODCALLTYPE *GetObjectGeneration )( 
14598             ICorProfilerInfo9 * This,
14599             /* [in] */ ObjectID objectId,
14600             /* [out] */ COR_PRF_GC_GENERATION_RANGE *range);
14601         
14602         HRESULT ( STDMETHODCALLTYPE *GetNotifiedExceptionClauseInfo )( 
14603             ICorProfilerInfo9 * This,
14604             /* [out] */ COR_PRF_EX_CLAUSE_INFO *pinfo);
14605         
14606         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions )( 
14607             ICorProfilerInfo9 * This,
14608             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14609         
14610         HRESULT ( STDMETHODCALLTYPE *RequestProfilerDetach )( 
14611             ICorProfilerInfo9 * This,
14612             /* [in] */ DWORD dwExpectedCompletionMilliseconds);
14613         
14614         HRESULT ( STDMETHODCALLTYPE *SetFunctionIDMapper2 )( 
14615             ICorProfilerInfo9 * This,
14616             /* [in] */ FunctionIDMapper2 *pFunc,
14617             /* [in] */ void *clientData);
14618         
14619         HRESULT ( STDMETHODCALLTYPE *GetStringLayout2 )( 
14620             ICorProfilerInfo9 * This,
14621             /* [out] */ ULONG *pStringLengthOffset,
14622             /* [out] */ ULONG *pBufferOffset);
14623         
14624         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3 )( 
14625             ICorProfilerInfo9 * This,
14626             /* [in] */ FunctionEnter3 *pFuncEnter3,
14627             /* [in] */ FunctionLeave3 *pFuncLeave3,
14628             /* [in] */ FunctionTailcall3 *pFuncTailcall3);
14629         
14630         HRESULT ( STDMETHODCALLTYPE *SetEnterLeaveFunctionHooks3WithInfo )( 
14631             ICorProfilerInfo9 * This,
14632             /* [in] */ FunctionEnter3WithInfo *pFuncEnter3WithInfo,
14633             /* [in] */ FunctionLeave3WithInfo *pFuncLeave3WithInfo,
14634             /* [in] */ FunctionTailcall3WithInfo *pFuncTailcall3WithInfo);
14635         
14636         HRESULT ( STDMETHODCALLTYPE *GetFunctionEnter3Info )( 
14637             ICorProfilerInfo9 * This,
14638             /* [in] */ FunctionID functionId,
14639             /* [in] */ COR_PRF_ELT_INFO eltInfo,
14640             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14641             /* [out][in] */ ULONG *pcbArgumentInfo,
14642             /* [size_is][out] */ COR_PRF_FUNCTION_ARGUMENT_INFO *pArgumentInfo);
14643         
14644         HRESULT ( STDMETHODCALLTYPE *GetFunctionLeave3Info )( 
14645             ICorProfilerInfo9 * This,
14646             /* [in] */ FunctionID functionId,
14647             /* [in] */ COR_PRF_ELT_INFO eltInfo,
14648             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo,
14649             /* [out] */ COR_PRF_FUNCTION_ARGUMENT_RANGE *pRetvalRange);
14650         
14651         HRESULT ( STDMETHODCALLTYPE *GetFunctionTailcall3Info )( 
14652             ICorProfilerInfo9 * This,
14653             /* [in] */ FunctionID functionId,
14654             /* [in] */ COR_PRF_ELT_INFO eltInfo,
14655             /* [out] */ COR_PRF_FRAME_INFO *pFrameInfo);
14656         
14657         HRESULT ( STDMETHODCALLTYPE *EnumModules )( 
14658             ICorProfilerInfo9 * This,
14659             /* [out] */ ICorProfilerModuleEnum **ppEnum);
14660         
14661         HRESULT ( STDMETHODCALLTYPE *GetRuntimeInformation )( 
14662             ICorProfilerInfo9 * This,
14663             /* [out] */ USHORT *pClrInstanceId,
14664             /* [out] */ COR_PRF_RUNTIME_TYPE *pRuntimeType,
14665             /* [out] */ USHORT *pMajorVersion,
14666             /* [out] */ USHORT *pMinorVersion,
14667             /* [out] */ USHORT *pBuildNumber,
14668             /* [out] */ USHORT *pQFEVersion,
14669             /* [in] */ ULONG cchVersionString,
14670             /* [out] */ ULONG *pcchVersionString,
14671             /* [annotation][out] */ 
14672             _Out_writes_to_(cchVersionString, *pcchVersionString)  WCHAR szVersionString[  ]);
14673         
14674         HRESULT ( STDMETHODCALLTYPE *GetThreadStaticAddress2 )( 
14675             ICorProfilerInfo9 * This,
14676             /* [in] */ ClassID classId,
14677             /* [in] */ mdFieldDef fieldToken,
14678             /* [in] */ AppDomainID appDomainId,
14679             /* [in] */ ThreadID threadId,
14680             /* [out] */ void **ppAddress);
14681         
14682         HRESULT ( STDMETHODCALLTYPE *GetAppDomainsContainingModule )( 
14683             ICorProfilerInfo9 * This,
14684             /* [in] */ ModuleID moduleId,
14685             /* [in] */ ULONG32 cAppDomainIds,
14686             /* [out] */ ULONG32 *pcAppDomainIds,
14687             /* [length_is][size_is][out] */ AppDomainID appDomainIds[  ]);
14688         
14689         HRESULT ( STDMETHODCALLTYPE *GetModuleInfo2 )( 
14690             ICorProfilerInfo9 * This,
14691             /* [in] */ ModuleID moduleId,
14692             /* [out] */ LPCBYTE *ppBaseLoadAddress,
14693             /* [in] */ ULONG cchName,
14694             /* [out] */ ULONG *pcchName,
14695             /* [annotation][out] */ 
14696             _Out_writes_to_(cchName, *pcchName)  WCHAR szName[  ],
14697             /* [out] */ AssemblyID *pAssemblyId,
14698             /* [out] */ DWORD *pdwModuleFlags);
14699         
14700         HRESULT ( STDMETHODCALLTYPE *EnumThreads )( 
14701             ICorProfilerInfo9 * This,
14702             /* [out] */ ICorProfilerThreadEnum **ppEnum);
14703         
14704         HRESULT ( STDMETHODCALLTYPE *InitializeCurrentThread )( 
14705             ICorProfilerInfo9 * This);
14706         
14707         HRESULT ( STDMETHODCALLTYPE *RequestReJIT )( 
14708             ICorProfilerInfo9 * This,
14709             /* [in] */ ULONG cFunctions,
14710             /* [size_is][in] */ ModuleID moduleIds[  ],
14711             /* [size_is][in] */ mdMethodDef methodIds[  ]);
14712         
14713         HRESULT ( STDMETHODCALLTYPE *RequestRevert )( 
14714             ICorProfilerInfo9 * This,
14715             /* [in] */ ULONG cFunctions,
14716             /* [size_is][in] */ ModuleID moduleIds[  ],
14717             /* [size_is][in] */ mdMethodDef methodIds[  ],
14718             /* [size_is][out] */ HRESULT status[  ]);
14719         
14720         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo3 )( 
14721             ICorProfilerInfo9 * This,
14722             /* [in] */ FunctionID functionID,
14723             /* [in] */ ReJITID reJitId,
14724             /* [in] */ ULONG32 cCodeInfos,
14725             /* [out] */ ULONG32 *pcCodeInfos,
14726             /* [length_is][size_is][out] */ COR_PRF_CODE_INFO codeInfos[  ]);
14727         
14728         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP2 )( 
14729             ICorProfilerInfo9 * This,
14730             /* [in] */ LPCBYTE ip,
14731             /* [out] */ FunctionID *pFunctionId,
14732             /* [out] */ ReJITID *pReJitId);
14733         
14734         HRESULT ( STDMETHODCALLTYPE *GetReJITIDs )( 
14735             ICorProfilerInfo9 * This,
14736             /* [in] */ FunctionID functionId,
14737             /* [in] */ ULONG cReJitIds,
14738             /* [out] */ ULONG *pcReJitIds,
14739             /* [length_is][size_is][out] */ ReJITID reJitIds[  ]);
14740         
14741         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping2 )( 
14742             ICorProfilerInfo9 * This,
14743             /* [in] */ FunctionID functionId,
14744             /* [in] */ ReJITID reJitId,
14745             /* [in] */ ULONG32 cMap,
14746             /* [out] */ ULONG32 *pcMap,
14747             /* [length_is][size_is][out] */ COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
14748         
14749         HRESULT ( STDMETHODCALLTYPE *EnumJITedFunctions2 )( 
14750             ICorProfilerInfo9 * This,
14751             /* [out] */ ICorProfilerFunctionEnum **ppEnum);
14752         
14753         HRESULT ( STDMETHODCALLTYPE *GetObjectSize2 )( 
14754             ICorProfilerInfo9 * This,
14755             /* [in] */ ObjectID objectId,
14756             /* [out] */ SIZE_T *pcSize);
14757         
14758         HRESULT ( STDMETHODCALLTYPE *GetEventMask2 )( 
14759             ICorProfilerInfo9 * This,
14760             /* [out] */ DWORD *pdwEventsLow,
14761             /* [out] */ DWORD *pdwEventsHigh);
14762         
14763         HRESULT ( STDMETHODCALLTYPE *SetEventMask2 )( 
14764             ICorProfilerInfo9 * This,
14765             /* [in] */ DWORD dwEventsLow,
14766             /* [in] */ DWORD dwEventsHigh);
14767         
14768         HRESULT ( STDMETHODCALLTYPE *EnumNgenModuleMethodsInliningThisMethod )( 
14769             ICorProfilerInfo9 * This,
14770             /* [in] */ ModuleID inlinersModuleId,
14771             /* [in] */ ModuleID inlineeModuleId,
14772             /* [in] */ mdMethodDef inlineeMethodId,
14773             /* [out] */ BOOL *incompleteData,
14774             /* [out] */ ICorProfilerMethodEnum **ppEnum);
14775         
14776         HRESULT ( STDMETHODCALLTYPE *ApplyMetaData )( 
14777             ICorProfilerInfo9 * This,
14778             /* [in] */ ModuleID moduleId);
14779         
14780         HRESULT ( STDMETHODCALLTYPE *GetInMemorySymbolsLength )( 
14781             ICorProfilerInfo9 * This,
14782             /* [in] */ ModuleID moduleId,
14783             /* [out] */ DWORD *pCountSymbolBytes);
14784         
14785         HRESULT ( STDMETHODCALLTYPE *ReadInMemorySymbols )( 
14786             ICorProfilerInfo9 * This,
14787             /* [in] */ ModuleID moduleId,
14788             /* [in] */ DWORD symbolsReadOffset,
14789             /* [out] */ BYTE *pSymbolBytes,
14790             /* [in] */ DWORD countSymbolBytes,
14791             /* [out] */ DWORD *pCountSymbolBytesRead);
14792         
14793         HRESULT ( STDMETHODCALLTYPE *IsFunctionDynamic )( 
14794             ICorProfilerInfo9 * This,
14795             /* [in] */ FunctionID functionId,
14796             /* [out] */ BOOL *isDynamic);
14797         
14798         HRESULT ( STDMETHODCALLTYPE *GetFunctionFromIP3 )( 
14799             ICorProfilerInfo9 * This,
14800             /* [in] */ LPCBYTE ip,
14801             /* [out] */ FunctionID *functionId,
14802             /* [out] */ ReJITID *pReJitId);
14803         
14804         HRESULT ( STDMETHODCALLTYPE *GetDynamicFunctionInfo )( 
14805             ICorProfilerInfo9 * This,
14806             /* [in] */ FunctionID functionId,
14807             /* [out] */ ModuleID *moduleId,
14808             /* [out] */ PCCOR_SIGNATURE *ppvSig,
14809             /* [out] */ ULONG *pbSig,
14810             /* [in] */ ULONG cchName,
14811             /* [out] */ ULONG *pcchName,
14812             /* [out] */ WCHAR wszName[  ]);
14813         
14814         HRESULT ( STDMETHODCALLTYPE *GetNativeCodeStartAddresses )( 
14815             ICorProfilerInfo9 * This,
14816             FunctionID functionID,
14817             ReJITID reJitId,
14818             ULONG32 cCodeStartAddresses,
14819             ULONG32 *pcCodeStartAddresses,
14820             UINT_PTR codeStartAddresses[  ]);
14821         
14822         HRESULT ( STDMETHODCALLTYPE *GetILToNativeMapping3 )( 
14823             ICorProfilerInfo9 * This,
14824             UINT_PTR pNativeCodeStartAddress,
14825             ULONG32 cMap,
14826             ULONG32 *pcMap,
14827             COR_DEBUG_IL_TO_NATIVE_MAP map[  ]);
14828         
14829         HRESULT ( STDMETHODCALLTYPE *GetCodeInfo4 )( 
14830             ICorProfilerInfo9 * This,
14831             UINT_PTR pNativeCodeStartAddress,
14832             ULONG32 cCodeInfos,
14833             ULONG32 *pcCodeInfos,
14834             COR_PRF_CODE_INFO codeInfos[  ]);
14835         
14836         END_INTERFACE
14837     } ICorProfilerInfo9Vtbl;
14838
14839     interface ICorProfilerInfo9
14840     {
14841         CONST_VTBL struct ICorProfilerInfo9Vtbl *lpVtbl;
14842     };
14843
14844     
14845
14846 #ifdef COBJMACROS
14847
14848
14849 #define ICorProfilerInfo9_QueryInterface(This,riid,ppvObject)   \
14850     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
14851
14852 #define ICorProfilerInfo9_AddRef(This)  \
14853     ( (This)->lpVtbl -> AddRef(This) ) 
14854
14855 #define ICorProfilerInfo9_Release(This) \
14856     ( (This)->lpVtbl -> Release(This) ) 
14857
14858
14859 #define ICorProfilerInfo9_GetClassFromObject(This,objectId,pClassId)    \
14860     ( (This)->lpVtbl -> GetClassFromObject(This,objectId,pClassId) ) 
14861
14862 #define ICorProfilerInfo9_GetClassFromToken(This,moduleId,typeDef,pClassId) \
14863     ( (This)->lpVtbl -> GetClassFromToken(This,moduleId,typeDef,pClassId) ) 
14864
14865 #define ICorProfilerInfo9_GetCodeInfo(This,functionId,pStart,pcSize)    \
14866     ( (This)->lpVtbl -> GetCodeInfo(This,functionId,pStart,pcSize) ) 
14867
14868 #define ICorProfilerInfo9_GetEventMask(This,pdwEvents)  \
14869     ( (This)->lpVtbl -> GetEventMask(This,pdwEvents) ) 
14870
14871 #define ICorProfilerInfo9_GetFunctionFromIP(This,ip,pFunctionId)    \
14872     ( (This)->lpVtbl -> GetFunctionFromIP(This,ip,pFunctionId) ) 
14873
14874 #define ICorProfilerInfo9_GetFunctionFromToken(This,moduleId,token,pFunctionId) \
14875     ( (This)->lpVtbl -> GetFunctionFromToken(This,moduleId,token,pFunctionId) ) 
14876
14877 #define ICorProfilerInfo9_GetHandleFromThread(This,threadId,phThread)   \
14878     ( (This)->lpVtbl -> GetHandleFromThread(This,threadId,phThread) ) 
14879
14880 #define ICorProfilerInfo9_GetObjectSize(This,objectId,pcSize)   \
14881     ( (This)->lpVtbl -> GetObjectSize(This,objectId,pcSize) ) 
14882
14883 #define ICorProfilerInfo9_IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank)  \
14884     ( (This)->lpVtbl -> IsArrayClass(This,classId,pBaseElemType,pBaseClassId,pcRank) ) 
14885
14886 #define ICorProfilerInfo9_GetThreadInfo(This,threadId,pdwWin32ThreadId) \
14887     ( (This)->lpVtbl -> GetThreadInfo(This,threadId,pdwWin32ThreadId) ) 
14888
14889 #define ICorProfilerInfo9_GetCurrentThreadID(This,pThreadId)    \
14890     ( (This)->lpVtbl -> GetCurrentThreadID(This,pThreadId) ) 
14891
14892 #define ICorProfilerInfo9_GetClassIDInfo(This,classId,pModuleId,pTypeDefToken)  \
14893     ( (This)->lpVtbl -> GetClassIDInfo(This,classId,pModuleId,pTypeDefToken) ) 
14894
14895 #define ICorProfilerInfo9_GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken)    \
14896     ( (This)->lpVtbl -> GetFunctionInfo(This,functionId,pClassId,pModuleId,pToken) ) 
14897
14898 #define ICorProfilerInfo9_SetEventMask(This,dwEvents)   \
14899     ( (This)->lpVtbl -> SetEventMask(This,dwEvents) ) 
14900
14901 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall)  \
14902     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
14903
14904 #define ICorProfilerInfo9_SetFunctionIDMapper(This,pFunc)   \
14905     ( (This)->lpVtbl -> SetFunctionIDMapper(This,pFunc) ) 
14906
14907 #define ICorProfilerInfo9_GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) \
14908     ( (This)->lpVtbl -> GetTokenAndMetaDataFromFunction(This,functionId,riid,ppImport,pToken) ) 
14909
14910 #define ICorProfilerInfo9_GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId)    \
14911     ( (This)->lpVtbl -> GetModuleInfo(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId) ) 
14912
14913 #define ICorProfilerInfo9_GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut)   \
14914     ( (This)->lpVtbl -> GetModuleMetaData(This,moduleId,dwOpenFlags,riid,ppOut) ) 
14915
14916 #define ICorProfilerInfo9_GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize)    \
14917     ( (This)->lpVtbl -> GetILFunctionBody(This,moduleId,methodId,ppMethodHeader,pcbMethodSize) ) 
14918
14919 #define ICorProfilerInfo9_GetILFunctionBodyAllocator(This,moduleId,ppMalloc)    \
14920     ( (This)->lpVtbl -> GetILFunctionBodyAllocator(This,moduleId,ppMalloc) ) 
14921
14922 #define ICorProfilerInfo9_SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) \
14923     ( (This)->lpVtbl -> SetILFunctionBody(This,moduleId,methodid,pbNewILMethodHeader) ) 
14924
14925 #define ICorProfilerInfo9_GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) \
14926     ( (This)->lpVtbl -> GetAppDomainInfo(This,appDomainId,cchName,pcchName,szName,pProcessId) ) 
14927
14928 #define ICorProfilerInfo9_GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId)   \
14929     ( (This)->lpVtbl -> GetAssemblyInfo(This,assemblyId,cchName,pcchName,szName,pAppDomainId,pModuleId) ) 
14930
14931 #define ICorProfilerInfo9_SetFunctionReJIT(This,functionId) \
14932     ( (This)->lpVtbl -> SetFunctionReJIT(This,functionId) ) 
14933
14934 #define ICorProfilerInfo9_ForceGC(This) \
14935     ( (This)->lpVtbl -> ForceGC(This) ) 
14936
14937 #define ICorProfilerInfo9_SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries)  \
14938     ( (This)->lpVtbl -> SetILInstrumentedCodeMap(This,functionId,fStartJit,cILMapEntries,rgILMapEntries) ) 
14939
14940 #define ICorProfilerInfo9_GetInprocInspectionInterface(This,ppicd)  \
14941     ( (This)->lpVtbl -> GetInprocInspectionInterface(This,ppicd) ) 
14942
14943 #define ICorProfilerInfo9_GetInprocInspectionIThisThread(This,ppicd)    \
14944     ( (This)->lpVtbl -> GetInprocInspectionIThisThread(This,ppicd) ) 
14945
14946 #define ICorProfilerInfo9_GetThreadContext(This,threadId,pContextId)    \
14947     ( (This)->lpVtbl -> GetThreadContext(This,threadId,pContextId) ) 
14948
14949 #define ICorProfilerInfo9_BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) \
14950     ( (This)->lpVtbl -> BeginInprocDebugging(This,fThisThreadOnly,pdwProfilerContext) ) 
14951
14952 #define ICorProfilerInfo9_EndInprocDebugging(This,dwProfilerContext)    \
14953     ( (This)->lpVtbl -> EndInprocDebugging(This,dwProfilerContext) ) 
14954
14955 #define ICorProfilerInfo9_GetILToNativeMapping(This,functionId,cMap,pcMap,map)  \
14956     ( (This)->lpVtbl -> GetILToNativeMapping(This,functionId,cMap,pcMap,map) ) 
14957
14958
14959 #define ICorProfilerInfo9_DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize)    \
14960     ( (This)->lpVtbl -> DoStackSnapshot(This,thread,callback,infoFlags,clientData,context,contextSize) ) 
14961
14962 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) \
14963     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks2(This,pFuncEnter,pFuncLeave,pFuncTailcall) ) 
14964
14965 #define ICorProfilerInfo9_GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs)   \
14966     ( (This)->lpVtbl -> GetFunctionInfo2(This,funcId,frameInfo,pClassId,pModuleId,pToken,cTypeArgs,pcTypeArgs,typeArgs) ) 
14967
14968 #define ICorProfilerInfo9_GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset)   \
14969     ( (This)->lpVtbl -> GetStringLayout(This,pBufferLengthOffset,pStringLengthOffset,pBufferOffset) ) 
14970
14971 #define ICorProfilerInfo9_GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) \
14972     ( (This)->lpVtbl -> GetClassLayout(This,classID,rFieldOffset,cFieldOffset,pcFieldOffset,pulClassSize) ) 
14973
14974 #define ICorProfilerInfo9_GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs)  \
14975     ( (This)->lpVtbl -> GetClassIDInfo2(This,classId,pModuleId,pTypeDefToken,pParentClassId,cNumTypeArgs,pcNumTypeArgs,typeArgs) ) 
14976
14977 #define ICorProfilerInfo9_GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos)    \
14978     ( (This)->lpVtbl -> GetCodeInfo2(This,functionID,cCodeInfos,pcCodeInfos,codeInfos) ) 
14979
14980 #define ICorProfilerInfo9_GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID)   \
14981     ( (This)->lpVtbl -> GetClassFromTokenAndTypeArgs(This,moduleID,typeDef,cTypeArgs,typeArgs,pClassID) ) 
14982
14983 #define ICorProfilerInfo9_GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) \
14984     ( (This)->lpVtbl -> GetFunctionFromTokenAndTypeArgs(This,moduleID,funcDef,classId,cTypeArgs,typeArgs,pFunctionID) ) 
14985
14986 #define ICorProfilerInfo9_EnumModuleFrozenObjects(This,moduleID,ppEnum) \
14987     ( (This)->lpVtbl -> EnumModuleFrozenObjects(This,moduleID,ppEnum) ) 
14988
14989 #define ICorProfilerInfo9_GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData)    \
14990     ( (This)->lpVtbl -> GetArrayObjectInfo(This,objectId,cDimensions,pDimensionSizes,pDimensionLowerBounds,ppData) ) 
14991
14992 #define ICorProfilerInfo9_GetBoxClassLayout(This,classId,pBufferOffset) \
14993     ( (This)->lpVtbl -> GetBoxClassLayout(This,classId,pBufferOffset) ) 
14994
14995 #define ICorProfilerInfo9_GetThreadAppDomain(This,threadId,pAppDomainId)    \
14996     ( (This)->lpVtbl -> GetThreadAppDomain(This,threadId,pAppDomainId) ) 
14997
14998 #define ICorProfilerInfo9_GetRVAStaticAddress(This,classId,fieldToken,ppAddress)    \
14999     ( (This)->lpVtbl -> GetRVAStaticAddress(This,classId,fieldToken,ppAddress) ) 
15000
15001 #define ICorProfilerInfo9_GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress)  \
15002     ( (This)->lpVtbl -> GetAppDomainStaticAddress(This,classId,fieldToken,appDomainId,ppAddress) ) 
15003
15004 #define ICorProfilerInfo9_GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress)    \
15005     ( (This)->lpVtbl -> GetThreadStaticAddress(This,classId,fieldToken,threadId,ppAddress) ) 
15006
15007 #define ICorProfilerInfo9_GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress)  \
15008     ( (This)->lpVtbl -> GetContextStaticAddress(This,classId,fieldToken,contextId,ppAddress) ) 
15009
15010 #define ICorProfilerInfo9_GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo)    \
15011     ( (This)->lpVtbl -> GetStaticFieldInfo(This,classId,fieldToken,pFieldInfo) ) 
15012
15013 #define ICorProfilerInfo9_GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) \
15014     ( (This)->lpVtbl -> GetGenerationBounds(This,cObjectRanges,pcObjectRanges,ranges) ) 
15015
15016 #define ICorProfilerInfo9_GetObjectGeneration(This,objectId,range)  \
15017     ( (This)->lpVtbl -> GetObjectGeneration(This,objectId,range) ) 
15018
15019 #define ICorProfilerInfo9_GetNotifiedExceptionClauseInfo(This,pinfo)    \
15020     ( (This)->lpVtbl -> GetNotifiedExceptionClauseInfo(This,pinfo) ) 
15021
15022
15023 #define ICorProfilerInfo9_EnumJITedFunctions(This,ppEnum)   \
15024     ( (This)->lpVtbl -> EnumJITedFunctions(This,ppEnum) ) 
15025
15026 #define ICorProfilerInfo9_RequestProfilerDetach(This,dwExpectedCompletionMilliseconds)  \
15027     ( (This)->lpVtbl -> RequestProfilerDetach(This,dwExpectedCompletionMilliseconds) ) 
15028
15029 #define ICorProfilerInfo9_SetFunctionIDMapper2(This,pFunc,clientData)   \
15030     ( (This)->lpVtbl -> SetFunctionIDMapper2(This,pFunc,clientData) ) 
15031
15032 #define ICorProfilerInfo9_GetStringLayout2(This,pStringLengthOffset,pBufferOffset)  \
15033     ( (This)->lpVtbl -> GetStringLayout2(This,pStringLengthOffset,pBufferOffset) ) 
15034
15035 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3)  \
15036     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3(This,pFuncEnter3,pFuncLeave3,pFuncTailcall3) ) 
15037
15038 #define ICorProfilerInfo9_SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo)  \
15039     ( (This)->lpVtbl -> SetEnterLeaveFunctionHooks3WithInfo(This,pFuncEnter3WithInfo,pFuncLeave3WithInfo,pFuncTailcall3WithInfo) ) 
15040
15041 #define ICorProfilerInfo9_GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo)   \
15042     ( (This)->lpVtbl -> GetFunctionEnter3Info(This,functionId,eltInfo,pFrameInfo,pcbArgumentInfo,pArgumentInfo) ) 
15043
15044 #define ICorProfilerInfo9_GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange)    \
15045     ( (This)->lpVtbl -> GetFunctionLeave3Info(This,functionId,eltInfo,pFrameInfo,pRetvalRange) ) 
15046
15047 #define ICorProfilerInfo9_GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo)  \
15048     ( (This)->lpVtbl -> GetFunctionTailcall3Info(This,functionId,eltInfo,pFrameInfo) ) 
15049
15050 #define ICorProfilerInfo9_EnumModules(This,ppEnum)  \
15051     ( (This)->lpVtbl -> EnumModules(This,ppEnum) ) 
15052
15053 #define ICorProfilerInfo9_GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString)   \
15054     ( (This)->lpVtbl -> GetRuntimeInformation(This,pClrInstanceId,pRuntimeType,pMajorVersion,pMinorVersion,pBuildNumber,pQFEVersion,cchVersionString,pcchVersionString,szVersionString) ) 
15055
15056 #define ICorProfilerInfo9_GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress)   \
15057     ( (This)->lpVtbl -> GetThreadStaticAddress2(This,classId,fieldToken,appDomainId,threadId,ppAddress) ) 
15058
15059 #define ICorProfilerInfo9_GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds)    \
15060     ( (This)->lpVtbl -> GetAppDomainsContainingModule(This,moduleId,cAppDomainIds,pcAppDomainIds,appDomainIds) ) 
15061
15062 #define ICorProfilerInfo9_GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags)    \
15063     ( (This)->lpVtbl -> GetModuleInfo2(This,moduleId,ppBaseLoadAddress,cchName,pcchName,szName,pAssemblyId,pdwModuleFlags) ) 
15064
15065
15066 #define ICorProfilerInfo9_EnumThreads(This,ppEnum)  \
15067     ( (This)->lpVtbl -> EnumThreads(This,ppEnum) ) 
15068
15069 #define ICorProfilerInfo9_InitializeCurrentThread(This) \
15070     ( (This)->lpVtbl -> InitializeCurrentThread(This) ) 
15071
15072 #define ICorProfilerInfo9_RequestReJIT(This,cFunctions,moduleIds,methodIds) \
15073     ( (This)->lpVtbl -> RequestReJIT(This,cFunctions,moduleIds,methodIds) ) 
15074
15075 #define ICorProfilerInfo9_RequestRevert(This,cFunctions,moduleIds,methodIds,status) \
15076     ( (This)->lpVtbl -> RequestRevert(This,cFunctions,moduleIds,methodIds,status) ) 
15077
15078 #define ICorProfilerInfo9_GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos)    \
15079     ( (This)->lpVtbl -> GetCodeInfo3(This,functionID,reJitId,cCodeInfos,pcCodeInfos,codeInfos) ) 
15080
15081 #define ICorProfilerInfo9_GetFunctionFromIP2(This,ip,pFunctionId,pReJitId)  \
15082     ( (This)->lpVtbl -> GetFunctionFromIP2(This,ip,pFunctionId,pReJitId) ) 
15083
15084 #define ICorProfilerInfo9_GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds)    \
15085     ( (This)->lpVtbl -> GetReJITIDs(This,functionId,cReJitIds,pcReJitIds,reJitIds) ) 
15086
15087 #define ICorProfilerInfo9_GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) \
15088     ( (This)->lpVtbl -> GetILToNativeMapping2(This,functionId,reJitId,cMap,pcMap,map) ) 
15089
15090 #define ICorProfilerInfo9_EnumJITedFunctions2(This,ppEnum)  \
15091     ( (This)->lpVtbl -> EnumJITedFunctions2(This,ppEnum) ) 
15092
15093 #define ICorProfilerInfo9_GetObjectSize2(This,objectId,pcSize)  \
15094     ( (This)->lpVtbl -> GetObjectSize2(This,objectId,pcSize) ) 
15095
15096
15097 #define ICorProfilerInfo9_GetEventMask2(This,pdwEventsLow,pdwEventsHigh)    \
15098     ( (This)->lpVtbl -> GetEventMask2(This,pdwEventsLow,pdwEventsHigh) ) 
15099
15100 #define ICorProfilerInfo9_SetEventMask2(This,dwEventsLow,dwEventsHigh)  \
15101     ( (This)->lpVtbl -> SetEventMask2(This,dwEventsLow,dwEventsHigh) ) 
15102
15103
15104 #define ICorProfilerInfo9_EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum)  \
15105     ( (This)->lpVtbl -> EnumNgenModuleMethodsInliningThisMethod(This,inlinersModuleId,inlineeModuleId,inlineeMethodId,incompleteData,ppEnum) ) 
15106
15107
15108 #define ICorProfilerInfo9_ApplyMetaData(This,moduleId)  \
15109     ( (This)->lpVtbl -> ApplyMetaData(This,moduleId) ) 
15110
15111 #define ICorProfilerInfo9_GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) \
15112     ( (This)->lpVtbl -> GetInMemorySymbolsLength(This,moduleId,pCountSymbolBytes) ) 
15113
15114 #define ICorProfilerInfo9_ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead)  \
15115     ( (This)->lpVtbl -> ReadInMemorySymbols(This,moduleId,symbolsReadOffset,pSymbolBytes,countSymbolBytes,pCountSymbolBytesRead) ) 
15116
15117
15118 #define ICorProfilerInfo9_IsFunctionDynamic(This,functionId,isDynamic)  \
15119     ( (This)->lpVtbl -> IsFunctionDynamic(This,functionId,isDynamic) ) 
15120
15121 #define ICorProfilerInfo9_GetFunctionFromIP3(This,ip,functionId,pReJitId)   \
15122     ( (This)->lpVtbl -> GetFunctionFromIP3(This,ip,functionId,pReJitId) ) 
15123
15124 #define ICorProfilerInfo9_GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName)    \
15125     ( (This)->lpVtbl -> GetDynamicFunctionInfo(This,functionId,moduleId,ppvSig,pbSig,cchName,pcchName,wszName) ) 
15126
15127
15128 #define ICorProfilerInfo9_GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses)  \
15129     ( (This)->lpVtbl -> GetNativeCodeStartAddresses(This,functionID,reJitId,cCodeStartAddresses,pcCodeStartAddresses,codeStartAddresses) ) 
15130
15131 #define ICorProfilerInfo9_GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map)    \
15132     ( (This)->lpVtbl -> GetILToNativeMapping3(This,pNativeCodeStartAddress,cMap,pcMap,map) ) 
15133
15134 #define ICorProfilerInfo9_GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos)   \
15135     ( (This)->lpVtbl -> GetCodeInfo4(This,pNativeCodeStartAddress,cCodeInfos,pcCodeInfos,codeInfos) ) 
15136
15137 #endif /* COBJMACROS */
15138
15139
15140 #endif  /* C style interface */
15141
15142
15143
15144
15145 #endif  /* __ICorProfilerInfo9_INTERFACE_DEFINED__ */
15146
15147
15148 #ifndef __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15149 #define __ICorProfilerMethodEnum_INTERFACE_DEFINED__
15150
15151 /* interface ICorProfilerMethodEnum */
15152 /* [local][unique][uuid][object] */ 
15153
15154
15155 EXTERN_C const IID IID_ICorProfilerMethodEnum;
15156
15157 #if defined(__cplusplus) && !defined(CINTERFACE)
15158     
15159     MIDL_INTERFACE("FCCEE788-0088-454B-A811-C99F298D1942")
15160     ICorProfilerMethodEnum : public IUnknown
15161     {
15162     public:
15163         virtual HRESULT STDMETHODCALLTYPE Skip( 
15164             /* [in] */ ULONG celt) = 0;
15165         
15166         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15167         
15168         virtual HRESULT STDMETHODCALLTYPE Clone( 
15169             /* [out] */ ICorProfilerMethodEnum **ppEnum) = 0;
15170         
15171         virtual HRESULT STDMETHODCALLTYPE GetCount( 
15172             /* [out] */ ULONG *pcelt) = 0;
15173         
15174         virtual HRESULT STDMETHODCALLTYPE Next( 
15175             /* [in] */ ULONG celt,
15176             /* [length_is][size_is][out] */ COR_PRF_METHOD elements[  ],
15177             /* [out] */ ULONG *pceltFetched) = 0;
15178         
15179     };
15180     
15181     
15182 #else   /* C style interface */
15183
15184     typedef struct ICorProfilerMethodEnumVtbl
15185     {
15186         BEGIN_INTERFACE
15187         
15188         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
15189             ICorProfilerMethodEnum * This,
15190             /* [in] */ REFIID riid,
15191             /* [annotation][iid_is][out] */ 
15192             _COM_Outptr_  void **ppvObject);
15193         
15194         ULONG ( STDMETHODCALLTYPE *AddRef )( 
15195             ICorProfilerMethodEnum * This);
15196         
15197         ULONG ( STDMETHODCALLTYPE *Release )( 
15198             ICorProfilerMethodEnum * This);
15199         
15200         HRESULT ( STDMETHODCALLTYPE *Skip )( 
15201             ICorProfilerMethodEnum * This,
15202             /* [in] */ ULONG celt);
15203         
15204         HRESULT ( STDMETHODCALLTYPE *Reset )( 
15205             ICorProfilerMethodEnum * This);
15206         
15207         HRESULT ( STDMETHODCALLTYPE *Clone )( 
15208             ICorProfilerMethodEnum * This,
15209             /* [out] */ ICorProfilerMethodEnum **ppEnum);
15210         
15211         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
15212             ICorProfilerMethodEnum * This,
15213             /* [out] */ ULONG *pcelt);
15214         
15215         HRESULT ( STDMETHODCALLTYPE *Next )( 
15216             ICorProfilerMethodEnum * This,
15217             /* [in] */ ULONG celt,
15218             /* [length_is][size_is][out] */ COR_PRF_METHOD elements[  ],
15219             /* [out] */ ULONG *pceltFetched);
15220         
15221         END_INTERFACE
15222     } ICorProfilerMethodEnumVtbl;
15223
15224     interface ICorProfilerMethodEnum
15225     {
15226         CONST_VTBL struct ICorProfilerMethodEnumVtbl *lpVtbl;
15227     };
15228
15229     
15230
15231 #ifdef COBJMACROS
15232
15233
15234 #define ICorProfilerMethodEnum_QueryInterface(This,riid,ppvObject)      \
15235     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
15236
15237 #define ICorProfilerMethodEnum_AddRef(This)     \
15238     ( (This)->lpVtbl -> AddRef(This) ) 
15239
15240 #define ICorProfilerMethodEnum_Release(This)    \
15241     ( (This)->lpVtbl -> Release(This) ) 
15242
15243
15244 #define ICorProfilerMethodEnum_Skip(This,celt)  \
15245     ( (This)->lpVtbl -> Skip(This,celt) ) 
15246
15247 #define ICorProfilerMethodEnum_Reset(This)      \
15248     ( (This)->lpVtbl -> Reset(This) ) 
15249
15250 #define ICorProfilerMethodEnum_Clone(This,ppEnum)       \
15251     ( (This)->lpVtbl -> Clone(This,ppEnum) ) 
15252
15253 #define ICorProfilerMethodEnum_GetCount(This,pcelt)     \
15254     ( (This)->lpVtbl -> GetCount(This,pcelt) ) 
15255
15256 #define ICorProfilerMethodEnum_Next(This,celt,elements,pceltFetched)    \
15257     ( (This)->lpVtbl -> Next(This,celt,elements,pceltFetched) ) 
15258
15259 #endif /* COBJMACROS */
15260
15261
15262 #endif  /* C style interface */
15263
15264
15265
15266
15267 #endif  /* __ICorProfilerMethodEnum_INTERFACE_DEFINED__ */
15268
15269
15270 #ifndef __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15271 #define __ICorProfilerThreadEnum_INTERFACE_DEFINED__
15272
15273 /* interface ICorProfilerThreadEnum */
15274 /* [local][unique][uuid][object] */ 
15275
15276
15277 EXTERN_C const IID IID_ICorProfilerThreadEnum;
15278
15279 #if defined(__cplusplus) && !defined(CINTERFACE)
15280     
15281     MIDL_INTERFACE("571194f7-25ed-419f-aa8b-7016b3159701")
15282     ICorProfilerThreadEnum : public IUnknown
15283     {
15284     public:
15285         virtual HRESULT STDMETHODCALLTYPE Skip( 
15286             /* [in] */ ULONG celt) = 0;
15287         
15288         virtual HRESULT STDMETHODCALLTYPE Reset( void) = 0;
15289         
15290         virtual HRESULT STDMETHODCALLTYPE Clone( 
15291             /* [out] */ ICorProfilerThreadEnum **ppEnum) = 0;
15292         
15293         virtual HRESULT STDMETHODCALLTYPE GetCount( 
15294             /* [out] */ ULONG *pcelt) = 0;
15295         
15296         virtual HRESULT STDMETHODCALLTYPE Next( 
15297             /* [in] */ ULONG celt,
15298             /* [length_is][size_is][out] */ ThreadID ids[  ],
15299             /* [out] */ ULONG *pceltFetched) = 0;
15300         
15301     };
15302     
15303     
15304 #else   /* C style interface */
15305
15306     typedef struct ICorProfilerThreadEnumVtbl
15307     {
15308         BEGIN_INTERFACE
15309         
15310         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
15311             ICorProfilerThreadEnum * This,
15312             /* [in] */ REFIID riid,
15313             /* [annotation][iid_is][out] */ 
15314             _COM_Outptr_  void **ppvObject);
15315         
15316         ULONG ( STDMETHODCALLTYPE *AddRef )( 
15317             ICorProfilerThreadEnum * This);
15318         
15319         ULONG ( STDMETHODCALLTYPE *Release )( 
15320             ICorProfilerThreadEnum * This);
15321         
15322         HRESULT ( STDMETHODCALLTYPE *Skip )( 
15323             ICorProfilerThreadEnum * This,
15324             /* [in] */ ULONG celt);
15325         
15326         HRESULT ( STDMETHODCALLTYPE *Reset )( 
15327             ICorProfilerThreadEnum * This);
15328         
15329         HRESULT ( STDMETHODCALLTYPE *Clone )( 
15330             ICorProfilerThreadEnum * This,
15331             /* [out] */ ICorProfilerThreadEnum **ppEnum);
15332         
15333         HRESULT ( STDMETHODCALLTYPE *GetCount )( 
15334             ICorProfilerThreadEnum * This,
15335             /* [out] */ ULONG *pcelt);
15336         
15337         HRESULT ( STDMETHODCALLTYPE *Next )( 
15338             ICorProfilerThreadEnum * This,
15339             /* [in] */ ULONG celt,
15340             /* [length_is][size_is][out] */ ThreadID ids[  ],
15341             /* [out] */ ULONG *pceltFetched);
15342         
15343         END_INTERFACE
15344     } ICorProfilerThreadEnumVtbl;
15345
15346     interface ICorProfilerThreadEnum
15347     {
15348         CONST_VTBL struct ICorProfilerThreadEnumVtbl *lpVtbl;
15349     };
15350
15351     
15352
15353 #ifdef COBJMACROS
15354
15355
15356 #define ICorProfilerThreadEnum_QueryInterface(This,riid,ppvObject)      \
15357     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
15358
15359 #define ICorProfilerThreadEnum_AddRef(This)     \
15360     ( (This)->lpVtbl -> AddRef(This) ) 
15361
15362 #define ICorProfilerThreadEnum_Release(This)    \
15363     ( (This)->lpVtbl -> Release(This) ) 
15364
15365
15366 #define ICorProfilerThreadEnum_Skip(This,celt)  \
15367     ( (This)->lpVtbl -> Skip(This,celt) ) 
15368
15369 #define ICorProfilerThreadEnum_Reset(This)      \
15370     ( (This)->lpVtbl -> Reset(This) ) 
15371
15372 #define ICorProfilerThreadEnum_Clone(This,ppEnum)       \
15373     ( (This)->lpVtbl -> Clone(This,ppEnum) ) 
15374
15375 #define ICorProfilerThreadEnum_GetCount(This,pcelt)     \
15376     ( (This)->lpVtbl -> GetCount(This,pcelt) ) 
15377
15378 #define ICorProfilerThreadEnum_Next(This,celt,ids,pceltFetched) \
15379     ( (This)->lpVtbl -> Next(This,celt,ids,pceltFetched) ) 
15380
15381 #endif /* COBJMACROS */
15382
15383
15384 #endif  /* C style interface */
15385
15386
15387
15388
15389 #endif  /* __ICorProfilerThreadEnum_INTERFACE_DEFINED__ */
15390
15391
15392 #ifndef __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15393 #define __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__
15394
15395 /* interface ICorProfilerAssemblyReferenceProvider */
15396 /* [local][unique][uuid][object] */ 
15397
15398
15399 EXTERN_C const IID IID_ICorProfilerAssemblyReferenceProvider;
15400
15401 #if defined(__cplusplus) && !defined(CINTERFACE)
15402     
15403     MIDL_INTERFACE("66A78C24-2EEF-4F65-B45F-DD1D8038BF3C")
15404     ICorProfilerAssemblyReferenceProvider : public IUnknown
15405     {
15406     public:
15407         virtual HRESULT STDMETHODCALLTYPE AddAssemblyReference( 
15408             const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo) = 0;
15409         
15410     };
15411     
15412     
15413 #else   /* C style interface */
15414
15415     typedef struct ICorProfilerAssemblyReferenceProviderVtbl
15416     {
15417         BEGIN_INTERFACE
15418         
15419         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
15420             ICorProfilerAssemblyReferenceProvider * This,
15421             /* [in] */ REFIID riid,
15422             /* [annotation][iid_is][out] */ 
15423             _COM_Outptr_  void **ppvObject);
15424         
15425         ULONG ( STDMETHODCALLTYPE *AddRef )( 
15426             ICorProfilerAssemblyReferenceProvider * This);
15427         
15428         ULONG ( STDMETHODCALLTYPE *Release )( 
15429             ICorProfilerAssemblyReferenceProvider * This);
15430         
15431         HRESULT ( STDMETHODCALLTYPE *AddAssemblyReference )( 
15432             ICorProfilerAssemblyReferenceProvider * This,
15433             const COR_PRF_ASSEMBLY_REFERENCE_INFO *pAssemblyRefInfo);
15434         
15435         END_INTERFACE
15436     } ICorProfilerAssemblyReferenceProviderVtbl;
15437
15438     interface ICorProfilerAssemblyReferenceProvider
15439     {
15440         CONST_VTBL struct ICorProfilerAssemblyReferenceProviderVtbl *lpVtbl;
15441     };
15442
15443     
15444
15445 #ifdef COBJMACROS
15446
15447
15448 #define ICorProfilerAssemblyReferenceProvider_QueryInterface(This,riid,ppvObject)       \
15449     ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) 
15450
15451 #define ICorProfilerAssemblyReferenceProvider_AddRef(This)      \
15452     ( (This)->lpVtbl -> AddRef(This) ) 
15453
15454 #define ICorProfilerAssemblyReferenceProvider_Release(This)     \
15455     ( (This)->lpVtbl -> Release(This) ) 
15456
15457
15458 #define ICorProfilerAssemblyReferenceProvider_AddAssemblyReference(This,pAssemblyRefInfo)       \
15459     ( (This)->lpVtbl -> AddAssemblyReference(This,pAssemblyRefInfo) ) 
15460
15461 #endif /* COBJMACROS */
15462
15463
15464 #endif  /* C style interface */
15465
15466
15467
15468
15469 #endif  /* __ICorProfilerAssemblyReferenceProvider_INTERFACE_DEFINED__ */
15470
15471
15472 /* Additional Prototypes for ALL interfaces */
15473
15474 /* end of Additional Prototypes */
15475
15476 #ifdef __cplusplus
15477 }
15478 #endif
15479
15480 #endif
15481
15482