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