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 // **** This file is auto-generated. Do not edit by hand. ****
5 //
6 // Instead ensure this file and EtwEvents.man are checked-out from source code control, locate the PUCLR ETW
7 // manifest file (it should be in puclr\ndp\clr\src\VM\ClrEtwAll.man), copy it into the rh\src\rtetw
8 // directory and run the following command from an rhenv window:
9 //     perl EtwImportClrEvents.pl
10 //
11 // This script consults EtwEventFilter.txt to determine which events to extract from the CLR manifest. It then
12 // merges any additional Redhawk-specific events from EtwRedhawkEvents.xml. The result is an updated version
13 // of this header file plus EtwEvents.man, a new ETW manifest file describing the final Redhawk events which
14 // can be registered with the system via the following command:
15 //     wevtutil im EtwEvents.man
16 //
17 
18 #ifndef __RH_ETW_DEFS_INCLUDED
19 #define __RH_ETW_DEFS_INCLUDED
20 
21 #if defined(FEATURE_ETW) && !defined(DACCESS_COMPILE)
22 
23 #ifndef RH_ETW_INLINE
24 #define RH_ETW_INLINE __declspec(noinline) __inline
25 #endif
26 
27 struct RH_ETW_CONTEXT
28 {
29     TRACEHANDLE               RegistrationHandle;
30     TRACEHANDLE               Logger;
31     UInt64                    MatchAnyKeyword;
32     UInt64                    MatchAllKeyword;
33     EVENT_FILTER_DESCRIPTOR * FilterData;
34     UInt32                    Flags;
35     UInt32                    IsEnabled;
36     UInt8                     Level;
37     UInt8                     Reserve;
38 };
39 
40 UInt32 EtwCallback(UInt32 IsEnabled, RH_ETW_CONTEXT * CallbackContext);
41 
42 __declspec(noinline) __inline void __stdcall
RhEtwControlCallback(GUID *,UInt32 IsEnabled,UInt8 Level,UInt64 MatchAnyKeyword,UInt64 MatchAllKeyword,EVENT_FILTER_DESCRIPTOR * FilterData,void * CallbackContext)43 RhEtwControlCallback(GUID * /*SourceId*/, UInt32 IsEnabled, UInt8 Level, UInt64 MatchAnyKeyword, UInt64 MatchAllKeyword, EVENT_FILTER_DESCRIPTOR * FilterData, void * CallbackContext)
44 {
45     RH_ETW_CONTEXT * Ctx = (RH_ETW_CONTEXT*)CallbackContext;
46     if (Ctx == NULL)
47         return;
48     Ctx->Level = Level;
49     Ctx->MatchAnyKeyword = MatchAnyKeyword;
50     Ctx->MatchAllKeyword = MatchAllKeyword;
51     Ctx->FilterData = FilterData;
52     Ctx->IsEnabled = IsEnabled;
53     EtwCallback(IsEnabled, (RH_ETW_CONTEXT*)CallbackContext);
54 }
55 
56 __declspec(noinline) __inline bool __stdcall
RhEventTracingEnabled(RH_ETW_CONTEXT * EnableInfo,const EVENT_DESCRIPTOR * EventDescriptor)57  RhEventTracingEnabled(RH_ETW_CONTEXT * EnableInfo,
58                        const EVENT_DESCRIPTOR * EventDescriptor)
59 {
60     if (!EnableInfo)
61         return false;
62     if ((EventDescriptor->Level <= EnableInfo->Level) || (EnableInfo->Level == 0))
63     {
64         if ((EventDescriptor->Keyword == (ULONGLONG)0) ||
65             ((EventDescriptor->Keyword & EnableInfo->MatchAnyKeyword) &&
66              ((EventDescriptor->Keyword & EnableInfo->MatchAllKeyword) == EnableInfo->MatchAllKeyword)))
67             return true;
68     }
69     return false;
70 }
71 
72 #define ETW_EVENT_ENABLED(Context, EventDescriptor) (Context.IsEnabled && RhEventTracingEnabled(&Context, &EventDescriptor))
73 
74 extern "C" __declspec(selectany) const GUID MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER = {0x1095638c, 0x8748, 0x4c7a, {0xb3, 0x9e, 0xba, 0xea, 0x27, 0xb9, 0xc5, 0x89}};
75 
76 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC1stConEnd = {0xd, 0x0, 0x10, 0x4, 0x1b, 0x1, 0x8000000000000001};
77 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC1stNonConEnd = {0xc, 0x0, 0x10, 0x4, 0x1a, 0x1, 0x8000000000000001};
78 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC2ndConBegin = {0x10, 0x0, 0x10, 0x4, 0x1e, 0x1, 0x8000000000000001};
79 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC2ndConEnd = {0x11, 0x0, 0x10, 0x4, 0x1f, 0x1, 0x8000000000000001};
80 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC2ndNonConBegin = {0xe, 0x0, 0x10, 0x4, 0x1c, 0x1, 0x8000000000000001};
81 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGC2ndNonConEnd = {0xf, 0x0, 0x10, 0x4, 0x1d, 0x1, 0x8000000000000001};
82 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCAllocWaitBegin = {0x17, 0x0, 0x10, 0x4, 0x25, 0x1, 0x8000000000000001};
83 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCAllocWaitEnd = {0x18, 0x0, 0x10, 0x4, 0x26, 0x1, 0x8000000000000001};
84 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCBegin = {0xb, 0x0, 0x10, 0x4, 0x19, 0x1, 0x8000000000000001};
85 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCDrainMark = {0x14, 0x0, 0x10, 0x4, 0x22, 0x1, 0x8000000000000001};
86 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCOverflow = {0x16, 0x0, 0x10, 0x4, 0x24, 0x1, 0x8000000000000001};
87 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCPlanEnd = {0x12, 0x0, 0x10, 0x4, 0x20, 0x1, 0x8000000000000001};
88 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCRevisit = {0x15, 0x0, 0x10, 0x4, 0x23, 0x1, 0x8000000000000001};
89 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BGCSweepEnd = {0x13, 0x0, 0x10, 0x4, 0x21, 0x1, 0x8000000000000001};
90 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCFullNotify_V1 = {0x19, 0x1, 0x10, 0x4, 0x13, 0x1, 0x8000000000000001};
91 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCGlobalHeapHistory_V1 = {0x5, 0x1, 0x10, 0x4, 0x12, 0x1, 0x8000000000000001};
92 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCJoin_V1 = {0x6, 0x1, 0x10, 0x5, 0x14, 0x1, 0x8000000000000001};
93 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCOptimized_V1 = {0x3, 0x1, 0x10, 0x5, 0x10, 0x1, 0x8000000000000001};
94 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCPerHeapHistory = {0x4, 0x2, 0x10, 0x4, 0x11, 0x1, 0x8000000000000001};
95 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCSettings = {0x2, 0x0, 0x10, 0x4, 0xe, 0x1, 0x8000000000000001};
96 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PinPlugAtGCTime = {0xc7, 0x0, 0x10, 0x5, 0x2c, 0x1, 0x8000000000000001};
97 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvDestroyGCHandle = {0xc3, 0x0, 0x10, 0x5, 0x2b, 0x1, 0x8000000000004000};
98 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvGCMarkCards_V1 = {0xa, 0x1, 0x10, 0x4, 0x18, 0x1, 0x8000000000000001};
99 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvGCMarkFinalizeQueueRoots_V1 = {0x8, 0x1, 0x10, 0x4, 0x16, 0x1, 0x8000000000000001};
100 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvGCMarkHandles_V1 = {0x9, 0x1, 0x10, 0x4, 0x17, 0x1, 0x8000000000000001};
101 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvGCMarkStackRoots_V1 = {0x7, 0x1, 0x10, 0x4, 0x15, 0x1, 0x8000000000000001};
102 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR PrvSetGCHandle = {0xc2, 0x0, 0x10, 0x5, 0x2a, 0x1, 0x8000000000004000};
103 
104 extern "C" __declspec(selectany) REGHANDLE Microsoft_Windows_Redhawk_GC_PrivateHandle;
105 extern "C" __declspec(selectany) RH_ETW_CONTEXT MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context;
106 
107 #define RH_ETW_REGISTER_Microsoft_Windows_Redhawk_GC_Private() do { PalEventRegister(&MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER, RhEtwControlCallback, &MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context, &Microsoft_Windows_Redhawk_GC_PrivateHandle); } while (false)
108 #define RH_ETW_UNREGISTER_Microsoft_Windows_Redhawk_GC_Private() do { PalEventUnregister(Microsoft_Windows_Redhawk_GC_PrivateHandle); } while (false)
109 
110 #define FireEtwBGC1stConEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC1stConEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC1stConEnd, ClrInstanceID) : 0
111 
112 #define FireEtwBGC1stNonConEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC1stNonConEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC1stNonConEnd, ClrInstanceID) : 0
113 
114 #define FireEtwBGC2ndConBegin(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndConBegin)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndConBegin, ClrInstanceID) : 0
115 
116 #define FireEtwBGC2ndConEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndConEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndConEnd, ClrInstanceID) : 0
117 
118 #define FireEtwBGC2ndNonConBegin(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndNonConBegin)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndNonConBegin, ClrInstanceID) : 0
119 
120 #define FireEtwBGC2ndNonConEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndNonConEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGC2ndNonConEnd, ClrInstanceID) : 0
121 
122 #define FireEtwBGCAllocWaitBegin(Reason, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCAllocWaitBegin)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCAllocWait(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCAllocWaitBegin, Reason, ClrInstanceID) : 0
123 
124 #define FireEtwBGCAllocWaitEnd(Reason, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCAllocWaitEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCAllocWait(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCAllocWaitEnd, Reason, ClrInstanceID) : 0
125 
126 #define FireEtwBGCBegin(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCBegin)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCBegin, ClrInstanceID) : 0
127 
128 #define FireEtwBGCDrainMark(Objects, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCDrainMark)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCDrainMark(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCDrainMark, Objects, ClrInstanceID) : 0
129 
130 #define FireEtwBGCOverflow(Min, Max, Objects, IsLarge, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCOverflow)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCOverflow(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCOverflow, Min, Max, Objects, IsLarge, ClrInstanceID) : 0
131 
132 #define FireEtwBGCPlanEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCPlanEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCPlanEnd, ClrInstanceID) : 0
133 
134 #define FireEtwBGCRevisit(Pages, Objects, IsLarge, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCRevisit)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCRevisit(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCRevisit, Pages, Objects, IsLarge, ClrInstanceID) : 0
135 
136 #define FireEtwBGCSweepEnd(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCSweepEnd)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PrivateHandle, &BGCSweepEnd, ClrInstanceID) : 0
137 
138 #define FireEtwGCFullNotify_V1(GenNumber, IsAlloc, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCFullNotify_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCFullNotify_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCFullNotify_V1, GenNumber, IsAlloc, ClrInstanceID) : 0
139 
140 #define FireEtwGCGlobalHeapHistory_V1(FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCGlobalHeapHistory_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCGlobalHeap_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCGlobalHeapHistory_V1, FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID) : 0
141 
142 #define FireEtwGCJoin_V1(Heap, JoinTime, JoinType, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCJoin_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCJoin_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCJoin_V1, Heap, JoinTime, JoinType, ClrInstanceID) : 0
143 
144 #define FireEtwGCOptimized_V1(DesiredAllocation, NewAllocation, GenerationNumber, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCOptimized_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCOptimized_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCOptimized_V1, DesiredAllocation, NewAllocation, GenerationNumber, ClrInstanceID) : 0
145 
146 #define FireEtwGCPerHeapHistory() (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCPerHeapHistory)) ? TemplateEventDescriptor(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCPerHeapHistory) : 0
147 
148 #define FireEtwGCSettings(SegmentSize, LargeObjectSegmentSize, ServerGC) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCSettings)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCSettings(Microsoft_Windows_Redhawk_GC_PrivateHandle, &GCSettings, SegmentSize, LargeObjectSegmentSize, ServerGC) : 0
149 
150 #define FireEtwPinPlugAtGCTime(PlugStart, PlugEnd, GapBeforeSize, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PinPlugAtGCTime)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PinPlugAtGCTime(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PinPlugAtGCTime, PlugStart, PlugEnd, GapBeforeSize, ClrInstanceID) : 0
151 
152 #define FireEtwPrvDestroyGCHandle(HandleID, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvDestroyGCHandle)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvDestroyGCHandle(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvDestroyGCHandle, HandleID, ClrInstanceID) : 0
153 
154 #define FireEtwPrvGCMarkCards_V1(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkCards_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkCards_V1, HeapNum, ClrInstanceID) : 0
155 
156 #define FireEtwPrvGCMarkFinalizeQueueRoots_V1(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkFinalizeQueueRoots_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkFinalizeQueueRoots_V1, HeapNum, ClrInstanceID) : 0
157 
158 #define FireEtwPrvGCMarkHandles_V1(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkHandles_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkHandles_V1, HeapNum, ClrInstanceID) : 0
159 
160 #define FireEtwPrvGCMarkStackRoots_V1(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkStackRoots_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvGCMarkStackRoots_V1, HeapNum, ClrInstanceID) : 0
161 
162 #define FireEtwPrvSetGCHandle(HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvSetGCHandle)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvSetGCHandle(Microsoft_Windows_Redhawk_GC_PrivateHandle, &PrvSetGCHandle, HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID) : 0
163 
164 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCAllocWait(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Reason,UInt16 ClrInstanceID)165 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCAllocWait(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Reason, UInt16 ClrInstanceID)
166 {
167     EVENT_DATA_DESCRIPTOR EventData[2];
168     EventDataDescCreate(&EventData[0], &Reason, sizeof(UInt32));
169     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
170     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
171 }
172 
173 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCDrainMark(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 Objects,UInt16 ClrInstanceID)174 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCDrainMark(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 Objects, UInt16 ClrInstanceID)
175 {
176     EVENT_DATA_DESCRIPTOR EventData[2];
177     EventDataDescCreate(&EventData[0], &Objects, sizeof(UInt64));
178     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
179     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
180 }
181 
182 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCOverflow(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 Min,UInt64 Max,UInt64 Objects,UInt32 IsLarge,UInt16 ClrInstanceID)183 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCOverflow(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 Min, UInt64 Max, UInt64 Objects, UInt32 IsLarge, UInt16 ClrInstanceID)
184 {
185     EVENT_DATA_DESCRIPTOR EventData[5];
186     EventDataDescCreate(&EventData[0], &Min, sizeof(UInt64));
187     EventDataDescCreate(&EventData[1], &Max, sizeof(UInt64));
188     EventDataDescCreate(&EventData[2], &Objects, sizeof(UInt64));
189     EventDataDescCreate(&EventData[3], &IsLarge, sizeof(UInt32));
190     EventDataDescCreate(&EventData[4], &ClrInstanceID, sizeof(UInt16));
191     return PalEventWrite(RegHandle, Descriptor, 5, EventData);
192 }
193 
194 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCRevisit(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 Pages,UInt64 Objects,UInt32 IsLarge,UInt16 ClrInstanceID)195 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_BGCRevisit(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 Pages, UInt64 Objects, UInt32 IsLarge, UInt16 ClrInstanceID)
196 {
197     EVENT_DATA_DESCRIPTOR EventData[4];
198     EventDataDescCreate(&EventData[0], &Pages, sizeof(UInt64));
199     EventDataDescCreate(&EventData[1], &Objects, sizeof(UInt64));
200     EventDataDescCreate(&EventData[2], &IsLarge, sizeof(UInt32));
201     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
202     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
203 }
204 
205 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCFullNotify_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 GenNumber,UInt32 IsAlloc,UInt16 ClrInstanceID)206 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCFullNotify_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 GenNumber, UInt32 IsAlloc, UInt16 ClrInstanceID)
207 {
208     EVENT_DATA_DESCRIPTOR EventData[3];
209     EventDataDescCreate(&EventData[0], &GenNumber, sizeof(UInt32));
210     EventDataDescCreate(&EventData[1], &IsAlloc, sizeof(UInt32));
211     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
212     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
213 }
214 
215 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCGlobalHeap_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 FinalYoungestDesired,Int32 NumHeaps,UInt32 CondemnedGeneration,UInt32 Gen0ReductionCount,UInt32 Reason,UInt32 GlobalMechanisms,UInt16 ClrInstanceID)216 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCGlobalHeap_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 FinalYoungestDesired, Int32 NumHeaps, UInt32 CondemnedGeneration, UInt32 Gen0ReductionCount, UInt32 Reason, UInt32 GlobalMechanisms, UInt16 ClrInstanceID)
217 {
218     EVENT_DATA_DESCRIPTOR EventData[7];
219     EventDataDescCreate(&EventData[0], &FinalYoungestDesired, sizeof(UInt64));
220     EventDataDescCreate(&EventData[1], &NumHeaps, sizeof(Int32));
221     EventDataDescCreate(&EventData[2], &CondemnedGeneration, sizeof(UInt32));
222     EventDataDescCreate(&EventData[3], &Gen0ReductionCount, sizeof(UInt32));
223     EventDataDescCreate(&EventData[4], &Reason, sizeof(UInt32));
224     EventDataDescCreate(&EventData[5], &GlobalMechanisms, sizeof(UInt32));
225     EventDataDescCreate(&EventData[6], &ClrInstanceID, sizeof(UInt16));
226     return PalEventWrite(RegHandle, Descriptor, 7, EventData);
227 }
228 
229 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCJoin_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Heap,UInt32 JoinTime,UInt32 JoinType,UInt16 ClrInstanceID)230 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCJoin_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Heap, UInt32 JoinTime, UInt32 JoinType, UInt16 ClrInstanceID)
231 {
232     EVENT_DATA_DESCRIPTOR EventData[4];
233     EventDataDescCreate(&EventData[0], &Heap, sizeof(UInt32));
234     EventDataDescCreate(&EventData[1], &JoinTime, sizeof(UInt32));
235     EventDataDescCreate(&EventData[2], &JoinType, sizeof(UInt32));
236     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
237     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
238 }
239 
240 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt16 ClrInstanceID)241 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCNoUserData(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt16 ClrInstanceID)
242 {
243     EVENT_DATA_DESCRIPTOR EventData[1];
244     EventDataDescCreate(&EventData[0], &ClrInstanceID, sizeof(UInt16));
245     return PalEventWrite(RegHandle, Descriptor, 1, EventData);
246 }
247 
248 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCOptimized_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 DesiredAllocation,UInt64 NewAllocation,UInt32 GenerationNumber,UInt16 ClrInstanceID)249 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCOptimized_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 DesiredAllocation, UInt64 NewAllocation, UInt32 GenerationNumber, UInt16 ClrInstanceID)
250 {
251     EVENT_DATA_DESCRIPTOR EventData[4];
252     EventDataDescCreate(&EventData[0], &DesiredAllocation, sizeof(UInt64));
253     EventDataDescCreate(&EventData[1], &NewAllocation, sizeof(UInt64));
254     EventDataDescCreate(&EventData[2], &GenerationNumber, sizeof(UInt32));
255     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
256     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
257 }
258 
259 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCSettings(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 SegmentSize,UInt64 LargeObjectSegmentSize,UInt32_BOOL ServerGC)260 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_GCSettings(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 SegmentSize, UInt64 LargeObjectSegmentSize, UInt32_BOOL ServerGC)
261 {
262     EVENT_DATA_DESCRIPTOR EventData[3];
263     EventDataDescCreate(&EventData[0], &SegmentSize, sizeof(UInt64));
264     EventDataDescCreate(&EventData[1], &LargeObjectSegmentSize, sizeof(UInt64));
265     EventDataDescCreate(&EventData[2], &ServerGC, sizeof(UInt32_BOOL));
266     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
267 }
268 
269 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PinPlugAtGCTime(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,void * PlugStart,void * PlugEnd,void * GapBeforeSize,UInt16 ClrInstanceID)270 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PinPlugAtGCTime(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, void* PlugStart, void* PlugEnd, void* GapBeforeSize, UInt16 ClrInstanceID)
271 {
272     EVENT_DATA_DESCRIPTOR EventData[4];
273     EventDataDescCreate(&EventData[0], &PlugStart, sizeof(void*));
274     EventDataDescCreate(&EventData[1], &PlugEnd, sizeof(void*));
275     EventDataDescCreate(&EventData[2], &GapBeforeSize, sizeof(void*));
276     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
277     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
278 }
279 
280 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvDestroyGCHandle(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,void * HandleID,UInt16 ClrInstanceID)281 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvDestroyGCHandle(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, void* HandleID, UInt16 ClrInstanceID)
282 {
283     EVENT_DATA_DESCRIPTOR EventData[2];
284     EventDataDescCreate(&EventData[0], &HandleID, sizeof(void*));
285     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
286     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
287 }
288 
289 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 HeapNum,UInt16 ClrInstanceID)290 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvGCMark_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 HeapNum, UInt16 ClrInstanceID)
291 {
292     EVENT_DATA_DESCRIPTOR EventData[2];
293     EventDataDescCreate(&EventData[0], &HeapNum, sizeof(UInt32));
294     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
295     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
296 }
297 
298 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvSetGCHandle(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,void * HandleID,void * ObjectID,UInt32 Kind,UInt32 Generation,UInt64 AppDomainID,UInt16 ClrInstanceID)299 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PRIVATE_PROVIDER_PrvSetGCHandle(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, void* HandleID, void* ObjectID, UInt32 Kind, UInt32 Generation, UInt64 AppDomainID, UInt16 ClrInstanceID)
300 {
301     EVENT_DATA_DESCRIPTOR EventData[6];
302     EventDataDescCreate(&EventData[0], &HandleID, sizeof(void*));
303     EventDataDescCreate(&EventData[1], &ObjectID, sizeof(void*));
304     EventDataDescCreate(&EventData[2], &Kind, sizeof(UInt32));
305     EventDataDescCreate(&EventData[3], &Generation, sizeof(UInt32));
306     EventDataDescCreate(&EventData[4], &AppDomainID, sizeof(UInt64));
307     EventDataDescCreate(&EventData[5], &ClrInstanceID, sizeof(UInt16));
308     return PalEventWrite(RegHandle, Descriptor, 6, EventData);
309 }
310 
311 extern "C" __declspec(selectany) const GUID MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER = {0x47c3ba0c, 0x77f1, 0x4eb0, {0x8d, 0x4d, 0xae, 0xf4, 0x47, 0xf1, 0x6a, 0x85}};
312 
313 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR BulkType = {0xf, 0x0, 0x10, 0x4, 0xa, 0x15, 0x8000000000080000};
314 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR DestroyGCHandle = {0x1f, 0x0, 0x10, 0x4, 0x22, 0x1, 0x8000000000000002};
315 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR ExceptionThrown_V1 = {0x50, 0x1, 0x10, 0x2, 0x1, 0x7, 0x8000000200008000};
316 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCAllocationTick_V1 = {0xa, 0x1, 0x10, 0x5, 0xb, 0x1, 0x8000000000000001};
317 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCAllocationTick_V2 = {0xa, 0x2, 0x10, 0x5, 0xb, 0x1, 0x8000000000000001};
318 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCAllocationTick_V3 = {0xa, 0x3, 0x10, 0x5, 0xb, 0x1, 0x8000000000000001};
319 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkEdge = {0x13, 0x0, 0x10, 0x4, 0x17, 0x1, 0x8000000000100000};
320 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkMovedObjectRanges = {0x16, 0x0, 0x10, 0x4, 0x1a, 0x1, 0x8000000000400000};
321 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkNode = {0x12, 0x0, 0x10, 0x4, 0x16, 0x1, 0x8000000000100000};
322 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkRCW = {0x25, 0x0, 0x10, 0x4, 0x27, 0x1, 0x8000000000100000};
323 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkRootCCW = {0x24, 0x0, 0x10, 0x4, 0x26, 0x1, 0x8000000000100000};
324 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkRootConditionalWeakTableElementEdge = {0x11, 0x0, 0x10, 0x4, 0x15, 0x1, 0x8000000000100000};
325 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkRootEdge = {0x10, 0x0, 0x10, 0x4, 0x14, 0x1, 0x8000000000100000};
326 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCBulkSurvivingObjectRanges = {0x15, 0x0, 0x10, 0x4, 0x19, 0x1, 0x8000000000400000};
327 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCCreateConcurrentThread_V1 = {0xb, 0x1, 0x10, 0x4, 0xc, 0x1, 0x8000000000010001};
328 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCCreateSegment_V1 = {0x5, 0x1, 0x10, 0x4, 0x86, 0x1, 0x8000000000000001};
329 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCEnd_V1 = {0x2, 0x1, 0x10, 0x4, 0x2, 0x1, 0x8000000000000001};
330 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCFreeSegment_V1 = {0x6, 0x1, 0x10, 0x4, 0x87, 0x1, 0x8000000000000001};
331 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCGenerationRange = {0x17, 0x0, 0x10, 0x4, 0x1b, 0x1, 0x8000000000400000};
332 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCGlobalHeapHistory_V2 = {0xcd, 0x2, 0x10, 0x4, 0xcd, 0x1, 0x8000000000000001};
333 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCHeapStats_V1 = {0x4, 0x1, 0x10, 0x4, 0x85, 0x1, 0x8000000000000001};
334 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCJoin_V2 = {0xcb, 0x2, 0x10, 0x5, 0xcb, 0x1, 0x8000000000000001};
335 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCMarkFinalizeQueueRoots = {0x1a, 0x0, 0x10, 0x4, 0x1d, 0x1, 0x8000000000000001};
336 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCMarkHandles = {0x1b, 0x0, 0x10, 0x4, 0x1e, 0x1, 0x8000000000000001};
337 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCMarkOlderGenerationRoots = {0x1c, 0x0, 0x10, 0x4, 0x1f, 0x1, 0x8000000000000001};
338 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCMarkStackRoots = {0x19, 0x0, 0x10, 0x4, 0x1c, 0x1, 0x8000000000000001};
339 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCMarkWithType = {0xca, 0x0, 0x10, 0x4, 0xca, 0x1, 0x8000000000000001};
340 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCPerHeapHistory_V3 = {0xcc, 0x3, 0x10, 0x4, 0xcc, 0x1, 0x8000000000000001};
341 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCRestartEEBegin_V1 = {0x7, 0x1, 0x10, 0x4, 0x88, 0x1, 0x8000000000000001};
342 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCRestartEEEnd_V1 = {0x3, 0x1, 0x10, 0x4, 0x84, 0x1, 0x8000000000000001};
343 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCStart_V1 = {0x1, 0x1, 0x10, 0x4, 0x1, 0x1, 0x8000000000000001};
344 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCStart_V2 = {0x1, 0x2, 0x10, 0x4, 0x1, 0x1, 0x8000000000000001};
345 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCSuspendEEBegin_V1 = {0x9, 0x1, 0x10, 0x4, 0xa, 0x1, 0x8000000000000001};
346 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCSuspendEEEnd_V1 = {0x8, 0x1, 0x10, 0x4, 0x89, 0x1, 0x8000000000000001};
347 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCTerminateConcurrentThread_V1 = {0xc, 0x1, 0x10, 0x4, 0xd, 0x1, 0x8000000000010001};
348 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR GCTriggered = {0x23, 0x0, 0x10, 0x4, 0x23, 0x1, 0x8000000000000001};
349 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR ModuleLoad_V2 = {0x98, 0x2, 0x10, 0x4, 0x21, 0xa, 0x8000000020000008};
350 extern "C" __declspec(selectany) const EVENT_DESCRIPTOR SetGCHandle = {0x1e, 0x0, 0x10, 0x4, 0x21, 0x1, 0x8000000000000002};
351 
352 extern "C" __declspec(selectany) REGHANDLE Microsoft_Windows_Redhawk_GC_PublicHandle;
353 extern "C" __declspec(selectany) RH_ETW_CONTEXT MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context;
354 
355 #define RH_ETW_REGISTER_Microsoft_Windows_Redhawk_GC_Public() do { PalEventRegister(&MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER, RhEtwControlCallback, &MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context, &Microsoft_Windows_Redhawk_GC_PublicHandle); } while (false)
356 #define RH_ETW_UNREGISTER_Microsoft_Windows_Redhawk_GC_Public() do { PalEventUnregister(Microsoft_Windows_Redhawk_GC_PublicHandle); } while (false)
357 
358 #define FireEtwBulkType(Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &BulkType)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_BulkType(Microsoft_Windows_Redhawk_GC_PublicHandle, &BulkType, Count, ClrInstanceID, Values_Len_, Values) : 0
359 
360 #define FireEtwDestroyGCHandle(HandleID, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &DestroyGCHandle)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_DestroyGCHandle(Microsoft_Windows_Redhawk_GC_PublicHandle, &DestroyGCHandle, HandleID, ClrInstanceID) : 0
361 
362 #define FireEtwExceptionThrown_V1(ExceptionType, ExceptionMessage, ExceptionEIP, ExceptionHRESULT, ExceptionFlags, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &ExceptionThrown_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Exception(Microsoft_Windows_Redhawk_GC_PublicHandle, &ExceptionThrown_V1, ExceptionType, ExceptionMessage, ExceptionEIP, ExceptionHRESULT, ExceptionFlags, ClrInstanceID) : 0
363 
364 #define FireEtwGCAllocationTick_V1(AllocationAmount, AllocationKind, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V1, AllocationAmount, AllocationKind, ClrInstanceID) : 0
365 
366 #define FireEtwGCAllocationTick_V2(AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V2)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V2(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V2, AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex) : 0
367 
368 #define FireEtwGCAllocationTick_V3(AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex, Address) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V3)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V3(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCAllocationTick_V3, AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex, Address) : 0
369 
370 #define FireEtwGCBulkEdge(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkEdge)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkEdge(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkEdge, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
371 
372 #define FireEtwGCBulkMovedObjectRanges(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkMovedObjectRanges)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkMovedObjectRanges(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkMovedObjectRanges, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
373 
374 #define FireEtwGCBulkNode(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkNode)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkNode(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkNode, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
375 
376 #define FireEtwGCBulkRCW(Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRCW)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRCW(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRCW, Count, ClrInstanceID, Values_Len_, Values) : 0
377 
378 #define FireEtwGCBulkRootCCW(Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootCCW)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootCCW(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootCCW, Count, ClrInstanceID, Values_Len_, Values) : 0
379 
380 #define FireEtwGCBulkRootConditionalWeakTableElementEdge(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootConditionalWeakTableElementEdge)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootConditionalWeakTableElementEdge(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootConditionalWeakTableElementEdge, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
381 
382 #define FireEtwGCBulkRootEdge(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootEdge)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootEdge(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkRootEdge, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
383 
384 #define FireEtwGCBulkSurvivingObjectRanges(Index, Count, ClrInstanceID, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkSurvivingObjectRanges)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkSurvivingObjectRanges(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCBulkSurvivingObjectRanges, Index, Count, ClrInstanceID, Values_Len_, Values) : 0
385 
386 #define FireEtwGCCreateConcurrentThread_V1(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCCreateConcurrentThread_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateConcurrentThread(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCCreateConcurrentThread_V1, ClrInstanceID) : 0
387 
388 #define FireEtwGCCreateSegment_V1(Address, Size, Type, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCCreateSegment_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateSegment_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCCreateSegment_V1, Address, Size, Type, ClrInstanceID) : 0
389 
390 #define FireEtwGCEnd_V1(Count, Depth, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCEnd_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCEnd_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCEnd_V1, Count, Depth, ClrInstanceID) : 0
391 
392 #define FireEtwGCFreeSegment_V1(Address, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCFreeSegment_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCFreeSegment_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCFreeSegment_V1, Address, ClrInstanceID) : 0
393 
394 #define FireEtwGCGenerationRange(Generation, RangeStart, RangeUsedLength, RangeReservedLength, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCGenerationRange)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGenerationRange(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCGenerationRange, Generation, RangeStart, RangeUsedLength, RangeReservedLength, ClrInstanceID) : 0
395 
396 #define FireEtwGCGlobalHeapHistory_V2(FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID, PauseMode, MemoryPressure) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCGlobalHeapHistory_V2)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGlobalHeap_V2(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCGlobalHeapHistory_V2, FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID, PauseMode, MemoryPressure) : 0
397 
398 #define FireEtwGCHeapStats_V1(GenerationSize0, TotalPromotedSize0, GenerationSize1, TotalPromotedSize1, GenerationSize2, TotalPromotedSize2, GenerationSize3, TotalPromotedSize3, FinalizationPromotedSize, FinalizationPromotedCount, PinnedObjectCount, SinkBlockCount, GCHandleCount, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCHeapStats_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCHeapStats_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCHeapStats_V1, GenerationSize0, TotalPromotedSize0, GenerationSize1, TotalPromotedSize1, GenerationSize2, TotalPromotedSize2, GenerationSize3, TotalPromotedSize3, FinalizationPromotedSize, FinalizationPromotedCount, PinnedObjectCount, SinkBlockCount, GCHandleCount, ClrInstanceID) : 0
399 
400 #define FireEtwGCJoin_V2(Heap, JoinTime, JoinType, ClrInstanceID, JoinID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCJoin_V2)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCJoin_V2(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCJoin_V2, Heap, JoinTime, JoinType, ClrInstanceID, JoinID) : 0
401 
402 #define FireEtwGCMarkFinalizeQueueRoots(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkFinalizeQueueRoots)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkFinalizeQueueRoots, HeapNum, ClrInstanceID) : 0
403 
404 #define FireEtwGCMarkHandles(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkHandles)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkHandles, HeapNum, ClrInstanceID) : 0
405 
406 #define FireEtwGCMarkOlderGenerationRoots(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkOlderGenerationRoots)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkOlderGenerationRoots, HeapNum, ClrInstanceID) : 0
407 
408 #define FireEtwGCMarkStackRoots(HeapNum, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkStackRoots)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkStackRoots, HeapNum, ClrInstanceID) : 0
409 
410 #define FireEtwGCMarkWithType(HeapNum, ClrInstanceID, Type, Bytes) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkWithType)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMarkWithType(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCMarkWithType, HeapNum, ClrInstanceID, Type, Bytes) : 0
411 
412 #define FireEtwGCPerHeapHistory_V3(ClrInstanceID, FreeListAllocated, FreeListRejected, EndOfSegAllocated, CondemnedAllocated, PinnedAllocated, PinnedAllocatedAdvance, RunningFreeListEfficiency, CondemnReasons0, CondemnReasons1, CompactMechanisms, ExpandMechanisms, HeapIndex, ExtraGen0Commit, Count, Values_Len_, Values) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCPerHeapHistory_V3)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCPerHeapHistory_V3(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCPerHeapHistory_V3, ClrInstanceID, FreeListAllocated, FreeListRejected, EndOfSegAllocated, CondemnedAllocated, PinnedAllocated, PinnedAllocatedAdvance, RunningFreeListEfficiency, CondemnReasons0, CondemnReasons1, CompactMechanisms, ExpandMechanisms, HeapIndex, ExtraGen0Commit, Count, Values_Len_, Values) : 0
413 
414 #define FireEtwGCRestartEEBegin_V1(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCRestartEEBegin_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCRestartEEBegin_V1, ClrInstanceID) : 0
415 
416 #define FireEtwGCRestartEEEnd_V1(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCRestartEEEnd_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCRestartEEEnd_V1, ClrInstanceID) : 0
417 
418 #define FireEtwGCStart_V1(Count, Depth, Reason, Type, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCStart_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCStart_V1, Count, Depth, Reason, Type, ClrInstanceID) : 0
419 
420 #define FireEtwGCStart_V2(Count, Depth, Reason, Type, ClrInstanceID, ClientSequenceNumber) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCStart_V2)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V2(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCStart_V2, Count, Depth, Reason, Type, ClrInstanceID, ClientSequenceNumber) : 0
421 
422 #define FireEtwGCSuspendEEBegin_V1(Reason, Count, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCSuspendEEBegin_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCSuspendEE_V1(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCSuspendEEBegin_V1, Reason, Count, ClrInstanceID) : 0
423 
424 #define FireEtwGCSuspendEEEnd_V1(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCSuspendEEEnd_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCNoUserData(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCSuspendEEEnd_V1, ClrInstanceID) : 0
425 
426 #define FireEtwGCTerminateConcurrentThread_V1(ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCTerminateConcurrentThread_V1)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTerminateConcurrentThread(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCTerminateConcurrentThread_V1, ClrInstanceID) : 0
427 
428 #define FireEtwGCTriggered(Reason, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCTriggered)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTriggered(Microsoft_Windows_Redhawk_GC_PublicHandle, &GCTriggered, Reason, ClrInstanceID) : 0
429 
430 #define FireEtwModuleLoad_V2(ModuleID, AssemblyID, ModuleFlags, Reserved1, ModuleILPath, ModuleNativePath, ClrInstanceID, ManagedPdbSignature, ManagedPdbAge, ManagedPdbBuildPath, NativePdbSignature, NativePdbAge, NativePdbBuildPath) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &ModuleLoad_V2)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_ModuleLoadUnload_V2(Microsoft_Windows_Redhawk_GC_PublicHandle, &ModuleLoad_V2, ModuleID, AssemblyID, ModuleFlags, Reserved1, ModuleILPath, ModuleNativePath, ClrInstanceID, ManagedPdbSignature, ManagedPdbAge, ManagedPdbBuildPath, NativePdbSignature, NativePdbAge, NativePdbBuildPath) : 0
431 
432 #define FireEtwSetGCHandle(HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID) (MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Context.IsEnabled && PalEventEnabled(Microsoft_Windows_Redhawk_GC_PublicHandle, &SetGCHandle)) ? Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_SetGCHandle(Microsoft_Windows_Redhawk_GC_PublicHandle, &SetGCHandle, HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID) : 0
433 
434 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_BulkType(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)435 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_BulkType(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
436 {
437     EVENT_DATA_DESCRIPTOR EventData[11];
438     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
439     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
440     EventDataDescCreate(&EventData[2], Values, Count * Values_Len_);
441     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
442 }
443 
444 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_DestroyGCHandle(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,void * HandleID,UInt16 ClrInstanceID)445 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_DestroyGCHandle(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, void* HandleID, UInt16 ClrInstanceID)
446 {
447     EVENT_DATA_DESCRIPTOR EventData[2];
448     EventDataDescCreate(&EventData[0], &HandleID, sizeof(void*));
449     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
450     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
451 }
452 
453 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Exception(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,LPCWSTR ExceptionType,LPCWSTR ExceptionMessage,void * ExceptionEIP,UInt32 ExceptionHRESULT,UInt16 ExceptionFlags,UInt16 ClrInstanceID)454 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_Exception(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, LPCWSTR ExceptionType, LPCWSTR ExceptionMessage, void* ExceptionEIP, UInt32 ExceptionHRESULT, UInt16 ExceptionFlags, UInt16 ClrInstanceID)
455 {
456     EVENT_DATA_DESCRIPTOR EventData[6];
457     EventDataDescCreate(&EventData[0], (ExceptionType != NULL) ? ExceptionType : L"", (ExceptionType != NULL) ? (ULONG)((wcslen(ExceptionType) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
458     EventDataDescCreate(&EventData[1], (ExceptionMessage != NULL) ? ExceptionMessage : L"", (ExceptionMessage != NULL) ? (ULONG)((wcslen(ExceptionMessage) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
459     EventDataDescCreate(&EventData[2], &ExceptionEIP, sizeof(void*));
460     EventDataDescCreate(&EventData[3], &ExceptionHRESULT, sizeof(UInt32));
461     EventDataDescCreate(&EventData[4], &ExceptionFlags, sizeof(UInt16));
462     EventDataDescCreate(&EventData[5], &ClrInstanceID, sizeof(UInt16));
463     return PalEventWrite(RegHandle, Descriptor, 6, EventData);
464 }
465 
466 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 AllocationAmount,UInt32 AllocationKind,UInt16 ClrInstanceID)467 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 AllocationAmount, UInt32 AllocationKind, UInt16 ClrInstanceID)
468 {
469     EVENT_DATA_DESCRIPTOR EventData[3];
470     EventDataDescCreate(&EventData[0], &AllocationAmount, sizeof(UInt32));
471     EventDataDescCreate(&EventData[1], &AllocationKind, sizeof(UInt32));
472     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
473     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
474 }
475 
476 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V2(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 AllocationAmount,UInt32 AllocationKind,UInt16 ClrInstanceID,UInt64 AllocationAmount64,void * TypeID,LPCWSTR TypeName,UInt32 HeapIndex)477 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V2(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 AllocationAmount, UInt32 AllocationKind, UInt16 ClrInstanceID, UInt64 AllocationAmount64, void* TypeID, LPCWSTR TypeName, UInt32 HeapIndex)
478 {
479     EVENT_DATA_DESCRIPTOR EventData[7];
480     EventDataDescCreate(&EventData[0], &AllocationAmount, sizeof(UInt32));
481     EventDataDescCreate(&EventData[1], &AllocationKind, sizeof(UInt32));
482     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
483     EventDataDescCreate(&EventData[3], &AllocationAmount64, sizeof(UInt64));
484     EventDataDescCreate(&EventData[4], &TypeID, sizeof(void*));
485     EventDataDescCreate(&EventData[5], (TypeName != NULL) ? TypeName : L"", (TypeName != NULL) ? (ULONG)((wcslen(TypeName) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
486     EventDataDescCreate(&EventData[6], &HeapIndex, sizeof(UInt32));
487     return PalEventWrite(RegHandle, Descriptor, 7, EventData);
488 }
489 
490 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V3(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 AllocationAmount,UInt32 AllocationKind,UInt16 ClrInstanceID,UInt64 AllocationAmount64,void * TypeID,LPCWSTR TypeName,UInt32 HeapIndex,void * Address)491 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCAllocationTick_V3(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 AllocationAmount, UInt32 AllocationKind, UInt16 ClrInstanceID, UInt64 AllocationAmount64, void* TypeID, LPCWSTR TypeName, UInt32 HeapIndex, void* Address)
492 {
493     EVENT_DATA_DESCRIPTOR EventData[8];
494     EventDataDescCreate(&EventData[0], &AllocationAmount, sizeof(UInt32));
495     EventDataDescCreate(&EventData[1], &AllocationKind, sizeof(UInt32));
496     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
497     EventDataDescCreate(&EventData[3], &AllocationAmount64, sizeof(UInt64));
498     EventDataDescCreate(&EventData[4], &TypeID, sizeof(void*));
499     EventDataDescCreate(&EventData[5], (TypeName != NULL) ? TypeName : L"", (TypeName != NULL) ? (ULONG)((wcslen(TypeName) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
500     EventDataDescCreate(&EventData[6], &HeapIndex, sizeof(UInt32));
501     EventDataDescCreate(&EventData[7], &Address, sizeof(void*));
502     return PalEventWrite(RegHandle, Descriptor, 8, EventData);
503 }
504 
505 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkEdge(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)506 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkEdge(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
507 {
508     EVENT_DATA_DESCRIPTOR EventData[6];
509     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
510     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
511     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
512     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
513     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
514 }
515 
516 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkMovedObjectRanges(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)517 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkMovedObjectRanges(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
518 {
519     EVENT_DATA_DESCRIPTOR EventData[7];
520     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
521     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
522     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
523     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
524     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
525 }
526 
527 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkNode(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)528 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkNode(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
529 {
530     EVENT_DATA_DESCRIPTOR EventData[8];
531     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
532     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
533     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
534     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
535     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
536 }
537 
538 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRCW(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)539 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRCW(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
540 {
541     EVENT_DATA_DESCRIPTOR EventData[9];
542     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
543     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
544     EventDataDescCreate(&EventData[2], Values, Count * Values_Len_);
545     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
546 }
547 
548 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootCCW(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)549 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootCCW(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
550 {
551     EVENT_DATA_DESCRIPTOR EventData[10];
552     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
553     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
554     EventDataDescCreate(&EventData[2], Values, Count * Values_Len_);
555     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
556 }
557 
558 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootConditionalWeakTableElementEdge(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)559 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootConditionalWeakTableElementEdge(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
560 {
561     EVENT_DATA_DESCRIPTOR EventData[7];
562     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
563     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
564     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
565     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
566     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
567 }
568 
569 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootEdge(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)570 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkRootEdge(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
571 {
572     EVENT_DATA_DESCRIPTOR EventData[8];
573     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
574     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
575     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
576     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
577     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
578 }
579 
580 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkSurvivingObjectRanges(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Index,UInt32 Count,UInt16 ClrInstanceID,ULONG Values_Len_,const PVOID Values)581 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCBulkSurvivingObjectRanges(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Index, UInt32 Count, UInt16 ClrInstanceID, ULONG Values_Len_, const PVOID Values)
582 {
583     EVENT_DATA_DESCRIPTOR EventData[6];
584     EventDataDescCreate(&EventData[0], &Index, sizeof(UInt32));
585     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
586     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
587     EventDataDescCreate(&EventData[3], Values, Count * Values_Len_);
588     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
589 }
590 
591 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateConcurrentThread(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt16 ClrInstanceID)592 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateConcurrentThread(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt16 ClrInstanceID)
593 {
594     EVENT_DATA_DESCRIPTOR EventData[1];
595     EventDataDescCreate(&EventData[0], &ClrInstanceID, sizeof(UInt16));
596     return PalEventWrite(RegHandle, Descriptor, 1, EventData);
597 }
598 
599 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateSegment_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 Address,UInt64 Size,UInt32 Type,UInt16 ClrInstanceID)600 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCCreateSegment_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 Address, UInt64 Size, UInt32 Type, UInt16 ClrInstanceID)
601 {
602     EVENT_DATA_DESCRIPTOR EventData[4];
603     EventDataDescCreate(&EventData[0], &Address, sizeof(UInt64));
604     EventDataDescCreate(&EventData[1], &Size, sizeof(UInt64));
605     EventDataDescCreate(&EventData[2], &Type, sizeof(UInt32));
606     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
607     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
608 }
609 
610 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCEnd_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt32 Depth,UInt16 ClrInstanceID)611 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCEnd_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt32 Depth, UInt16 ClrInstanceID)
612 {
613     EVENT_DATA_DESCRIPTOR EventData[3];
614     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
615     EventDataDescCreate(&EventData[1], &Depth, sizeof(UInt32));
616     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
617     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
618 }
619 
620 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCFreeSegment_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 Address,UInt16 ClrInstanceID)621 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCFreeSegment_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 Address, UInt16 ClrInstanceID)
622 {
623     EVENT_DATA_DESCRIPTOR EventData[2];
624     EventDataDescCreate(&EventData[0], &Address, sizeof(UInt64));
625     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
626     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
627 }
628 
629 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGenerationRange(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt8 Generation,void * RangeStart,UInt64 RangeUsedLength,UInt64 RangeReservedLength,UInt16 ClrInstanceID)630 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGenerationRange(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt8 Generation, void* RangeStart, UInt64 RangeUsedLength, UInt64 RangeReservedLength, UInt16 ClrInstanceID)
631 {
632     EVENT_DATA_DESCRIPTOR EventData[5];
633     EventDataDescCreate(&EventData[0], &Generation, sizeof(UInt8));
634     EventDataDescCreate(&EventData[1], &RangeStart, sizeof(void*));
635     EventDataDescCreate(&EventData[2], &RangeUsedLength, sizeof(UInt64));
636     EventDataDescCreate(&EventData[3], &RangeReservedLength, sizeof(UInt64));
637     EventDataDescCreate(&EventData[4], &ClrInstanceID, sizeof(UInt16));
638     return PalEventWrite(RegHandle, Descriptor, 5, EventData);
639 }
640 
641 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGlobalHeap_V2(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 FinalYoungestDesired,Int32 NumHeaps,UInt32 CondemnedGeneration,UInt32 Gen0ReductionCount,UInt32 Reason,UInt32 GlobalMechanisms,UInt16 ClrInstanceID,UInt32 PauseMode,UInt32 MemoryPressure)642 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCGlobalHeap_V2(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 FinalYoungestDesired, Int32 NumHeaps, UInt32 CondemnedGeneration, UInt32 Gen0ReductionCount, UInt32 Reason, UInt32 GlobalMechanisms, UInt16 ClrInstanceID, UInt32 PauseMode, UInt32 MemoryPressure)
643 {
644     EVENT_DATA_DESCRIPTOR EventData[9];
645     EventDataDescCreate(&EventData[0], &FinalYoungestDesired, sizeof(UInt64));
646     EventDataDescCreate(&EventData[1], &NumHeaps, sizeof(Int32));
647     EventDataDescCreate(&EventData[2], &CondemnedGeneration, sizeof(UInt32));
648     EventDataDescCreate(&EventData[3], &Gen0ReductionCount, sizeof(UInt32));
649     EventDataDescCreate(&EventData[4], &Reason, sizeof(UInt32));
650     EventDataDescCreate(&EventData[5], &GlobalMechanisms, sizeof(UInt32));
651     EventDataDescCreate(&EventData[6], &ClrInstanceID, sizeof(UInt16));
652     EventDataDescCreate(&EventData[7], &PauseMode, sizeof(UInt32));
653     EventDataDescCreate(&EventData[8], &MemoryPressure, sizeof(UInt32));
654     return PalEventWrite(RegHandle, Descriptor, 9, EventData);
655 }
656 
657 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCHeapStats_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 GenerationSize0,UInt64 TotalPromotedSize0,UInt64 GenerationSize1,UInt64 TotalPromotedSize1,UInt64 GenerationSize2,UInt64 TotalPromotedSize2,UInt64 GenerationSize3,UInt64 TotalPromotedSize3,UInt64 FinalizationPromotedSize,UInt64 FinalizationPromotedCount,UInt32 PinnedObjectCount,UInt32 SinkBlockCount,UInt32 GCHandleCount,UInt16 ClrInstanceID)658 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCHeapStats_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 GenerationSize0, UInt64 TotalPromotedSize0, UInt64 GenerationSize1, UInt64 TotalPromotedSize1, UInt64 GenerationSize2, UInt64 TotalPromotedSize2, UInt64 GenerationSize3, UInt64 TotalPromotedSize3, UInt64 FinalizationPromotedSize, UInt64 FinalizationPromotedCount, UInt32 PinnedObjectCount, UInt32 SinkBlockCount, UInt32 GCHandleCount, UInt16 ClrInstanceID)
659 {
660     EVENT_DATA_DESCRIPTOR EventData[14];
661     EventDataDescCreate(&EventData[0], &GenerationSize0, sizeof(UInt64));
662     EventDataDescCreate(&EventData[1], &TotalPromotedSize0, sizeof(UInt64));
663     EventDataDescCreate(&EventData[2], &GenerationSize1, sizeof(UInt64));
664     EventDataDescCreate(&EventData[3], &TotalPromotedSize1, sizeof(UInt64));
665     EventDataDescCreate(&EventData[4], &GenerationSize2, sizeof(UInt64));
666     EventDataDescCreate(&EventData[5], &TotalPromotedSize2, sizeof(UInt64));
667     EventDataDescCreate(&EventData[6], &GenerationSize3, sizeof(UInt64));
668     EventDataDescCreate(&EventData[7], &TotalPromotedSize3, sizeof(UInt64));
669     EventDataDescCreate(&EventData[8], &FinalizationPromotedSize, sizeof(UInt64));
670     EventDataDescCreate(&EventData[9], &FinalizationPromotedCount, sizeof(UInt64));
671     EventDataDescCreate(&EventData[10], &PinnedObjectCount, sizeof(UInt32));
672     EventDataDescCreate(&EventData[11], &SinkBlockCount, sizeof(UInt32));
673     EventDataDescCreate(&EventData[12], &GCHandleCount, sizeof(UInt32));
674     EventDataDescCreate(&EventData[13], &ClrInstanceID, sizeof(UInt16));
675     return PalEventWrite(RegHandle, Descriptor, 14, EventData);
676 }
677 
678 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCJoin_V2(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Heap,UInt32 JoinTime,UInt32 JoinType,UInt16 ClrInstanceID,UInt32 JoinID)679 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCJoin_V2(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Heap, UInt32 JoinTime, UInt32 JoinType, UInt16 ClrInstanceID, UInt32 JoinID)
680 {
681     EVENT_DATA_DESCRIPTOR EventData[5];
682     EventDataDescCreate(&EventData[0], &Heap, sizeof(UInt32));
683     EventDataDescCreate(&EventData[1], &JoinTime, sizeof(UInt32));
684     EventDataDescCreate(&EventData[2], &JoinType, sizeof(UInt32));
685     EventDataDescCreate(&EventData[3], &ClrInstanceID, sizeof(UInt16));
686     EventDataDescCreate(&EventData[4], &JoinID, sizeof(UInt32));
687     return PalEventWrite(RegHandle, Descriptor, 5, EventData);
688 }
689 
690 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 HeapNum,UInt16 ClrInstanceID)691 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMark(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 HeapNum, UInt16 ClrInstanceID)
692 {
693     EVENT_DATA_DESCRIPTOR EventData[2];
694     EventDataDescCreate(&EventData[0], &HeapNum, sizeof(UInt32));
695     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
696     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
697 }
698 
699 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMarkWithType(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 HeapNum,UInt16 ClrInstanceID,UInt32 Type,UInt64 Bytes)700 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCMarkWithType(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 HeapNum, UInt16 ClrInstanceID, UInt32 Type, UInt64 Bytes)
701 {
702     EVENT_DATA_DESCRIPTOR EventData[4];
703     EventDataDescCreate(&EventData[0], &HeapNum, sizeof(UInt32));
704     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
705     EventDataDescCreate(&EventData[2], &Type, sizeof(UInt32));
706     EventDataDescCreate(&EventData[3], &Bytes, sizeof(UInt64));
707     return PalEventWrite(RegHandle, Descriptor, 4, EventData);
708 }
709 
710 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCNoUserData(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt16 ClrInstanceID)711 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCNoUserData(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt16 ClrInstanceID)
712 {
713     EVENT_DATA_DESCRIPTOR EventData[1];
714     EventDataDescCreate(&EventData[0], &ClrInstanceID, sizeof(UInt16));
715     return PalEventWrite(RegHandle, Descriptor, 1, EventData);
716 }
717 
718 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCPerHeapHistory_V3(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt16 ClrInstanceID,void * FreeListAllocated,void * FreeListRejected,void * EndOfSegAllocated,void * CondemnedAllocated,void * PinnedAllocated,void * PinnedAllocatedAdvance,UInt32 RunningFreeListEfficiency,UInt32 CondemnReasons0,UInt32 CondemnReasons1,UInt32 CompactMechanisms,UInt32 ExpandMechanisms,UInt32 HeapIndex,void * ExtraGen0Commit,UInt32 Count,ULONG Values_Len_,const PVOID Values)719 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCPerHeapHistory_V3(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt16 ClrInstanceID, void* FreeListAllocated, void* FreeListRejected, void* EndOfSegAllocated, void* CondemnedAllocated, void* PinnedAllocated, void* PinnedAllocatedAdvance, UInt32 RunningFreeListEfficiency, UInt32 CondemnReasons0, UInt32 CondemnReasons1, UInt32 CompactMechanisms, UInt32 ExpandMechanisms, UInt32 HeapIndex, void* ExtraGen0Commit, UInt32 Count, ULONG Values_Len_, const PVOID Values)
720 {
721     EVENT_DATA_DESCRIPTOR EventData[26];
722     EventDataDescCreate(&EventData[0], &ClrInstanceID, sizeof(UInt16));
723     EventDataDescCreate(&EventData[1], &FreeListAllocated, sizeof(void*));
724     EventDataDescCreate(&EventData[2], &FreeListRejected, sizeof(void*));
725     EventDataDescCreate(&EventData[3], &EndOfSegAllocated, sizeof(void*));
726     EventDataDescCreate(&EventData[4], &CondemnedAllocated, sizeof(void*));
727     EventDataDescCreate(&EventData[5], &PinnedAllocated, sizeof(void*));
728     EventDataDescCreate(&EventData[6], &PinnedAllocatedAdvance, sizeof(void*));
729     EventDataDescCreate(&EventData[7], &RunningFreeListEfficiency, sizeof(UInt32));
730     EventDataDescCreate(&EventData[8], &CondemnReasons0, sizeof(UInt32));
731     EventDataDescCreate(&EventData[9], &CondemnReasons1, sizeof(UInt32));
732     EventDataDescCreate(&EventData[10], &CompactMechanisms, sizeof(UInt32));
733     EventDataDescCreate(&EventData[11], &ExpandMechanisms, sizeof(UInt32));
734     EventDataDescCreate(&EventData[12], &HeapIndex, sizeof(UInt32));
735     EventDataDescCreate(&EventData[13], &ExtraGen0Commit, sizeof(void*));
736     EventDataDescCreate(&EventData[14], &Count, sizeof(UInt32));
737     EventDataDescCreate(&EventData[15], Values, Count * Values_Len_);
738     return PalEventWrite(RegHandle, Descriptor, 16, EventData);
739 }
740 
741 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt32 Depth,UInt32 Reason,UInt32 Type,UInt16 ClrInstanceID)742 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt32 Depth, UInt32 Reason, UInt32 Type, UInt16 ClrInstanceID)
743 {
744     EVENT_DATA_DESCRIPTOR EventData[5];
745     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
746     EventDataDescCreate(&EventData[1], &Depth, sizeof(UInt32));
747     EventDataDescCreate(&EventData[2], &Reason, sizeof(UInt32));
748     EventDataDescCreate(&EventData[3], &Type, sizeof(UInt32));
749     EventDataDescCreate(&EventData[4], &ClrInstanceID, sizeof(UInt16));
750     return PalEventWrite(RegHandle, Descriptor, 5, EventData);
751 }
752 
753 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V2(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Count,UInt32 Depth,UInt32 Reason,UInt32 Type,UInt16 ClrInstanceID,UInt64 ClientSequenceNumber)754 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCStart_V2(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Count, UInt32 Depth, UInt32 Reason, UInt32 Type, UInt16 ClrInstanceID, UInt64 ClientSequenceNumber)
755 {
756     EVENT_DATA_DESCRIPTOR EventData[6];
757     EventDataDescCreate(&EventData[0], &Count, sizeof(UInt32));
758     EventDataDescCreate(&EventData[1], &Depth, sizeof(UInt32));
759     EventDataDescCreate(&EventData[2], &Reason, sizeof(UInt32));
760     EventDataDescCreate(&EventData[3], &Type, sizeof(UInt32));
761     EventDataDescCreate(&EventData[4], &ClrInstanceID, sizeof(UInt16));
762     EventDataDescCreate(&EventData[5], &ClientSequenceNumber, sizeof(UInt64));
763     return PalEventWrite(RegHandle, Descriptor, 6, EventData);
764 }
765 
766 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCSuspendEE_V1(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Reason,UInt32 Count,UInt16 ClrInstanceID)767 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCSuspendEE_V1(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Reason, UInt32 Count, UInt16 ClrInstanceID)
768 {
769     EVENT_DATA_DESCRIPTOR EventData[3];
770     EventDataDescCreate(&EventData[0], &Reason, sizeof(UInt32));
771     EventDataDescCreate(&EventData[1], &Count, sizeof(UInt32));
772     EventDataDescCreate(&EventData[2], &ClrInstanceID, sizeof(UInt16));
773     return PalEventWrite(RegHandle, Descriptor, 3, EventData);
774 }
775 
776 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTerminateConcurrentThread(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt16 ClrInstanceID)777 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTerminateConcurrentThread(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt16 ClrInstanceID)
778 {
779     EVENT_DATA_DESCRIPTOR EventData[1];
780     EventDataDescCreate(&EventData[0], &ClrInstanceID, sizeof(UInt16));
781     return PalEventWrite(RegHandle, Descriptor, 1, EventData);
782 }
783 
784 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTriggered(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt32 Reason,UInt16 ClrInstanceID)785 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_GCTriggered(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt32 Reason, UInt16 ClrInstanceID)
786 {
787     EVENT_DATA_DESCRIPTOR EventData[2];
788     EventDataDescCreate(&EventData[0], &Reason, sizeof(UInt32));
789     EventDataDescCreate(&EventData[1], &ClrInstanceID, sizeof(UInt16));
790     return PalEventWrite(RegHandle, Descriptor, 2, EventData);
791 }
792 
793 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_ModuleLoadUnload_V2(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,UInt64 ModuleID,UInt64 AssemblyID,UInt32 ModuleFlags,UInt32 Reserved1,LPCWSTR ModuleILPath,LPCWSTR ModuleNativePath,UInt16 ClrInstanceID,const GUID * ManagedPdbSignature,UInt32 ManagedPdbAge,LPCWSTR ManagedPdbBuildPath,const GUID * NativePdbSignature,UInt32 NativePdbAge,LPCWSTR NativePdbBuildPath)794 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_ModuleLoadUnload_V2(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, UInt64 ModuleID, UInt64 AssemblyID, UInt32 ModuleFlags, UInt32 Reserved1, LPCWSTR ModuleILPath, LPCWSTR ModuleNativePath, UInt16 ClrInstanceID, const GUID* ManagedPdbSignature, UInt32 ManagedPdbAge, LPCWSTR ManagedPdbBuildPath, const GUID* NativePdbSignature, UInt32 NativePdbAge, LPCWSTR NativePdbBuildPath)
795 {
796     EVENT_DATA_DESCRIPTOR EventData[13];
797     EventDataDescCreate(&EventData[0], &ModuleID, sizeof(UInt64));
798     EventDataDescCreate(&EventData[1], &AssemblyID, sizeof(UInt64));
799     EventDataDescCreate(&EventData[2], &ModuleFlags, sizeof(UInt32));
800     EventDataDescCreate(&EventData[3], &Reserved1, sizeof(UInt32));
801     EventDataDescCreate(&EventData[4], (ModuleILPath != NULL) ? ModuleILPath : L"", (ModuleILPath != NULL) ? (ULONG)((wcslen(ModuleILPath) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
802     EventDataDescCreate(&EventData[5], (ModuleNativePath != NULL) ? ModuleNativePath : L"", (ModuleNativePath != NULL) ? (ULONG)((wcslen(ModuleNativePath) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
803     EventDataDescCreate(&EventData[6], &ClrInstanceID, sizeof(UInt16));
804     EventDataDescCreate(&EventData[7], ManagedPdbSignature, sizeof(*(ManagedPdbSignature)));
805     EventDataDescCreate(&EventData[8], &ManagedPdbAge, sizeof(UInt32));
806     EventDataDescCreate(&EventData[9], (ManagedPdbBuildPath != NULL) ? ManagedPdbBuildPath : L"", (ManagedPdbBuildPath != NULL) ? (ULONG)((wcslen(ManagedPdbBuildPath) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
807     EventDataDescCreate(&EventData[10], NativePdbSignature, sizeof(*(NativePdbSignature)));
808     EventDataDescCreate(&EventData[11], &NativePdbAge, sizeof(UInt32));
809     EventDataDescCreate(&EventData[12], (NativePdbBuildPath != NULL) ? NativePdbBuildPath : L"", (NativePdbBuildPath != NULL) ? (ULONG)((wcslen(NativePdbBuildPath) + 1) * sizeof(WCHAR)) : (ULONG)sizeof(L""));
810     return PalEventWrite(RegHandle, Descriptor, 13, EventData);
811 }
812 
813 RH_ETW_INLINE UInt32
Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_SetGCHandle(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor,void * HandleID,void * ObjectID,UInt32 Kind,UInt32 Generation,UInt64 AppDomainID,UInt16 ClrInstanceID)814 Template_MICROSOFT_WINDOWS_REDHAWK_GC_PUBLIC_PROVIDER_SetGCHandle(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor, void* HandleID, void* ObjectID, UInt32 Kind, UInt32 Generation, UInt64 AppDomainID, UInt16 ClrInstanceID)
815 {
816     EVENT_DATA_DESCRIPTOR EventData[6];
817     EventDataDescCreate(&EventData[0], &HandleID, sizeof(void*));
818     EventDataDescCreate(&EventData[1], &ObjectID, sizeof(void*));
819     EventDataDescCreate(&EventData[2], &Kind, sizeof(UInt32));
820     EventDataDescCreate(&EventData[3], &Generation, sizeof(UInt32));
821     EventDataDescCreate(&EventData[4], &AppDomainID, sizeof(UInt64));
822     EventDataDescCreate(&EventData[5], &ClrInstanceID, sizeof(UInt16));
823     return PalEventWrite(RegHandle, Descriptor, 6, EventData);
824 }
825 
826 RH_ETW_INLINE UInt32
TemplateEventDescriptor(REGHANDLE RegHandle,const EVENT_DESCRIPTOR * Descriptor)827 TemplateEventDescriptor(REGHANDLE RegHandle, const EVENT_DESCRIPTOR * Descriptor)
828 {
829     return PalEventWrite(RegHandle, Descriptor, 0, NULL);
830 }
831 
832 #else // FEATURE_ETW
833 
834 #define ETW_EVENT_ENABLED(Context, EventDescriptor) false
835 
836 #define FireEtwBGC1stConEnd(ClrInstanceID)
837 #define FireEtwBGC1stNonConEnd(ClrInstanceID)
838 #define FireEtwBGC2ndConBegin(ClrInstanceID)
839 #define FireEtwBGC2ndConEnd(ClrInstanceID)
840 #define FireEtwBGC2ndNonConBegin(ClrInstanceID)
841 #define FireEtwBGC2ndNonConEnd(ClrInstanceID)
842 #define FireEtwBGCAllocWaitBegin(Reason, ClrInstanceID)
843 #define FireEtwBGCAllocWaitEnd(Reason, ClrInstanceID)
844 #define FireEtwBGCBegin(ClrInstanceID)
845 #define FireEtwBGCDrainMark(Objects, ClrInstanceID)
846 #define FireEtwBGCOverflow(Min, Max, Objects, IsLarge, ClrInstanceID)
847 #define FireEtwBGCPlanEnd(ClrInstanceID)
848 #define FireEtwBGCRevisit(Pages, Objects, IsLarge, ClrInstanceID)
849 #define FireEtwBGCSweepEnd(ClrInstanceID)
850 #define FireEtwGCFullNotify_V1(GenNumber, IsAlloc, ClrInstanceID)
851 #define FireEtwGCGlobalHeapHistory_V1(FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID)
852 #define FireEtwGCJoin_V1(Heap, JoinTime, JoinType, ClrInstanceID)
853 #define FireEtwGCOptimized_V1(DesiredAllocation, NewAllocation, GenerationNumber, ClrInstanceID)
854 #define FireEtwGCPerHeapHistory()
855 #define FireEtwGCSettings(SegmentSize, LargeObjectSegmentSize, ServerGC)
856 #define FireEtwPinPlugAtGCTime(PlugStart, PlugEnd, GapBeforeSize, ClrInstanceID)
857 #define FireEtwPrvDestroyGCHandle(HandleID, ClrInstanceID)
858 #define FireEtwPrvGCMarkCards_V1(HeapNum, ClrInstanceID)
859 #define FireEtwPrvGCMarkFinalizeQueueRoots_V1(HeapNum, ClrInstanceID)
860 #define FireEtwPrvGCMarkHandles_V1(HeapNum, ClrInstanceID)
861 #define FireEtwPrvGCMarkStackRoots_V1(HeapNum, ClrInstanceID)
862 #define FireEtwPrvSetGCHandle(HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID)
863 
864 #define FireEtwBulkType(Count, ClrInstanceID, Values_Len_, Values)
865 #define FireEtwDestroyGCHandle(HandleID, ClrInstanceID)
866 #define FireEtwExceptionThrown_V1(ExceptionType, ExceptionMessage, ExceptionEIP, ExceptionHRESULT, ExceptionFlags, ClrInstanceID)
867 #define FireEtwGCAllocationTick_V1(AllocationAmount, AllocationKind, ClrInstanceID)
868 #define FireEtwGCAllocationTick_V2(AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex)
869 #define FireEtwGCAllocationTick_V3(AllocationAmount, AllocationKind, ClrInstanceID, AllocationAmount64, TypeID, TypeName, HeapIndex, Address)
870 #define FireEtwGCBulkEdge(Index, Count, ClrInstanceID, Values_Len_, Values)
871 #define FireEtwGCBulkMovedObjectRanges(Index, Count, ClrInstanceID, Values_Len_, Values)
872 #define FireEtwGCBulkNode(Index, Count, ClrInstanceID, Values_Len_, Values)
873 #define FireEtwGCBulkRCW(Count, ClrInstanceID, Values_Len_, Values)
874 #define FireEtwGCBulkRootCCW(Count, ClrInstanceID, Values_Len_, Values)
875 #define FireEtwGCBulkRootConditionalWeakTableElementEdge(Index, Count, ClrInstanceID, Values_Len_, Values)
876 #define FireEtwGCBulkRootEdge(Index, Count, ClrInstanceID, Values_Len_, Values)
877 #define FireEtwGCBulkSurvivingObjectRanges(Index, Count, ClrInstanceID, Values_Len_, Values)
878 #define FireEtwGCCreateConcurrentThread_V1(ClrInstanceID)
879 #define FireEtwGCCreateSegment_V1(Address, Size, Type, ClrInstanceID)
880 #define FireEtwGCEnd_V1(Count, Depth, ClrInstanceID)
881 #define FireEtwGCFreeSegment_V1(Address, ClrInstanceID)
882 #define FireEtwGCGenerationRange(Generation, RangeStart, RangeUsedLength, RangeReservedLength, ClrInstanceID)
883 #define FireEtwGCGlobalHeapHistory_V2(FinalYoungestDesired, NumHeaps, CondemnedGeneration, Gen0ReductionCount, Reason, GlobalMechanisms, ClrInstanceID, PauseMode, MemoryPressure)
884 #define FireEtwGCHeapStats_V1(GenerationSize0, TotalPromotedSize0, GenerationSize1, TotalPromotedSize1, GenerationSize2, TotalPromotedSize2, GenerationSize3, TotalPromotedSize3, FinalizationPromotedSize, FinalizationPromotedCount, PinnedObjectCount, SinkBlockCount, GCHandleCount, ClrInstanceID)
885 #define FireEtwGCJoin_V2(Heap, JoinTime, JoinType, ClrInstanceID, JoinID)
886 #define FireEtwGCMarkFinalizeQueueRoots(HeapNum, ClrInstanceID)
887 #define FireEtwGCMarkHandles(HeapNum, ClrInstanceID)
888 #define FireEtwGCMarkOlderGenerationRoots(HeapNum, ClrInstanceID)
889 #define FireEtwGCMarkStackRoots(HeapNum, ClrInstanceID)
890 #define FireEtwGCMarkWithType(HeapNum, ClrInstanceID, Type, Bytes)
891 #define FireEtwGCPerHeapHistory_V3(ClrInstanceID, FreeListAllocated, FreeListRejected, EndOfSegAllocated, CondemnedAllocated, PinnedAllocated, PinnedAllocatedAdvance, RunningFreeListEfficiency, CondemnReasons0, CondemnReasons1, CompactMechanisms, ExpandMechanisms, HeapIndex, ExtraGen0Commit, Count, Values_Len_, Values)
892 #define FireEtwGCRestartEEBegin_V1(ClrInstanceID)
893 #define FireEtwGCRestartEEEnd_V1(ClrInstanceID)
894 #define FireEtwGCStart_V1(Count, Depth, Reason, Type, ClrInstanceID)
895 #define FireEtwGCStart_V2(Count, Depth, Reason, Type, ClrInstanceID, ClientSequenceNumber)
896 #define FireEtwGCSuspendEEBegin_V1(Reason, Count, ClrInstanceID)
897 #define FireEtwGCSuspendEEEnd_V1(ClrInstanceID)
898 #define FireEtwGCTerminateConcurrentThread_V1(ClrInstanceID)
899 #define FireEtwGCTriggered(Reason, ClrInstanceID)
900 #define FireEtwModuleLoad_V2(ModuleID, AssemblyID, ModuleFlags, Reserved1, ModuleILPath, ModuleNativePath, ClrInstanceID, ManagedPdbSignature, ManagedPdbAge, ManagedPdbBuildPath, NativePdbSignature, NativePdbAge, NativePdbBuildPath)
901 #define FireEtwSetGCHandle(HandleID, ObjectID, Kind, Generation, AppDomainID, ClrInstanceID)
902 
903 #endif // FEATURE_ETW
904 
905 #endif // !__RH_ETW_DEFS_INCLUDED
906