6ab96e4c851ee89283a455154313cb0e5c11df71
[platform/core/dotnet/diagnostics.git] /
1 <?xml version="1.0"?>
2 <doc>
3     <assembly>
4         <name>Microsoft.Diagnostics.Tracing.TraceEvent</name>
5     </assembly>
6     <members>
7         <member name="T:Microsoft.Diagnostics.Tracing.BPerfEventSource">
8             <summary>
9             BPerf Trace Log (BTL) are files generated by the CPU Samples Collector tool in https://github.com/Microsoft/BPerf
10             The layout of the file is as follows -->
11             
12             Format:
13             4 byte integer describing compressed size
14             4 byte integer describing uncompressed size
15             byte[compressed size]
16             
17             The byte array is a list of EVENT_RECORDs. Each Event_RECORD is aligned to 16-bytes.
18             
19             The EVENT_RECORD is laid out as a memory dump of the structure in memory. All pointers from
20             the structure are laid out successively in front of the EVENT_RECORD.
21             
22             The compression mechanism is using the NTDLL.RtlDecompressBufferEx Express Huffman procedure.
23             </summary>
24         </member>
25         <member name="M:Microsoft.Diagnostics.Tracing.BPerfEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
26             <summary>
27             This constructor is used when the consumer has an offset within the BTL file that it would like to seek to.
28             </summary>
29         </member>
30         <member name="M:Microsoft.Diagnostics.Tracing.BPerfEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions,System.Byte[],System.Byte[],System.Byte[],System.Boolean)">
31             <summary>
32             This constructor is used when the consumer is supplying the buffers for reasons like buffer pooling.
33             </summary>
34         </member>
35         <member name="T:Microsoft.Diagnostics.Tracing.ActivityComputer">
36             <summary>
37             An ActivityComputer is a state machine that track information about Activities.  In particular, it can
38             compute a activity aware call stack. (GetCallStack).  
39             </summary>
40         </member>
41         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource,Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.GCReferenceComputer)">
42             <summary>
43             Construct a new ActivityComputer that will process events from 'eventLog' and output activity - aware stacks to 'outputStackSource'. 
44             </summary>
45         </member>
46         <member name="P:Microsoft.Diagnostics.Tracing.ActivityComputer.Log">
47             <summary>
48             Returns the TraceLog that is associated with the computer (at construction time)
49             </summary>
50         </member>
51         <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Create">
52             <summary>
53             Fires when an activity is first created (scheduled).   The activity exists, and has an ID, but has not run yet. 
54             </summary>
55         </member>
56         <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Start">
57             <summary>
58             First when an activity starts to run (using a thread).  It fires after the start has logically happened.  
59             so you are logically in the started activity.  
60             </summary>
61         </member>
62         <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.Stop">
63             <summary>
64             Fires when the activity ends (no longer using a thread).  It fires just BEFORE the task actually dies 
65             (that is you ask the activity of the event being passed to 'Stop' it will still give the passed
66             activity as the answer).   The first TraceActivity is the activity that was stopped, the second
67             is the activity that exists afer the stop completes.  
68             </summary>
69         </member>
70         <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.AfterStop">
71             <summary>
72             Like OnStop but gets called AFTER the stop has completed (thus the current thread's activity has been updated)
73             The activity may be null, which indicates a failure to look up the activity being stopped (and thus the
74             thread's activity will be set to null).  
75             </summary>
76         </member>
77         <member name="E:Microsoft.Diagnostics.Tracing.ActivityComputer.AwaitUnblocks">
78             <summary>
79             AwaitUnblocks is a specialized form of the 'Start' event that fires when a task starts because
80             an AWAIT has ended.   The start event also fires on awaits end and comes AFTER the AwaitUnblocks
81             event has been delivered.    
82             
83             Not every AWAIT end causes a callback.  Because an AWAIT begin happens for every FRAME you only
84             want a callback for the FIRST task (activity) created by parent of this activity.  This is what
85             this callback does.  
86             
87             AwaitUnblocks are often treated differently because you want to consider the time between the begin 
88             (Activity Created) and awaitUnbock to be accounted for as on the critical path, whereas for 'normal' 
89             tasks you normally don't think that time is interesting.  
90             </summary>
91         </member>
92         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCurrentActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
93             <summary>
94             Fetches the current activity for 'thread'  at the present time (the current event being dispatched).  
95             Never returns null because there is always and activity (it may be the thread task).  
96             This is arguably the main thing that this computer keeps track of.   
97             </summary>
98         </member>
99         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetActivityRepresentingThread(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
100             <summary>
101             Gets the default activity for a thread (the activity a thread is doing when the thread starts).  
102             </summary>
103         </member>
104         <member name="P:Microsoft.Diagnostics.Tracing.ActivityComputer.Item(Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex)">
105             <summary>
106             Maps an activity index back to its activity.  
107             </summary>
108         </member>
109         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.TraceEvent,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex},System.Boolean)">
110             <summary>
111             Returns a activity-aware call stackIndex associated with'ouputStackSource' for the call stack associated with 'data'.
112             Such activity-aware call stacks have pseudo-frame every time on thread causes another task to run code (because the  
113             creator 'caused' the target code).
114             
115             If 'topFrames' is non-null, then this function is called with a Thread and is expected to return a CallStack index that
116             represents the thread-and-process nodes of the stack.   This allows the returned stack to be have pseudo-frames 
117             at the root of the stack.  Typically this is used to represent the 'request' or other 'global' context.   If it is not
118             present the thread and process are used to form these nodes.  
119             
120             This needs to be a function mapping threads to the stack base rather than just the stack base  because in the presence 
121             of activities the thread at the 'base' whose 'top' you want may not be the one that 'data' started with, so the caller 
122             needs to be prepared to answer the question about any thread.  
123             </summary>
124         </member>
125         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStackForActivity(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex})">
126             <summary>
127             Returns a StackSource call stack associated with outputStackSource for the activity 'activity'   (that is the call stack at the 
128             the time this activity was first created.   This stack will have it 'top' defined by topFrames (by default just the thread and process frames)
129             </summary>
130         </member>
131         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
132             <summary>
133             This is not a call stack but rather the chain of ACTIVITIES (tasks), and can be formed even when call stacks   
134             
135             Returns a Stack Source stack associated with outputStackSource where each frame is a task starting with 'activity' and
136             going back until the activity has no parent (e.g. the Thread's default activity).  
137             </summary>
138         </member>
139         <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.NoCache">
140             <summary>
141             If set, we don't assume that the top top frames are an attribute of the TOP THREAD  (if they vary based on
142             the current activity, then you can't cache.   Setting this disables caching.  
143             </summary>
144         </member>
145         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.IsThreadParkedInThreadPool(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
146             <summary>
147             Returns true if the call stack is in the thread pool parked (not running user code)  
148             This means that the thread CAN'T be running an active activity and we can kill it.  
149             </summary>
150         </member>
151         <member name="T:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache">
152             <summary>
153             This cache remembers Activity * CallStackIndex pairs and the result.  
154             </summary>
155         </member>
156         <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.CurrentActivityIndex">
157             <summary>
158             Remembers the current Activity for 'Get' and 'Put' operations.   Needs to be set before Get or Put is called.  
159             </summary>
160         </member>
161         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.Get(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
162             <summary>
163             Gets the cache entry for the CurrnetActivityIndex with the call stack 'fromStackIndex'  returns Invalid if
164             there is no entry.   
165             
166             This is not passed the CurrentActivityIndex, so it can implement the CallStackMap interface
167             </summary>
168         </member>
169         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.CallStackCache.Put(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
170             <summary>
171             updates the cache entry for the CurrnetActivityIndex with the call stack 'fromStackIndex'  with the value 
172             'toStackIndex'
173             
174             This is not passed the CurrentActivityIndex, so it can implement the CallStackMap interface
175             </summary>
176         </member>
177         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.OnCreated(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind)">
178             <summary>
179             Creation handles ANY creation of a task.  
180             </summary>
181         </member>
182         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.OnStop(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
183             <summary>
184             Activity can be null, which means we could not figure out the activity we are stopping.  
185             </summary>
186         </member>
187         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetTPLRawID(Microsoft.Diagnostics.Tracing.TraceEvent,System.Int32,Microsoft.Diagnostics.Tracing.ActivityComputer.IDType)">
188             <summary>
189             Get a trace wide ID for a TPL event.   TPL tasks might be 'Scheduled' in the sense
190             that it might run independently on another thread.  Tasks that do 'BeginWait and 'EndWait'
191             are not scheduled.  The same ID might have both operating simultaneously (if you wait
192             on a scheduled task).  Thus you need an independent ID for both.  
193             </summary>
194         </member>
195         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.GetCallStackWithActivityFrames(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceActivity,System.Func{Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex})">
196             <summary>
197             if 'activity' has not creator (it is top-level), then return baseStack (near execution) followed by 'top' representing the thread-process frames.
198             
199             otherwise, find the fragment of 'baseStack' up to the point to enters the threadpool (the user code) and splice it to the stack of the creator
200             of the activity and return that.  (thus returning your full user-stack).  
201             </summary>
202         </member>
203         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.TrimETWFrames(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
204             <summary>
205             Trims off frames that call ETW logic and return.   If the pattern is not matched, we return  callStackIndex
206             </summary>
207         </member>
208         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.IsRecursiveTask(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
209             <summary>
210             If the stack from 'startStack' (closest to execution) through 'stopStack' is the same as 'baseStack' return a non-invalid frame 
211             indicating that it is recursive and should be dropped.  The frame index returned is the name of the task on 'baseStack' that
212             begins the recursion (so you can update it if necessary)
213             </summary>
214         </member>
215         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.SpliceStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
216             <summary>
217             Create a stack which is executing at 'startStack' and finds the region until 'stopStack', appending that (in order) to 'baseStack'.  
218             </summary>
219         </member>
220         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.FindThreadPoolTransition(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
221             <summary>
222             Returns the point in 'callStackIndex' where the CLR thread pool transitions from 
223             a thread pool worker to the work being done by the threadpool.  
224             
225             Basically we find the closest to execution (furthest from thread-start) call to a 'Run' method
226             that shows we are running an independent task.  
227             </summary>
228         </member>
229         <member name="M:Microsoft.Diagnostics.Tracing.ActivityComputer.ResolveWellKnownSymbols">
230             <summary>
231             Used by TrimETWFrames and FindThreadPoolTransition to find particular frame names and place the information in 'm_methodFlags'
232             </summary>
233         </member>
234         <member name="F:Microsoft.Diagnostics.Tracing.ActivityComputer.m_methodFlags">
235             <summary>
236             We look for various well known methods inside the Task library.   This array maps method indexes 
237             and returns a bitvector of 'kinds' of methods (Run, Schedule, ScheduleHelper).  
238             </summary>
239         </member>
240         <member name="T:Microsoft.Diagnostics.Tracing.GCReferenceID">
241             <summary>
242             A small number that you can get from the GetReferenceForGCAddress that is
243             invariant as the GC address moves around during GCs.   Because this index
244             is small it can be used to store information about the GC reference in a
245             side growable array.  
246             </summary>
247         </member>
248         <member name="F:Microsoft.Diagnostics.Tracing.GCReferenceID.Dead">
249             <summary>
250             Indicates that the address is no longer alive.  
251             </summary>
252         </member>
253         <member name="T:Microsoft.Diagnostics.Tracing.GCReferenceComputer">
254             <summary>
255             This computer will keep track of GC references as they change over time 
256             </summary>
257         </member>
258         <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
259             <summary>
260             Create a new GCRefernece computer from the stream of events 'source'.   When 'source' is processed
261             you can call 'GetReferenceForGCAddress' to get stable ids for GC references.  
262             </summary>
263             <param name="source"></param>
264         </member>
265         <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.GetReferenceForGCAddress(System.UInt64)">
266             <summary>
267             Get a stable ID for a GcAddress.  This ID can be compared for object identity.
268             This only works at the current point in time when scanning the source.  
269             </summary>
270         </member>
271         <member name="M:Microsoft.Diagnostics.Tracing.GCReferenceComputer.DisposeGCReference(Microsoft.Diagnostics.Tracing.GCReferenceID)">
272             <summary>
273             If you no longer need to track the GC reference, call this function to remove the tracking.  
274             </summary>
275         </member>
276         <member name="T:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer">
277             <summary>
278             A EventPipeThreadTimeComputer does a simple simulation of what each thread is doing to create stack events that represent 
279             CPU, blocked time
280             </summary>
281         </member>
282         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Symbols.SymbolReader)">
283             <summary>
284             Create a new ThreadTimeComputer
285             </summary>
286         </member>
287         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.UseTasks">
288             <summary>
289             If set we compute thread time using Tasks
290             </summary>
291         </member>
292         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.IncludeEventSourceEvents">
293             <summary>
294             Track additional info on like EventName or so.
295             Default to true to keep backward compatibility.
296             </summary>
297         </member>
298         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GroupByStartStopActivity">
299             <summary>
300             Use start-stop activities as the grouping construct. 
301             </summary>
302         </member>
303         <member name="P:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.IgnoreApplicationInsightsRequestsWithRelatedActivityId">
304             <summary>
305             Reduce nested application insights requests by using related activity id.
306             </summary>
307             <value></value>
308         </member>
309         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GenerateThreadTimeStacks(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
310             <summary>
311             Generate the thread time stacks, outputting to 'stackSource'.  
312             </summary>
313             <param name="outputStackSource"></param>
314             <param name="traceEvents">Optional filtered trace events.</param>
315         </member>
316         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.UpdateThreadToWorkOnStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.TraceEvent)">
317             <summary>
318             Updates it so that 'thread' is now working on newStartStop, which can be null which means that it is not working on any 
319             start-stop task. 
320             </summary>
321         </member>
322         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.OnSampledProfile(Microsoft.Diagnostics.Tracing.TraceEvent)">
323             <summary>
324             This can actually be called with any event that has a stack.   Basically it will log a CPU sample whose
325             size is the time between the last such call and the current one.  
326             </summary>
327         </member>
328         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GetCallStack(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
329             <summary>
330             Get the call stack for 'data'  Note that you thread must be data.Thread().   We pass it just to save the lookup.  
331             </summary>
332         </member>
333         <member name="M:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.GetTopFramesForActivityComputerCase(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
334             <summary>
335             Returns a function that figures out the top (closest to stack root) frames for an event.  Often
336             this returns null which means 'use the normal thread-process frames'. 
337             Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
338             stack at the time that the current activity was CREATED rather than the current time.  This works 
339             better for await time.  
340             </summary>
341         </member>
342         <member name="T:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.ThreadState">
343             <summary>
344             Represents all the information that we need to track for each thread.  
345             </summary>
346         </member>
347         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_unknownTimeStartMsec">
348             <summary>
349             Used to create UNKNOWN frames for start-stop activities.   This is indexed by StartStopActivityIndex.
350             and for each start-stop activity indicates when unknown time starts.   However if that activity still
351             has known activities associated with it then the number will be negative, and its value is the 
352             ref-count of known activities (thus when it falls to 0, it we set it to the start of unknown time. 
353             This is indexed by the TOP-MOST start-stop activity.  
354             </summary>
355         </member>
356         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_threadToStartStopActivity">
357             <summary>
358             maps thread ID to the current TOP-MOST start-stop activity running on that thread.   Used to updated m_unknownTimeStartMsec 
359             to figure out when to put in UNKNOWN_ASYNC nodes.  
360             </summary>
361         </member>
362         <member name="F:Microsoft.Diagnostics.Tracing.SampleProfilerThreadTimeComputer.m_startStopActivityToAsyncUnknownSamples">
363             <summary>
364             Sadly, with AWAIT nodes might come into existance AFTER we would have normally identified 
365             a region as having no thread/await working on it.  Thus you have to be able to 'undo' ASYNC_UNKONWN
366             nodes.   We solve this by remembering all of our ASYNC_UNKNOWN nodes on a list (basically provisional)
367             and only add them when the start-stop activity dies (when we know there can't be another AWAIT.  
368             Note that we only care about TOP-MOST activities.  
369             </summary>
370         </member>
371         <member name="T:Microsoft.Diagnostics.Tracing.ServerRequestComputer">
372             <summary>
373             Calculates stacks grouping them by the server request (e.g. ASP.NET) request they are for)
374             </summary>
375         </member>
376         <member name="M:Microsoft.Diagnostics.Tracing.ServerRequestComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
377             <summary>
378             Create a new ServerRequest Computer.
379             </summary>
380         </member>
381         <member name="M:Microsoft.Diagnostics.Tracing.ServerRequestComputer.GetCurrentRequest(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
382             <summary>
383             The server request that we currently processing
384             </summary>
385         </member>
386         <member name="T:Microsoft.Diagnostics.Tracing.ServerRequest">
387             <summary>
388             A ServerRequest contains all the information we know about a server request (e.g. ASP.NET request)
389             </summary>
390         </member>
391         <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.Url">
392             <summary>
393             Any URL associated with the request
394             </summary>
395         </member>
396         <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.ID">
397             <summary>
398             If the request has a GUID associated with it to uniquely identify it, this is it
399             </summary>
400         </member>
401         <member name="F:Microsoft.Diagnostics.Tracing.ServerRequest.StartTime">
402             <summary>
403             The time that the request started (or the earliest that we know about it)
404             </summary>
405         </member>
406         <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityComputer">
407             <summary>
408             Calculates start-stop activities (computes duration),  It uses the 'standard' mechanism of using 
409             ActivityIDs to corelate the start and stop (and any other events between the start and stop, 
410             and use the RelatedActivityID on START events to indicate the creator of the activity, so you can
411             form nested start-stop activities.   
412             </summary>
413         </member>
414         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource,Microsoft.Diagnostics.Tracing.ActivityComputer,System.Boolean)">
415             <summary>
416             Create a new ServerRequest Computer.
417             </summary>
418         </member>
419         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetCurrentStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.TraceEvent)">
420             <summary>
421             The current start-stop activity on the given thread.   
422             If present 'context' is used to look up the current activityID and try to use that to repair missing Starts.  
423             Basically if we can't figure out what StartStop activity the thread from just the threadID we can use the activityID 
424             from the 'context' event to find it as a backup.     
425             </summary>
426         </member>
427         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetStartStopActivityForActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
428             <summary>
429             Gets the current Start-Stop activity for a given TraceActivity.  
430             </summary>
431             <param name="curActivity"></param>
432             <returns></returns>
433         </member>
434         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetCurrentStartStopActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
435             <summary>
436             Returns a stack index representing the nesting of Start-Stop activities for the thread 'curThread' at the current time
437             (At this point of the current event for the computer).   The stack starts with a frame for the process of the thread, then 
438             has all the start-stop activity frames, then a frame representing 'topThread' which may not be the same as 'thread' since
439             'topThread' is the thread that spawned the first task, not the currently executing thread.  
440             
441             Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
442             stack at the time that the current activity was CREATED rather than the current time.  This works 
443             better for await time
444             </summary>
445         </member>
446         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetStartStopActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
447             <summary>
448             Gets a stack that represents the nesting of the Start-Stop tasks.  curActivity can be null, in which case just he process node is returned.  
449             </summary>
450         </member>
451         <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.Start">
452             <summary>
453             If set, called AFTER a Start-Stop activity starts, called with the activity and the event that caused the start. 
454             </summary>
455         </member>
456         <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.Stop">
457             <summary>
458             If set, called BEFORE a Start-Stop activity stops, called with the activity and the event that caused the start. 
459             </summary>
460         </member>
461         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.IsActivityPath(System.Guid,System.Int32)">
462             <summary>
463             Returns true if 'guid' follow the EventSouce style activity ID for the process with ID processID.  
464             You can pass a process ID of 0 to this routine and it will do the best it can, but the possibility
465             of error is significantly higher (but still under .1%)
466             </summary>
467         </member>
468         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.ActivityPathProcessID(System.Guid)">
469             <summary>
470             Assuming guid is an Activity Path, extract the process ID from it.   
471             </summary>
472         </member>
473         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.ActivityPathString(System.Guid)">
474             <summary>
475             returns a string representation for the activity path.  If the GUID is not an activity path then it returns
476             the normal string representation for a GUID.  
477             </summary>
478         </member>
479         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.DoStopIfNecessary">
480             <summary>
481             We don't do a stop all processing associated with the stop event is done.  Thus if we are not 'on'
482             the stop event, then you can do any deferred processing.  
483             </summary>
484         </member>
485         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.TryProcessDiagnosticSourceStartEvents(Microsoft.Diagnostics.Tracing.TraceEvent)">
486             <summary>
487             Try to process some predefined DiagnosticSource ("Microsoft.EntityFrameworkCore.BeforeExecuteCommand" and "Microsoft.AspNetCore.Hosting.BeginRequest") start events.
488             This will try to filter the events by "EventName", if failed it will return false without any further processing.
489             </summary>
490             <returns>Whether or not succeeded in processing the event</returns>
491         </member>
492         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.FixAndProcessWindowsASP(Microsoft.Diagnostics.Tracing.TraceEvent,System.Collections.Generic.KeyValuePair{System.Guid,System.Guid}[])">
493             <summary>
494             fix ASP.NET receiving events  
495             </summary>
496         </member>
497         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.GetActiveStartStopActivityTable(System.Guid,System.Int32)">
498             <summary>
499             Look up a start-stop activity by its ID.   Note that the 'activityID' needs to be unique for that instance 
500             within a process.  (across ALL start-stop activities, which means it may need components that encode its 
501             provider and task).   We pass the process ID as well so that it will be unique in the whole trace.  
502             </summary>
503         </member>
504         <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityComputer.NumberListCodes">
505             <summary>
506             The encoding for a list of numbers used to make Activity  Guids.   Basically
507             we operate on nibbles (which are nice because they show up as hex digits).  The
508             list is ended with a end nibble (0) and depending on the nibble value (Below)
509             the value is either encoded into nibble itself or it can spill over into the
510             bytes that follow.   
511             </summary>
512         </member>
513         <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivityIndex">
514             <summary>
515             An dense number that defines the identity of a StartStopActivity.  Used to create side arrays 
516             for StartStopActivity info.  
517             </summary>
518         </member>
519         <member name="F:Microsoft.Diagnostics.Tracing.StartStopActivityIndex.Illegal">
520             <summary>
521             An illegal index, sutable for a sentinal.  
522             </summary>
523         </member>
524         <member name="T:Microsoft.Diagnostics.Tracing.StartStopActivity">
525             <summary>
526             A StartStop reresents an activity between a start and stop event as generated by EvetSource.  
527             </summary>
528         </member>
529         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Index">
530             <summary>
531             The index (small dense numbers suitabilty for array indexing) for this activity. 
532             </summary>
533         </member>
534         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Name">
535             <summary>
536             The name of the activity (The Task name for the start-stop event as well as the activity ID)
537             </summary>
538         </member>
539         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.KnownType">
540             <summary>
541             Known Activity Type
542             </summary>
543         </member>
544         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ExtraInfo">
545             <summary>
546             If the activity has additional information associated with it (e.g. a URL), put it here.  Can be null.
547             </summary>
548         </member>
549         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.TaskName">
550             <summary>
551             The Task name (the name prefix that is common to both the start and stop event)
552             </summary>
553         </member>
554         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ProcessID">
555             <summary>
556             The processID associated with this activity
557             </summary>
558         </member>
559         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ActivityID">
560             <summary>
561             The Activity ID (as a GUID) that matches the start and stop together. 
562             </summary>
563         </member>
564         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.ActivityPathString">
565             <summary>
566             The path of creators that created this activity.  
567             </summary>
568         </member>
569         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.Creator">
570             <summary>
571             The start-stop activity that created this activity (thus it makes a tree)
572             </summary>
573         </member>
574         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StartEventIndex">
575             <summary>
576             The TraceLog event Index, of the start event (you can get addition info)
577             </summary>
578         </member>
579         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StopEventIndex">
580             <summary>
581             The TraceLog event Index, of the stop event (you can get addition info)
582             </summary>
583         </member>
584         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.StartTimeRelativeMSec">
585             <summary>
586             The time in MSec from the start of the trace when the start event happened. 
587             </summary>
588         </member>
589         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.DurationMSec">
590             <summary>
591             The duration of activity in MSec (diff between stop and start)
592             </summary>
593         </member>
594         <member name="P:Microsoft.Diagnostics.Tracing.StartStopActivity.IsStopped">
595             <summary>
596             This activity has completed (the Stop event has been received).  Thus Duration is valid.
597             </summary>
598         </member>
599         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.GetActivityStack(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
600             <summary>
601             Returns a stack on the outputStackSource which has a frame for each activity that
602             caused this activity, as well as the root of the given 'rootStack' (often a stack representing the process).    
603             </summary>
604         </member>
605         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.ToString">
606             <summary>
607             override.   Gives the name and start time.  
608             </summary>
609         </member>
610         <member name="M:Microsoft.Diagnostics.Tracing.StartStopActivity.RememberStop(Microsoft.Diagnostics.Tracing.EventIndex,System.Double,Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex)">
611             <summary>
612             We don't update the state for the stop at the time of the stop, but at the next call to any of the StartStopActivityComputer APIs.  
613             </summary>
614         </member>
615         <member name="T:Microsoft.Diagnostics.Tracing.TcpIpComputer">
616             <summary>
617             A TcpIpComputer keeps track of TCP/IP connections so that you can correlate individual reads and
618             writes with the connection info (like the IP address of each end), as well as data packets being
619             sent (if you have packet capture turned on).  
620             </summary>
621         </member>
622         <member name="M:Microsoft.Diagnostics.Tracing.TcpIpComputer.#ctor(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
623             <summary>
624             Create a new GCRefernece computer from the stream of events 'source'.   When 'source' is processed
625             you can call 'GetReferenceForGCAddress' to get stable ids for GC references.  
626             </summary>
627             <param name="source"></param>
628         </member>
629         <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer">
630             <summary>
631             A ThreadTimeComputer does a simple simulation of what each thread is doing to create stack events that represent 
632             CPU, blocked time, disk and Network activity.  
633             </summary>
634         </member>
635         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Symbols.SymbolReader)">
636             <summary>
637             Create a new ThreadTimeComputer
638             </summary>
639         </member>
640         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.UseTasks">
641             <summary>
642             If set we compute thread time using Tasks
643             </summary>
644         </member>
645         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.IncludeEventSourceEvents">
646             <summary>
647             Track additional info on like EventName or so.
648             Default to true to keep backward compatibility.
649             </summary>
650         </member>
651         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.BlockedTimeOnly">
652             <summary>
653             If set we compute blocked time 
654             </summary>
655         </member>
656         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.ExcludeReadyThread">
657             <summary>
658             If set we don't show ready thread information 
659             </summary>
660         </member>
661         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GroupByAspNetRequest">
662             <summary>
663             If set we group by ASP.NET Request
664             </summary>
665         </member>
666         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.MiniumReadiedTimeMSec">
667             <summary>
668             If we spend less then this amount of time waiting for the CPU, don't bother showing it.  
669             </summary>
670         </member>
671         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GroupByStartStopActivity">
672             <summary>
673             LIke the GroupByAspNetRequest but use start-stop activities instead of ASP.NET Requests as the grouping construct. 
674             </summary>
675         </member>
676         <member name="P:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.IgnoreApplicationInsightsRequestsWithRelatedActivityId">
677             <summary>
678             Reduce nested application insights requests by using related activity id.
679             </summary>
680             <value></value>
681         </member>
682         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.NoAwaitTime">
683             <summary>
684             Don't show AwaitTime.  For CPU only traces showing await time is misleading since
685             blocked time will not show up.  
686             </summary>
687         </member>
688         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GenerateThreadTimeStacks(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
689             <summary>
690             Generate the thread time stacks, outputting to 'stackSource'.  
691             </summary>
692             <param name="outputStackSource"></param>
693             <param name="traceEvents">Optional filtered trace events.</param>
694         </member>
695         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.UpdateThreadToWorkOnStartStopActivity(Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.StartStopActivity,Microsoft.Diagnostics.Tracing.TraceEvent)">
696             <summary>
697             Updates it so that 'thread' is now working on newStartStop, which can be null which means that it is not working on any 
698             start-stop task. 
699             </summary>
700         </member>
701         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.OnSampledProfile(Microsoft.Diagnostics.Tracing.TraceEvent)">
702             <summary>
703             This can actually be called with any event that has a stack.   Basically it will log a CPU sample whose
704             size is the time between the last such call and the current one.  
705             </summary>
706         </member>
707         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetCallStack(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
708             <summary>
709             Get the call stack for 'data'  Note that you thread must be data.Thread().   We pass it just to save the lookup.  
710             </summary>
711         </member>
712         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetTopFramesForActivityComputerCase(Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,System.Boolean)">
713             <summary>
714             Returns a function that figures out the top (closest to stack root) frames for an event.  Often
715             this returns null which means 'use the normal thread-process frames'. 
716             Normally this stack is for the current time, but if 'getAtCreationTime' is true, it will compute the
717             stack at the time that the current activity was CREATED rather than the current time.  This works 
718             better for await time.  
719             </summary>
720         </member>
721         <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.ThreadState">
722             <summary>
723             Represents all the information that we need to track for each thread.  
724             </summary>
725         </member>
726         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetAspNetGuid(Microsoft.Diagnostics.Tracing.Etlx.TraceActivity)">
727             <summary>
728             Given and activity, return the ASP.NET Guid associated with it (or Guid.Empty if there is not one). 
729             </summary>
730             <returns></returns>
731         </member>
732         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GetAspNetFromProcessFrameThroughThreadFrameStack(System.Guid,Microsoft.Diagnostics.Tracing.TraceEvent,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
733             <summary>
734             Computes the ASP.NET Pseudo frames from the process frame through the thread frame (which includes all 
735             the pseudo-frames for the ASP.NET groupings. 
736             </summary>
737         </member>
738         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.TransferAspNetRequestToThread(System.Guid,Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex,System.String)">
739             <summary>
740             Indicates that the aspNet request represented by aspNetGuid is now being  handled by the thread with index 
741             newThreadIndex.  Thus any old threads handling this request are 'cleared' and replaced with 'newThreadIndex'
742             If 'newThreadIndex == Invalid then the entry for aspNetGuid is removed.  
743             </summary>
744         </member>
745         <member name="M:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.GenerateReadyThreadNodes(Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,System.Double,System.Int32)">
746             <summary>
747             Generate a stack that from the root looks like 'stackIndex followed by 'READIED BY TID(XXXX)' 
748             followed by frames of 'readyThreadCallStack' (suffixed by READIED_BY)
749             </summary>
750         </member>
751         <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.NetworkInfo">
752             <summary>
753              NetworkInfo remembers useful information to tag blocked time that seems to be network related. 
754              It is the value of the m_lastPacketForProcess table mapping threads to network information. 
755             </summary>
756         </member>
757         <member name="T:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.AspNetRequestInfo">
758             <summary>
759             AspNetRequestInfo remembers everything we care about associate with an single ASP.NET request.  
760             It is the value of the m_aspNetRequestInfo table. 
761             </summary>
762         </member>
763         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_unknownTimeStartMsec">
764             <summary>
765             Used to create UNKNOWN frames for start-stop activities.   This is indexed by StartStopActivityIndex.
766             and for each start-stop activity indicates when unknown time starts.   However if that activity still
767             has known activities associated with it then the number will be negative, and its value is the 
768             ref-count of known activities (thus when it falls to 0, it we set it to the start of unknown time. 
769             This is indexed by the TOP-MOST start-stop activity.  
770             </summary>
771         </member>
772         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_threadToStartStopActivity">
773             <summary>
774             maps thread ID to the current TOP-MOST start-stop activity running on that thread.   Used to updated m_unknownTimeStartMsec 
775             to figure out when to put in UNKNOWN_ASYNC nodes.  
776             </summary>
777         </member>
778         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_startStopActivityToAsyncUnknownSamples">
779             <summary>
780             Sadly, with AWAIT nodes might come into existance AFTER we would have normally identified 
781             a region as having no thread/await working on it.  Thus you have to be able to 'undo' ASYNC_UNKONWN
782             nodes.   We solve this by remembering all of our ASYNC_UNKNOWN nodes on a list (basically provisional)
783             and only add them when the start-stop activity dies (when we know there can't be another AWAIT.  
784             Note that we only care about TOP-MOST activities.  
785             </summary>
786         </member>
787         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_IRPToThread">
788             <summary>
789             m_IRPToThread maps the I/O request to the thread that initiated it.  This way we can associate
790             the disk read size and file with the thread that asked for it.  
791             </summary>
792         </member>
793         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_threadIDUsingProc">
794             <summary>
795             Maps processor number to the OS threadID of the thread that is using it.   Allows you 
796             to determine how (CPU) idle the machine is.  
797             </summary>
798         </member>
799         <member name="F:Microsoft.Diagnostics.Tracing.ThreadTimeStackComputer.m_numIdleProcs">
800             <summary>
801             Using m_threadIDUsingProc, we compute how many processor are current doing nothing 
802             </summary>
803         </member>
804         <member name="P:Microsoft.Diagnostics.Tracing.NewThreadTimeComputer.Log">
805             <summary>
806             Returns the TraceLog that is associated with the computer (at construction time)
807             </summary>
808         </member>
809         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntimeExtensions">
810             <summary>
811             Extension methods to enable TraceManagedProcess
812             </summary>
813         </member>
814         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime">
815             <summary>
816             Extension properties for TraceProcess that include necessary .NET values
817             
818             TODO This implementation is poor at idenitfying the ParentPID, 64bitness, and Start/End times
819             </summary>
820         </member>
821         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.RuntimeVersion">
822             <summary>
823             Returns the textual version of the .NET Framework
824             </summary>
825         </member>
826         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.StartupFlags">
827             <summary>
828             Returns the .NET startup flags
829             </summary>
830         </member>
831         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.RuntimeBuiltTime">
832             <summary>
833             Date and time of when the runtime was built
834             This is useful when a more detailed version is not present
835             </summary>
836         </member>
837         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GC">
838             <summary>
839             Garbage Collector (GC) specific details about this process
840             </summary>
841         </member>
842         <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GCStart">
843             <summary>
844             Fired on the start of a GC
845             </summary>
846         </member>
847         <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.GCEnd">
848             <summary>
849             Fired at the end of the GC.  Given the nature of the GC, it is possible that multiple GCs will be inflight at the same time.
850             </summary>
851         </member>
852         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JIT">
853             <summary>
854             Just-in-time compilation (JIT) specific details about this process
855             </summary>
856         </member>
857         <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JITMethodStart">
858             <summary>
859             Fired when a managed method is starting to compile (jit)
860             </summary>
861         </member>
862         <member name="E:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.JITMethodEnd">
863             <summary>
864             Fired when a managed method is done compiling (jitting).  Given the nature of the JIT, it is possible that multiple methods will be compiled at the same time.
865             </summary>
866         </member>
867         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.HasAnyKnownOptimizationTier">
868             <summary>
869             Indicates whether any of the jitted method code versions have a known optimization tier
870             </summary>
871         </member>
872         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.IsTieredCompilationEnabled">
873             <summary>
874             Indicates whether tiered compilation is enabled
875             </summary>
876         </member>
877         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.ToString">
878             <summary>
879             An XML representation of the TraceEventProcess (for debugging)
880             </summary>
881         </member>
882         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime.SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
883             <summary>
884             Gathers relevant details about the processes in the event source
885             </summary>
886             <param name="source"></param>
887         </member>
888         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector">
889             <summary>
890             Garbage Collector (GC) specific details about this process
891             </summary>
892         </member>
893         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.Stats">
894             <summary>
895             Process view of GC statistics
896             </summary>
897         </member>
898         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.Generations">
899             <summary>
900             Process view of GC generational statistics
901             </summary>
902         </member>
903         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceGarbageCollector.GCs">
904             <summary>
905             Process view of all GCs
906             </summary>
907         </member>
908         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler">
909             <summary>
910             Just-in-time compilation (JIT) specific details about this process
911             </summary>
912         </member>
913         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler.Stats">
914             <summary>
915             Process view of JIT statistics
916             </summary>
917         </member>
918         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceJitCompiler.Methods">
919             <summary>
920             Process view of all methods jitted
921             </summary>
922         </member>
923         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC">
924             <summary>
925             
926             </summary>
927         </member>
928         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Number">
929             <summary>
930             Primary GC information
931             </summary>
932         </member>
933         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Type">
934             <summary>
935             Type of the GC, eg. NonConcurrent, Background or Foreground
936             </summary>
937         </member>
938         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Reason">
939             <summary>
940             Reason for the GC, eg. exhausted small heap, etc.
941             </summary>
942         </member>
943         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.Generation">
944             <summary>
945             Generation of the heap collected.  If you compare Generation at the start and stop GC events they may differ.
946             </summary>
947         </member>
948         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.StartRelativeMSec">
949             <summary>
950             Time relative to the start of the trace.  Useful for ordering
951             </summary>
952         </member>
953         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.DurationMSec">
954             <summary>
955             Duration of the GC, excluding the suspension time
956             </summary>
957         </member>
958         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseDurationMSec">
959             <summary>
960             Duration the EE suspended the process
961             </summary>
962         </member>
963         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.SuspendDurationMSec">
964             <summary>
965             Time the EE took to suspend all the threads
966             </summary>
967         </member>
968         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PercentTimeInGC">
969             <summary>
970             Percentage time the GC took compared to the process lifetime
971             </summary>
972         </member>
973         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.ProcessCpuMSec">
974             <summary>
975             The number of CPU samples gathered for the lifetime of this process
976             </summary>
977         </member>
978         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GCCpuMSec">
979             <summary>
980             The number of CPU samples gathered during a GC
981             </summary>
982         </member>
983         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapMarkTimes">
984             <summary>
985             Mark time information per heap.  Key is the heap number
986             </summary>
987         </member>
988         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.DurationSinceLastRestartMSec">
989             <summary>
990             Time since the last EE restart
991             </summary>
992         </member>
993         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseStartRelativeMSec">
994              <summary>
995             Realtive time to the trace of when the GC pause began
996              </summary>
997         </member>
998         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsComplete">
999             <summary>
1000             Marks if the GC is in a completed state
1001             </summary>
1002         </member>
1003         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.ServerGcHeapHistories">
1004             <summary>
1005             Server GC histories
1006             </summary>
1007         </member>
1008         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocedSinceLastGCBasedOnAllocTickMB">
1009             <summary>
1010             Amount of memory allocated since last GC.  Requires GCAllocationTicks enabled.  The 
1011             data is split into small and large heaps
1012             </summary>
1013         </member>
1014         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapCount">
1015             <summary>
1016             Number of heaps.  -1 is the default
1017             </summary>
1018         </member>
1019         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetPinnedObjectSizes">
1020             <summary>
1021             Calculate the size of all pinned objects
1022             </summary>
1023             <returns></returns>
1024         </member>
1025         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetPinnedObjectPercentage">
1026             <summary>
1027             Percentage of the pinned objects created by the user
1028             </summary>
1029             <returns></returns>
1030         </member>
1031         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetTotalGCTime">
1032             <summary>
1033             Total time taken by the GC
1034             </summary>
1035             <returns></returns>
1036         </member>
1037         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GCGenerationName">
1038             <summary>
1039             Friendly GC name including type, reason and generation
1040             </summary>
1041         </member>
1042         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizeAfterMB">
1043             <summary>
1044             Heap size after GC (mb)
1045             </summary>
1046         </member>
1047         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PromotedMB">
1048             <summary>
1049             Amount of memory promoted with GC (mb)
1050             </summary>
1051         </member>
1052         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.SurvivalPercent(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1053             <summary>
1054             Memory survival percentage by generation
1055             </summary>
1056             <param name="gen"></param>
1057             <returns></returns>
1058         </member>
1059         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenSizeAfterMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1060             <summary>
1061             Heap size by generation after GC (mb)
1062             </summary>
1063             <param name="gen"></param>
1064             <returns></returns>
1065         </member>
1066         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenFragmentationMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1067             <summary>
1068             Heap fragmentation by generation (mb)
1069             </summary>
1070             <param name="gen"></param>
1071             <returns></returns>
1072         </member>
1073         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenFragmentationPercent(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1074             <summary>
1075             Percentage of heap fragmented by generation 
1076             </summary>
1077             <param name="gen"></param>
1078             <returns></returns>
1079         </member>
1080         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenInMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1081             <summary>
1082             Amount of memory at the start of the GC by generation (mb)
1083             </summary>
1084             <param name="gen"></param>
1085             <returns></returns>
1086         </member>
1087         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenOutMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1088             <summary>
1089             Amount of memory after the gc by generation (mb)
1090             </summary>
1091             <param name="gen"></param>
1092             <returns></returns>
1093         </member>
1094         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenPromotedMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1095             <summary>
1096             Memory promoted by generation (mb)
1097             Note that in 4.0 TotalPromotedSize is not entirely accurate (since it doesn't
1098             count the pins that got demoted. We could consider using the PerHeap event data
1099             to compute the accurate promoted size. 
1100             In 4.5 this is accurate.
1101             </summary>
1102             <param name="gen"></param>
1103             <returns></returns>
1104         </member>
1105         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenBudgetMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1106             <summary>
1107             Heap budget by generation (mb)
1108             </summary>
1109             <param name="gen"></param>
1110             <returns></returns>
1111         </member>
1112         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenObjSizeAfterMB(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1113             <summary>
1114             Object size by generation after GC (mb)
1115             </summary>
1116             <param name="gen"></param>
1117             <returns></returns>
1118         </member>
1119         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapCondemnedReasons">
1120             <summary>
1121             Heap condemned reasons by GC
1122             </summary>
1123         </member>
1124         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.FindFirstHighestCondemnedHeap">
1125             <summary>
1126             Identify the first and greatest condemned heap
1127             </summary>
1128             <returns></returns>
1129         </member>
1130         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsLowEphemeral">
1131             <summary>
1132             Indicates that the GC has low ephemeral space
1133             </summary>
1134             <returns></returns>
1135         </member>
1136         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.IsNotCompacting">
1137             <summary>
1138             Indicates that the GC was not compacting
1139             </summary>
1140             <returns></returns>
1141         </member>
1142         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetCondemnedReasons(System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Analysis.GC.CondemnedReasonGroup,System.Int32})">
1143             <summary>
1144             Returns the condemned reason for this heap
1145             </summary>
1146             <param name="ReasonsInfo"></param>
1147         </member>
1148         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PerHeapHistories">
1149             <summary>
1150             Per heap statistics
1151             </summary>
1152         </member>
1153         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.TotalPinnedPlugSize">
1154             <summary>
1155             Sum of the pinned plug sizes
1156             </summary>
1157         </member>
1158         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.TotalUserPinnedPlugSize">
1159             <summary>
1160             Sum of the user created pinned plug sizes
1161             </summary>
1162         </member>
1163         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapStats">
1164             <summary>
1165             Per heap statstics
1166             </summary>
1167         </member>
1168         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.LOHWaitThreads">
1169             <summary>
1170             Large object heap wait threads
1171             </summary>
1172         </member>
1173         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GlobalHeapHistory">
1174             <summary>
1175             Process heap statistics
1176             </summary>
1177         </member>
1178         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.FreeList">
1179             <summary>
1180             Free list efficiency statistics
1181             </summary>
1182         </member>
1183         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocedSinceLastGCMB">
1184             <summary>
1185             Memory allocated since last GC (mb)
1186             </summary>
1187         </member>
1188         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.RatioPeakAfter">
1189             <summary>
1190             Ratio of heap size before and after
1191             </summary>
1192         </member>
1193         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.AllocRateMBSec">
1194             <summary>
1195             Ratio of allocations since last GC over time executed
1196             </summary>
1197         </member>
1198         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizePeakMB">
1199             <summary>
1200             Peak heap size before GCs (mb)
1201             </summary>
1202         </member>
1203         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.UserAllocated">
1204             <summary>
1205             Per generation view of user allocated data
1206             </summary>
1207         </member>
1208         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.HeapSizeBeforeMB">
1209             <summary>
1210             Heap size before gc (mb)
1211             </summary>
1212         </member>
1213         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GenSizeBeforeMB">
1214             <summary>
1215             Per generation view of heap sizes before GC (mb)
1216             </summary>
1217         </member>
1218         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.PauseTimePercentageSinceLastGC">
1219             <summary>
1220             This represents the percentage time spent paused for this GC since the last GC completed. 
1221             </summary>
1222         </member>
1223         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetUserAllocated(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC},Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC,Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1224             <summary>
1225             Get what's allocated into gen0 or gen3. For server GC this gets the total for 
1226             all heaps.
1227             </summary>
1228         </member>
1229         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.GetUserAllocatedPerHeap(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC},Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC,System.Int32,Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
1230             <summary>
1231             For a given heap, get what's allocated into gen0 or gen3.
1232             We calculate this differently on 4.0, 4.5 Beta and 4.5 RC+.
1233             The caveat with 4.0 and 4.5 Beta is that when survival rate is 0,
1234             We don't know how to calculate the allocated - so we just use the
1235             last GC's budget (We should indicate this in the tool)
1236             </summary>
1237         </member>
1238         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.TraceGC.is20Event">
1239             <summary>
1240             Legacy properties that need to be refactored and removed
1241             </summary>
1242         </member>
1243         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.CondemnedReasonGroup">
1244             <summary>
1245             Condemned reasons are organized into the following groups.
1246             Each group corresponds to one or more reasons. 
1247             Groups are organized in the way that they mean something to users. 
1248             </summary>
1249         </member>
1250         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.BGCAllocWaitInfo">
1251             <summary>
1252             Background GC allocation information
1253             </summary>
1254         </member>
1255         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.ThreadWorkSpan">
1256             <summary>
1257             Span of thread work recorded by CSwitch or CPU Sample Profile events
1258             </summary>
1259         </member>
1260         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.InducedType">
1261             <summary>
1262             Reason for an induced GC
1263             </summary>
1264         </member>
1265         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.EncodedCondemnedReasons">
1266             <summary>
1267             CondemnedReason
1268             </summary>
1269         </member>
1270         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCCondemnedReasons">
1271             <summary>
1272             Heap condemned reason
1273             </summary>
1274         </member>
1275         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCCondemnedReasons.CondemnedReasonGroups">
1276             <summary>
1277             This records which reasons are used and the value. Since the biggest value
1278             we need to record is the generation number a byte is sufficient.
1279             </summary>
1280         </member>
1281         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.MarkInfo">
1282             <summary>
1283             Container for mark times
1284             </summary>
1285         </member>
1286         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCPerHeapHistory">
1287             <summary>
1288             Per heap statistics
1289             </summary>
1290         </member>
1291         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCGlobalHeapHistory">
1292             <summary>
1293             Process heap statistics
1294             </summary>
1295         </member>
1296         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCHeapStats">
1297             <summary>
1298             Per heap stastics
1299             </summary>
1300         </member>
1301         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.FreeListEfficiency">
1302              <summary>
1303              Approximations we do in this function for V4_5 and prior:
1304              On 4.0 we didn't seperate free list from free obj, so we just use fragmentation (which is the sum)
1305              as an approximation. This makes the efficiency value a bit larger than it actually is.
1306              We don't actually update in for the older gen - this means we only know the out for the younger 
1307              gen which isn't necessarily all allocated into the older gen. So we could see cases where the 
1308              out is > 0, yet the older gen's free list doesn't change. Using the younger gen's out as an 
1309              approximation makes the efficiency value larger than it actually is.
1310             
1311              For V4_6 this requires no approximation.
1312             
1313              
1314              </summary>
1315         </member>
1316         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats">
1317             <summary>
1318             Statistical garbage collector (GC) information about a managed process
1319             </summary>
1320         </member>
1321         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.Count">
1322             <summary>
1323             Number of GC's for this process
1324             </summary>
1325         </member>
1326         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumInduced">
1327             <summary>
1328             Number of GC's which were induced, eg. GC.Collect, etc.
1329             </summary>
1330         </member>
1331         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.PinnedObjectSizes">
1332             <summary>
1333             Total size of the pinned objects seen at collection time
1334             </summary>
1335         </member>
1336         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.PinnedObjectPercentage">
1337             <summary>
1338             Of all the memory that is current pinned, how much of it is from pinned objects
1339             </summary>
1340         </member>
1341         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumWithPinEvents">
1342             <summary>
1343             Number of GC's that contained pinned objects
1344             </summary>
1345         </member>
1346         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.NumWithPinPlugEvents">
1347             <summary>
1348             Number of GC's that contained pin plugs
1349             </summary>
1350         </member>
1351         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxPauseDurationMSec">
1352             <summary>
1353             The longest pause duration (ms)
1354             </summary>
1355         </member>
1356         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanPauseDurationMSec">
1357             <summary>
1358             Avarege pause duration (ms)
1359             </summary>
1360         </member>
1361         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanSizeAfterMB">
1362             <summary>
1363             Average heap size after a GC (mb)
1364             </summary>
1365         </member>
1366         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanSizePeakMB">
1367             <summary>
1368             Average peak heap size (mb)
1369             </summary>
1370         </member>
1371         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MeanCpuMSec">
1372             <summary>
1373             Average exclusive cpu samples (ms) during GC's
1374             </summary>
1375         </member>
1376         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalPauseTimeMSec">
1377             <summary>
1378             Total GC pause time (ms)
1379             </summary>
1380         </member>
1381         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxSuspendDurationMSec">
1382             <summary>
1383             Max suspend duration (ms), should be very small
1384             </summary>
1385         </member>
1386         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxSizePeakMB">
1387             <summary>
1388             Max peak heap size (mb)
1389             </summary>
1390         </member>
1391         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.MaxAllocRateMBSec">
1392             <summary>
1393             Max allocation per second (mb/sec)
1394             </summary>
1395         </member>
1396         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalAllocatedMB">
1397             <summary>
1398             Total allocations in the process lifetime (mb)
1399             </summary>
1400         </member>
1401         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalCpuMSec">
1402             <summary>
1403             Total exclusive cpu samples (ms)
1404             </summary>
1405         </member>
1406         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalPromotedMB">
1407             <summary>
1408             Total memory promoted between generations (mb)
1409             </summary>
1410         </member>
1411         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalSizeAfterMB">
1412             <summary>
1413             (obsolete) Total size of heaps after GC'ss (mb)
1414             </summary>
1415         </member>
1416         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.TotalSizePeakMB">
1417             <summary>
1418             (obsolete) Total peak heap sizes (mb)
1419             </summary>
1420         </member>
1421         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.Interesting">
1422             <summary>
1423             Indication if this process is interesting from a GC pov
1424             </summary>
1425         </member>
1426         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.FinalizedObjects">
1427             <summary>
1428             List of finalizer objects
1429             </summary>
1430         </member>
1431         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.GetGCPauseTimePercentage">
1432             <summary>
1433             Percentage of time spent paused as compared to the process lifetime
1434             </summary>
1435             <returns></returns>
1436         </member>
1437         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.ProcessDuration">
1438             <summary>
1439             Running time of the process.  Measured as time spent between first and last GC event observed
1440             </summary>
1441         </member>
1442         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.GCVersionInfoMismatch">
1443             <summary>
1444             Means it detected that the ETW information is in a format it does not understand.
1445             </summary>
1446         </member>
1447         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.IsServerGCUsed">
1448             <summary>
1449             Indicator of if ServerGC is enabled (1).  -1 indicates that not enough events have been processed to know for sure.
1450             We don't necessarily have the GCSettings event (only fired at the beginning if we attach)
1451             So we have to detect whether we are running server GC or not.
1452             Till we get our first GlobalHeapHistory event which indicates whether we use server GC 
1453             or not this remains -1.
1454             </summary>
1455         </member>
1456         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.HeapCount">
1457             <summary>
1458             Number of heaps.  -1 indicates that not enough events have been processed to know for sure.
1459             </summary>
1460         </member>
1461         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.GC.GCStats.HasDetailedGCInfo">
1462             <summary>
1463             Indicator if PerHeapHistories is present
1464             </summary>
1465         </member>
1466         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats">
1467             <summary>
1468             Process statistics about JIT'd code
1469             </summary>
1470         </member>
1471         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.Count">
1472             <summary>
1473             Number of JITT'd methods
1474             </summary>
1475         </member>
1476         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalCpuTimeMSec">
1477             <summary>
1478             Total cpu samples for this process
1479             </summary>
1480         </member>
1481         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountForeground">
1482             <summary>
1483             Number of methods JITT'd by foreground threads just prior to execution
1484             </summary>
1485         </member>
1486         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalForegroundCpuTimeMSec">
1487             <summary>
1488             Total time spent compiling methods on foreground threads
1489             </summary>
1490         </member>
1491         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountBackgroundMultiCoreJit">
1492             <summary>
1493             Number of methods JITT'd by the multicore JIT background threads
1494             </summary>
1495         </member>
1496         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalBackgroundMultiCoreJitCpuTimeMSec">
1497             <summary>
1498             Total time spent compiling methods on background threads for multicore JIT
1499             </summary>
1500         </member>
1501         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.CountBackgroundTieredCompilation">
1502             <summary>
1503             Number of methods JITT'd by the tiered compilation background threads
1504             </summary>
1505         </member>
1506         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalBackgroundTieredCompilationCpuTimeMSec">
1507             <summary>
1508             Total time spent compiling methods on background threads for tiered compilation
1509             </summary>
1510         </member>
1511         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalILSize">
1512             <summary>
1513             Total IL size for all JITT'd methods
1514             </summary>
1515         </member>
1516         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.TotalNativeSize">
1517             <summary>
1518             Total native code size for all JITT'd methods
1519             </summary>
1520         </member>
1521         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.IsClr4">
1522             <summary>
1523             Indication if this is running on .NET 4.x+
1524             </summary>
1525         </member>
1526         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.Interesting">
1527             <summary>
1528             Indicates if this process has sufficient JIT activity to be interesting
1529             </summary>
1530         </member>
1531         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJitAbortedAtMSec">
1532             <summary>
1533             Background JIT: Time Jit was aborted (ms)
1534             </summary>
1535         </member>
1536         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadNameBeforeAbort">
1537             <summary>
1538             Background JIT: Assembly name of last assembly loaded before JIT aborted
1539             </summary>
1540         </member>
1541         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadBeforeAbortMSec">
1542             <summary>
1543             Background JIT: Relative start time of last assembly loaded before JIT aborted
1544             </summary>
1545         </member>
1546         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.LastAssemblyLoadBeforeAbortSuccessful">
1547             <summary>
1548             Background JIT: Indication if the last assembly load was successful before JIT aborted
1549             </summary>
1550         </member>
1551         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJitThread">
1552             <summary>
1553             Background JIT: Thread id of the background JIT
1554             </summary>
1555         </member>
1556         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.BackgroundJITEventsOn">
1557             <summary>
1558             Background JIT: Indication that background JIT events are enabled
1559             </summary>
1560         </member>
1561         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.HasAtLeastOneKnownOptimizationTier">
1562             <summary>
1563             Indicates whether any of the jitted method code versions in this process have a known optimization tier
1564             </summary>
1565         </member>
1566         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.InliningSuccesses">
1567             <summary>
1568             List of successfully inlinded methods
1569             </summary>
1570         </member>
1571         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.InliningFailures">
1572             <summary>
1573             List of failed inlined methods
1574             </summary>
1575         </member>
1576         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.RecordedModules">
1577             <summary>
1578             Modules encountered while processing managed samples
1579             </summary>
1580         </member>
1581         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.SymbolsMissing">
1582             <summary>
1583             List of modules whose symbols were not successfully loaded
1584             </summary>
1585         </member>
1586         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.AddMethodToStatistics(Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod)">
1587             <summary>
1588             Aggregate a method to be included in the statistics
1589             </summary>
1590             <param name="method"></param>
1591         </member>
1592         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.MethodComplete(Microsoft.Diagnostics.Tracing.Analysis.TraceLoadedDotNetRuntime,Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadTraceDataBase,System.String,System.Int32,System.Boolean@)">
1593             <summary>
1594             Legacgy
1595             </summary>
1596         </member>
1597         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.JITStats.MethodKey">
1598             <summary>
1599             Uniquely represents a method within a process.
1600             Used as a lookup key for data structures.
1601             </summary>
1602         </member>
1603         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.InliningSuccessResult">
1604             <summary>
1605             JIT inlining successes
1606             </summary>
1607         </member>
1608         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.InliningFailureResult">
1609             <summary>
1610             JIT inlining failures
1611             </summary>
1612         </member>
1613         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod">
1614             <summary>
1615             Per method information
1616             </summary>
1617         </member>
1618         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.CompileCpuTimeMSec">
1619             <summary>
1620             Time taken to compile the method
1621             </summary>
1622         </member>
1623         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ILSize">
1624             <summary>
1625             IL size of method
1626             </summary>
1627         </member>
1628         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.NativeSize">
1629             <summary>
1630             Native code size of method
1631             </summary>
1632         </member>
1633         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.StartTimeMSec">
1634             <summary>
1635             Relative start time of JIT'd method
1636             </summary>
1637         </member>
1638         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.MethodName">
1639             <summary>
1640             Method name
1641             </summary>
1642         </member>
1643         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ModuleILPath">
1644             <summary>
1645             Module name
1646             </summary>
1647         </member>
1648         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ThreadID">
1649             <summary>
1650             Thread id where JIT'd
1651             </summary>
1652         </member>
1653         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.IsBackground">
1654             <summary>
1655             Indication of if it was JIT'd in the background
1656             </summary>
1657         </member>
1658         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.CompilationThreadKind">
1659             <summary>
1660             Indication of if it was JIT'd in the background and why
1661             </summary>
1662         </member>
1663         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.DistanceAhead">
1664             <summary>
1665             Amount of time the method was forcasted to JIT
1666             </summary>
1667         </member>
1668         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.BlockedReason">
1669             <summary>
1670             Indication of if the background JIT request was blocked and why
1671             </summary>
1672         </member>
1673         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.RunCpuTimeMSec">
1674             <summary>
1675             Number of cpu samples for this method
1676             </summary>
1677         </member>
1678         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.OptimizationTier">
1679             <summary>
1680             The optimization tier at which the method was jitted
1681             </summary>
1682         </member>
1683         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.VersionID">
1684             <summary>
1685             The version id that is created by the runtime code versioning feature. This is an incrementing counter that starts at 0 for each method.
1686             The ETW events historically name this as the ReJITID event parameter in the payload, but we have now co-opted its usage.
1687             </summary>
1688         </member>
1689         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.JIT.TraceJittedMethod.ForegroundMethodRequestTimeMSec">
1690             <summary>
1691             Legacy
1692             </summary>
1693         </member>
1694         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcessesExtensions">
1695             <summary>
1696             TraceProcess Extension methods
1697             </summary>
1698         </member>
1699         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex">
1700             <summary>
1701             Each process is given a unique index from 0 to TraceProcesses.Count-1 and unlike 
1702             the OS Process ID, is  unambiguous (The OS process ID can be reused after a
1703             process dies).  ProcessIndex represents this index.   By using an enum rather than an int
1704             it allows stronger typing and reduces the potential for errors.  
1705             <para>
1706             It is expected that users of this library might keep arrays of size TraceProcesses.Count to store
1707             additional data associated with a process in the trace.  
1708             </para>
1709             </summary>
1710         </member>
1711         <member name="F:Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex.Invalid">
1712             <summary>
1713             Returned when no appropriate Process exists.  
1714             </summary>
1715         </member>
1716         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses">
1717             <summary>
1718             A TraceProcesses instance represents the list of processes in the Event log.  
1719             
1720             TraceProcesses are IEnumerable, and will return the processes in order of creation time.   
1721             
1722             This is a copy of the reduced code from TraceLog!TraceProcesses (removal of elements that
1723             depend on TraceLog - there is a lot of them)
1724             </summary>
1725         </member>
1726         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Log">
1727             <summary>
1728             The log associated with this collection of processes. 
1729             </summary> 
1730         </member>
1731         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Count">
1732             <summary>
1733             The count of the number of TraceProcess instances in the TraceProcesses list. 
1734             </summary>
1735         </member>
1736         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.Item(Microsoft.Diagnostics.Tracing.Analysis.ProcessIndex)">
1737             <summary>
1738             Each process that occurs in the log is given a unique index (which unlike the PID is unique), that
1739             ranges from 0 to Count - 1.   Return the TraceProcess for the given index.  
1740             </summary>
1741         </member>
1742         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.ToString">
1743             <summary>
1744             An XML representation of the TraceEventProcesses (for debugging)
1745             </summary>
1746         </member>
1747         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Analysis#TraceProcess}#GetEnumerator">
1748             <summary>
1749             Enumerate all the processes that occurred in the trace log, ordered by creation time.   
1750             </summary> 
1751         </member>
1752         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.GetProcess(System.Int32,System.Int64)">
1753             <summary>
1754             Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
1755             and whose offset start time is less than 'timeQPC'. If 'timeQPC' is during the thread's lifetime this
1756             is guaranteed to be the correct process. Using timeQPC = TraceLog.sessionEndTimeQPC will return the
1757             last process with the given PID, even if it had died.
1758             </summary>
1759         </member>
1760         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcesses.#ctor(Microsoft.Diagnostics.Tracing.Analysis.TraceLog,Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
1761             <summary>
1762             TraceProcesses represents the entire ETL moduleFile log.   At the node level it is organized by threads.  
1763             
1764             The TraceProcesses also is where we put various caches that are independent of the process involved. 
1765             These include a cache for TraceModuleFile that represent native images that can be loaded into a
1766             process, as well as the process lookup tables and a cache that remembers the last calls to
1767             GetNameForAddress(). 
1768             </summary>
1769         </member>
1770         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess">
1771             <summary>
1772             A step towards a refactored TraceProcess that will move down the dependcy chain from
1773             TraceLog to Source.  This is only the portion of TraceProcess that is needed for ManagedProcess
1774             to exist.  Also note, that the surface area is intended to match 100% with
1775             Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.  The namespace change is intention to avoid 
1776             collision of the name and to indicate that it is moving down the depdnency chain.
1777             
1778             This is a slightly modified copy of the code from TraceLog!TraceProcess
1779             </summary>
1780         </member>
1781         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ProcessID">
1782             <summary>
1783             The OS process ID associated with the process. It is NOT unique across the whole log.  Use
1784             ProcessIndex for that. 
1785             </summary>
1786         </member>
1787         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ProcessIndex">
1788             <summary>
1789             The index into the logical array of TraceProcesses for this process. Unlike ProcessID (which
1790             may be reused after the process dies, the process index is unique in the log. 
1791             </summary>
1792         </member>
1793         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Name">
1794             <summary>
1795             This is a short name for the process.  It is the image file name without the path or suffix.  
1796             </summary>
1797         </member>
1798         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.CommandLine">
1799             <summary>
1800             The command line that started the process (may be empty string if unknown)
1801             </summary>
1802         </member>
1803         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ImageFileName">
1804             <summary>
1805             The path name of the EXE that started the process (may be empty string if unknown)
1806             </summary>
1807         </member>
1808         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.StartTime">
1809             <summary>
1810             The time when the process started.  Returns the time the trace started if the process existed when the trace started.  
1811             </summary>
1812         </member>
1813         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.StartTimeRelativeMsec">
1814             <summary>
1815             The time when the process started.  Returns the time the trace started if the process existed when the trace started.  
1816             Returned as the number of MSec from the beginning of the trace. 
1817             </summary>
1818         </member>
1819         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EndTime">
1820             <summary>
1821             The time when the process ended.  Returns the time the trace ended if the process existed when the trace ended.  
1822             Returned as a DateTime
1823             </summary>
1824         </member>
1825         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EndTimeRelativeMsec">
1826             <summary>
1827             The time when the process ended.  Returns the time the trace ended if the process existed when the trace ended. 
1828             Returned as the number of MSec from the beginning of the trace. 
1829             </summary>
1830         </member>
1831         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ParentID">
1832             <summary>
1833             The process ID of the parent process 
1834             </summary>
1835         </member>
1836         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Parent">
1837             <summary>
1838             The process that started this process.  Returns null if unknown.  
1839             </summary>
1840         </member>
1841         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ExitStatus">
1842             <summary>
1843             If the process exited, the exit status of the process.  Otherwise null. 
1844             </summary>
1845         </member>
1846         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.CPUMSec">
1847             <summary>
1848             The amount of CPU time spent in this process based on the kernel CPU sampling events.   
1849             </summary>
1850         </member>
1851         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Is64Bit">
1852             <summary>
1853             Returns true if the process is a 64 bit process
1854             </summary>
1855         </member>
1856         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Log">
1857             <summary>
1858             The log file associated with the process. 
1859             </summary>
1860         </member>
1861         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.PeakWorkingSet">
1862             <summary>
1863             Peak working set
1864             </summary>
1865         </member>
1866         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.PeakVirtual">
1867             <summary>
1868             Peak virtual size
1869             </summary>
1870         </member>
1871         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.Threads">
1872             <summary>
1873             A list of all the threads that occurred in this process.  
1874             </summary> 
1875         </member>
1876         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.LoadedModules">
1877             <summary>
1878             Returns the list of modules that were loaded by the process.  The modules may be managed or
1879             native, and include native modules that were loaded event before the trace started.  
1880             </summary>
1881         </member>
1882         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EventsInProcess">
1883             <summary>
1884             Filters events to only those for a particular process. 
1885             </summary>
1886         </member>
1887         <member name="P:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.EventsDuringProcess">
1888             <summary>
1889             Filters events to only that occurred during the time the process was alive. 
1890             </summary>
1891             
1892         </member>
1893         <member name="M:Microsoft.Diagnostics.Tracing.Analysis.TraceProcess.ToString">
1894             <summary>
1895             An XML representation of the TraceEventProcess (for debugging)
1896             </summary>
1897         </member>
1898         <member name="T:Microsoft.Diagnostics.Tracing.Analysis.TraceLog">
1899             <summary>
1900             Dummy stubs so Microsoft.Diagnostics.Tracing.Etlx namespace is not necessary
1901             </summary>
1902         </member>
1903         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadata">
1904             <summary>
1905             The parsed metadata.
1906             </summary>
1907         </member>
1908         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfTrace">
1909             <summary>
1910             Information about the trace itself.
1911             </summary>
1912         </member>
1913         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfStream">
1914             <summary>
1915             Information about a single stream in the trace.
1916             </summary>
1917         </member>
1918         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfEnvironment">
1919             <summary>
1920             The environment the trace was taken in.
1921             </summary>
1922         </member>
1923         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfClock">
1924             <summary>
1925             A clock definition in the trace.
1926             </summary>
1927         </member>
1928         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfEvent">
1929             <summary>
1930             A definition of an event.
1931             </summary>
1932         </member>
1933         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataLegacyParser">
1934             <summary>
1935             A manual parser for CtfMetadata.  Eventually this should be replaced when CtfMetadata no longer
1936             uses a custom, BNF style format.
1937             </summary>
1938         </member>
1939         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataParser">
1940             <summary>
1941             The abstract metadata parser class.
1942             </summary>
1943         </member>
1944         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfDeclarationTypes">
1945             <summary>
1946             The types that may be declared in CtfMetatdata.
1947             </summary>
1948         </member>
1949         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfMetadataDeclaration">
1950             <summary>
1951             This class represents the top level entry 
1952             </summary>
1953         </member>
1954         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfPropertyBag">
1955             <summary>
1956             A simple class to make parsing out properties easier.
1957             </summary>
1958         </member>
1959         <member name="T:Microsoft.Diagnostics.Tracing.Ctf.CtfUnresolvedType">
1960             <summary>
1961             Represents a type which has been referenced by name, but has not yet been resolved to a concrete type.
1962             </summary>
1963         </member>
1964         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser">
1965             <summary>
1966             A DynamicTraceEventParser is a parser that understands how to read the embedded manifests that occur in the 
1967             dataStream (System.Diagnostics.Tracing.EventSources do this).   
1968             
1969             See also TDHDynamicTraceEventParser which knows how to read the manifest that are registered globally with
1970             the machine.   
1971             </summary>
1972         </member>
1973         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.ManifestEventID">
1974             <summary>
1975             The event ID for the EventSource manifest emission event.
1976             </summary>
1977         </member>
1978         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource)">
1979             <summary>
1980             Create a new DynamicTraceEventParser (which can parse ETW providers that dump their manifests
1981             to the ETW data stream) an attach it to the ETW data stream 'source'.  
1982             </summary>
1983         </member>
1984         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.DynamicProviders">
1985             <summary>
1986             Returns a list of providers (their manifest) that this TraceParser knows about.   
1987             </summary>
1988         </member>
1989         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.AddDynamicProvider(Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest,System.Boolean)">
1990             <summary>
1991             Given a manifest describing the provider add its information to the parser.  
1992             </summary>
1993         </member>
1994         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.WriteAllManifests(System.String)">
1995             <summary>
1996             Utility method that stores all the manifests known to the DynamicTraceEventParser to the directory 'directoryPath'
1997             </summary>
1998         </member>
1999         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.ReadAllManifests(System.String)">
2000             <summary>
2001             Utility method that read all the manifests the directory 'directoryPath' into the parser.   
2002             Manifests must end in a .man or .manifest.xml suffix.   It will throw an error if
2003             the manifest is incorrect or using unsupported options.  
2004             </summary>        
2005         </member>
2006         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.IsStatic">
2007             <summary>
2008             Override.  
2009             </summary>
2010         </member>
2011         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.DynamicProviderAdded">
2012             <summary>
2013             This event, will be fired any time a new Provider is added to the table
2014             of ETW providers known to this DynamicTraceEventParser.   This includes
2015             when the EventSource manifest events are encountered as well as any
2016             explicit calls to AddDynamicProvider.  (including ReadAllManifests).
2017             
2018             The Parser will filter out duplicate manifest events, however if an
2019             old version of a provider's manifest is encountered, and later a newer
2020             version is encountered, you can receive this event more than once for
2021             a single provider.  
2022             </summary>
2023         </member>
2024         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.GetProviderName">
2025             <summary>
2026             override
2027             </summary>
2028         </member>
2029         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.CheckForDynamicManifest(Microsoft.Diagnostics.Tracing.TraceEvent)">
2030             <summary>
2031             Called on unhandled events to look for manifests.    Returns true if we added a new manifest (which may have updated the lookup table)
2032             </summary>
2033         </member>
2034         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
2035             <summary>
2036             Override 
2037             </summary>
2038         </member>
2039         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData">
2040             <summary>
2041             DynamicTraceEventData is an event that knows how to take runtime information to parse event fields (and payload)
2042             
2043             This meta-data is distilled down to a array of field names and an array of PayloadFetches which contain enough
2044             information to find the field data in the payload blob.   This meta-data is used in the 
2045             DynamicTraceEventData.PayloadNames and DynamicTraceEventData.PayloadValue methods.  
2046             </summary>
2047         </member>
2048         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.Dispatch">
2049             <summary>
2050             Implements TraceEvent interface
2051             </summary>
2052         </member>
2053         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadNames">
2054             <summary>
2055             Implements TraceEvent interface
2056             </summary>
2057         </member>
2058         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadValue(System.Int32)">
2059             <summary>
2060             Implements TraceEvent interface
2061             </summary>
2062         </member>
2063         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.StructValue">
2064             <summary>
2065              Used by PayloadValue to represent a structure.   It is basically a IDictionary with a ToString() that 
2066              returns the value as JSON. 
2067             </summary>
2068         </member>
2069         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.StructValue.Quote(System.Text.StringBuilder,System.String)">
2070             <summary>
2071              Uses C style conventions to quote a string 'value' and append to the string builder 'sb'.
2072              Thus all \ are turned into \\ and all " into \"
2073             </summary>
2074         </member>
2075         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadString(System.Int32,System.IFormatProvider)">
2076             <summary>
2077             Implements TraceEvent interface
2078             </summary>
2079         </member>
2080         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.Target">
2081             <summary>
2082             Implements TraceEvent interface
2083             </summary>
2084         </member>
2085         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.GetCountForArray(Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch,Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetchArrayInfo,System.Int32@)">
2086             <summary>
2087             Returns the count of elements for the array represented by 'arrayInfo'
2088             It also will adjust 'offset' so that it points at the beginning of the
2089             array data (skips past the count). 
2090             </summary>
2091         </member>
2092         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.#ctor(System.UInt16,System.UInt16,System.Type,System.Collections.Generic.IDictionary{System.Int64,System.String})">
2093             <summary>
2094             Constructor for normal types, (int, string) ...)   Also handles Enums (which are ints with a map)
2095             </summary>
2096         </member>
2097         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.#ctor(System.UInt16,Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhInputType,System.Int32)">
2098             <summary>
2099             Initialized a PayloadFetch for a given inType.  REturns Size = DynamicTraceEventData.UNKNOWN_SIZE
2100             if the type is unknown.  
2101             </summary>
2102         </member>
2103         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.ArrayPayloadFetch(System.UInt16,Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch,System.UInt16,System.UInt16)">
2104             <summary>
2105             Returns a payload fetch for a Array.   If you know the count, then you can give it. 
2106             </summary>
2107         </member>
2108         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.Offset">
2109             <summary>
2110             Offset from the beginning of the struct.  
2111             </summary>
2112         </member>
2113         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData.PayloadFetch.LazyMap">
2114             <summary>
2115             LazyMap allow out to set a function that returns a map 
2116             instead of the map itself.   This will be evaluated when the map
2117             is fetched (which gives time for the map table to be populated.  
2118             </summary>
2119         </member>
2120         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicManifestTraceEventData">
2121             <summary>
2122             This class is only used to pretty-print the manifest event itself.   It is pretty special purpose
2123             </summary>
2124         </member>
2125         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventParserState">
2126             <summary>
2127             DynamicTraceEventParserState represents the state of a  DynamicTraceEventParser that needs to be
2128             serialized to a log file.  It does NOT include information about what events are chosen but DOES contain
2129             any other necessary information that came from the ETL data file.  
2130             </summary>
2131         </member>
2132         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest">
2133             <summary>
2134             A ProviderManifest represents the XML manifest associated with the provider.    
2135             </summary>
2136         </member>
2137         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.#ctor(System.IO.Stream,System.Int32)">
2138             <summary>
2139             Read a ProviderManifest from a stream
2140             </summary>
2141         </member>
2142         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.#ctor(System.String)">
2143             <summary>
2144             Read a ProviderManifest from a file. 
2145             </summary>
2146         </member>
2147         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ValidateManifest">
2148             <summary>
2149             Normally ProviderManifest will fail silently if there is a problem with the manifest.  If
2150             you want to see this error you can all this method to force it explicitly  It will
2151             throw if there is a problem parsing the manifest.  
2152             </summary>
2153         </member>
2154         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.WriteToStream(System.IO.Stream)">
2155             <summary>
2156             Writes the manifest to 'outputStream' (as UTF8 XML text)
2157             </summary>
2158         </member>
2159         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.WriteToFile(System.String)">
2160             <summary>
2161             Writes the manifest to a file 'filePath' (as a UTF8 XML)
2162             </summary>
2163             <param name="filePath"></param>
2164         </member>
2165         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ISDynamic">
2166             <summary>
2167              Set if this manifest came from the ETL data stream file.  
2168             </summary>
2169         </member>
2170         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Name">
2171             <summary>
2172             The name of the ETW provider
2173             </summary>
2174         </member>
2175         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Guid">
2176             <summary>
2177             The GUID that uniquey identifies the ETW provider
2178             </summary>
2179         </member>
2180         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Version">
2181              <summary>
2182              The version is defined as the sum of all the version numbers of event version numbers + the number of events defined. 
2183              This has the property that if you follow correct versioning protocol (all versions for a linear sequence where a new  
2184              versions is only modifies is predecessor by adding new events or INCREASING the version numbers of existing events) 
2185              then the version number defined below will always strictly increase.   
2186             
2187              It turns out that .NET Core removed some events from the TplEtwProvider.   To allow removal of truly old events
2188              we also add 100* the largest event ID defined to the version number.  That way if you add new events, even if you
2189              removes some (less than 100) it will consider your 'better'.   
2190              </summary>
2191         </member>
2192         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Id">
2193             <summary>
2194             This is an arbitrary id given when the Manifest is created that
2195             identifies where the manifest came from (e.g. a file name or an event etc). 
2196             </summary>
2197         </member>
2198         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.BetterThan(Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest)">
2199             <summary>
2200             Returns true if the current manifest is better to use than 'otherManifest'   A manifest is
2201             better if it has a larger version number OR, they have the same version number and it is
2202             physically larger (we assume what happened is people added more properties but did not
2203             update the version field appropriately).  
2204             </summary>
2205         </member>
2206         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Manifest">
2207             <summary>
2208             Retrieve manifest as one big string.  Mostly for debugging
2209             </summary>
2210         </member>
2211         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ManifestReader">
2212             <summary>
2213             Retrieve the manifest as XML
2214             </summary>
2215         </member>
2216         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ToString">
2217             <summary>
2218             For debugging
2219             </summary>
2220         </member>
2221         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.ParseProviderEvents(System.Func{Microsoft.Diagnostics.Tracing.Parsers.DynamicTraceEventData,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Boolean)">
2222             <summary>
2223             Call 'callback the the parsed templates for this provider.  If 'callback' returns RejectProvider, bail early
2224             Note that the DynamicTraceEventData passed to the delegate needs to be cloned if you use subscribe to it.   
2225             </summary>
2226         </member>
2227         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.GetTypeForManifestTypeName(System.String)">
2228             <summary>
2229             Returns the .NET type corresponding to the manifest type 'manifestTypeName'
2230             Returns null if it could not be found. 
2231             </summary>
2232         </member>
2233         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ProviderManifest.Init">
2234             <summary>
2235             Initialize the provider.  This means to advance the instance variable 'reader' until it it is at the 'provider' node
2236             in the XML.   It also has the side effect of setting the name and guid.  The rest waits until events are registered. 
2237             </summary>
2238         </member>
2239         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords">
2240             <summary>
2241              Keywords are passed to TraceEventSession.EnableProvider to enable particular sets of
2242             </summary>
2243         </member>
2244         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GC">
2245             <summary>
2246             Logging when garbage collections and finalization happen. 
2247             </summary>
2248         </member>
2249         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHandle">
2250             <summary>
2251             Events when GC handles are set or destroyed.
2252             </summary>
2253         </member>
2254         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Loader">
2255             <summary>
2256             Logging when modules actually get loaded and unloaded. 
2257             </summary>
2258         </member>
2259         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Jit">
2260             <summary>
2261             Logging when Just in time (JIT) compilation occurs. 
2262             </summary>
2263         </member>
2264         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.NGen">
2265             <summary>
2266             Logging when precompiled native (NGEN) images are loaded.
2267             </summary>
2268         </member>
2269         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.StartEnumeration">
2270             <summary>
2271             Indicates that on attach or module load , a rundown of all existing methods should be done
2272             </summary>
2273         </member>
2274         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.StopEnumeration">
2275             <summary>
2276             Indicates that on detach or process shutdown, a rundown of all existing methods should be done
2277             </summary>
2278         </member>
2279         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Security">
2280             <summary>
2281             Events associated with validating security restrictions.
2282             </summary>
2283         </member>
2284         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.AppDomainResourceManagement">
2285             <summary>
2286             Events for logging resource consumption on an app-domain level granularity
2287             </summary>
2288         </member>
2289         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JitTracing">
2290             <summary>
2291             Logging of the internal workings of the Just In Time compiler.  This is fairly verbose.  
2292             It details decisions about interesting optimization (like inlining and tail call) 
2293             </summary>
2294         </member>
2295         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Interop">
2296             <summary>
2297             Log information about code thunks that transition between managed and unmanaged code. 
2298             </summary>
2299         </member>
2300         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Contention">
2301             <summary>
2302             Log when lock contention occurs.  (Monitor.Enters actually blocks)
2303             </summary>
2304         </member>
2305         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Exception">
2306             <summary>
2307             Log exception processing.  
2308             </summary>
2309         </member>
2310         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Threading">
2311             <summary>
2312             Log events associated with the threadpool, and other threading events.  
2313             </summary>
2314         </member>
2315         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JittedMethodILToNativeMap">
2316             <summary>
2317             Dump the native to IL mapping of any method that is JIT compiled.  (V4.5 runtimes and above).  
2318             </summary>
2319         </member>
2320         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.OverrideAndSuppressNGenEvents">
2321             <summary>
2322             If enabled will suppress the rundown of NGEN events on V4.0 runtime (has no effect on Pre-V4.0 runtimes).
2323             </summary>
2324         </member>
2325         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Type">
2326             <summary>
2327             Enables the 'BulkType' event
2328             </summary>
2329         </member>
2330         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapDump">
2331             <summary>
2332             Enables the events associated with dumping the GC heap
2333             </summary>
2334         </member>
2335         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCSampledObjectAllocationHigh">
2336             <summary>
2337             Enables allocation sampling with the 'fast'.  Sample to limit to 100 allocations per second per type.  
2338             This is good for most detailed performance investigations.   Note that this DOES update the allocation
2339             path to be slower and only works if the process start with this on. 
2340             </summary>
2341         </member>
2342         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapSurvivalAndMovement">
2343             <summary>
2344             Enables events associate with object movement or survival with each GC.  
2345             </summary>
2346         </member>
2347         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapCollect">
2348             <summary>
2349             Triggers a GC.  Can pass a 64 bit value that will be logged with the GC Start event so you know which GC you actually triggered.  
2350             </summary>
2351         </member>
2352         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapAndTypeNames">
2353             <summary>
2354             Indicates that you want type names looked up and put into the events (not just meta-data tokens).
2355             </summary>
2356         </member>
2357         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCSampledObjectAllocationLow">
2358             <summary>
2359             Enables allocation sampling with the 'slow' rate, Sample to limit to 5 allocations per second per type.  
2360             This is reasonable for monitoring.    Note that this DOES update the allocation path to be slower
2361             and only works if the process start with this on.  
2362             </summary>
2363         </member>
2364         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCAllObjectAllocation">
2365             <summary>
2366             Turns on capturing the stack and type of object allocation made by the .NET Runtime.   This is only
2367             supported after V4.5.3 (Late 2014)   This can be very verbose and you should seriously using  GCSampledObjectAllocationHigh
2368             instead (and GCSampledObjectAllocationLow for production scenarios).  
2369             </summary>
2370         </member>
2371         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.SupressNGen">
2372             <summary>
2373             This suppresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0 (which does not know about this 
2374             bit and also does not have NGEN PDBS).  
2375             </summary>
2376         </member>
2377         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.PerfTrack">
2378             <summary>
2379             TODO document
2380             </summary>
2381         </member>
2382         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Stack">
2383             <summary>
2384             Also log the stack trace of events for which this is valuable.
2385             </summary>
2386         </member>
2387         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.ThreadTransfer">
2388             <summary>
2389             This allows tracing work item transfer events (thread pool enqueue/dequeue/ioenqueue/iodequeue/a.o.)
2390             </summary>
2391         </member>
2392         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Debugger">
2393             <summary>
2394             .NET Debugger events
2395             </summary>
2396         </member>
2397         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Monitoring">
2398             <summary>
2399             Events intended for monitoring on an ongoing basis.  
2400             </summary>
2401         </member>
2402         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Codesymbols">
2403             <summary>
2404             Events that will dump PDBs of dynamically generated assemblies to the ETW stream.  
2405             </summary>
2406         </member>
2407         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Compilation">
2408             <summary>
2409             Events that provide information about compilation.
2410             </summary>
2411         </member>
2412         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.CompilationDiagnostic">
2413             <summary>
2414             Diagnostic events for diagnosing compilation and pre-compilation features.
2415             </summary>
2416         </member>
2417         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.Default">
2418             <summary>
2419             Recommend default flags (good compromise on verbosity).  
2420             </summary>
2421         </member>
2422         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.JITSymbols">
2423             <summary>
2424             What is needed to get symbols for JIT compiled code.  
2425             </summary>
2426         </member>
2427         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.Keywords.GCHeapSnapshot">
2428             <summary>
2429             This provides the flags commonly needed to take a heap .NET Heap snapshot with ETW.  
2430             </summary>
2431         </member>
2432         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ClrTraceEventParser.State">
2433             <summary>
2434             Fetch the state object associated with this parser and cast it to
2435             the ClrTraceEventParserState type.   This state object contains any
2436             informtion that you need from one event to another to decode events.
2437             (typically ID->Name tables).  
2438             </summary>
2439         </member>
2440         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCHeapStatsTraceData.Depth">
2441             <summary>
2442             Note that this field is derived from teh TotalPromotedSize* fields.  If nothing was promoted, it is possible
2443             that this could give a number that is smaller than what GC/Start or GC/Stop would indicate.  
2444             </summary>
2445         </member>
2446         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeTraceData.Values(System.Int32)">
2447             <summary>
2448             Returns the edge at the given zero-based index (index less than Count).   The returned BulkTypeValues 
2449             points the the data in GCBulkRootEdgeTraceData so it cannot live beyond that lifetime.  
2450             </summary>
2451         </member>
2452         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues">
2453             <summary>
2454             This structure just POINTS at the data in the BulkTypeTraceData.  It can only be used as long as
2455             the BulkTypeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2456             </summary>
2457         </member>
2458         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeID">
2459             <summary>
2460             On the desktop this is the Method Table Pointer
2461             In project N this is the pointer to the EE Type
2462             </summary>
2463         </member>
2464         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.ModuleID">
2465             <summary>
2466             For Desktop this is the Module*
2467             For project N it is image base for the module that the type lives in?
2468             </summary>
2469         </member>
2470         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeNameID">
2471             <summary>
2472             On desktop this is the Meta-data token?
2473             On project N it is the RVA of the typeID
2474             </summary>
2475         </member>
2476         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkTypeValues.TypeName">
2477             <summary>
2478             Note that this method returns the type name with generic parameters in .NET Runtime
2479             syntax   e.g. System.WeakReference`1[System.Diagnostics.Tracing.EtwSession]
2480             </summary>
2481         </member>
2482         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootEdgeTraceData.Values(System.Int32)">
2483             <summary>
2484             Returns the edge at the given zero-based index (index less than Count).   The returned GCBulkRootEdgeValues
2485             points the the data in GCBulkRootEdgeTraceData so it cannot live beyond that lifetime.  
2486             </summary>
2487         </member>
2488         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootEdgeValues">
2489             <summary>
2490             This structure just POINTS at the data in the GCBulkEdgeTraceData.  It can only be used as long as
2491             the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2492             </summary>
2493         </member>
2494         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootConditionalWeakTableElementEdgeTraceData.Values(System.Int32)">
2495             <summary>
2496             Returns the range at the given zero-based index (index less than Count).   The returned GCBulkRootConditionalWeakTableElementEdgeValues 
2497             points the the data in GCBulkRootConditionalWeakTableElementEdgeTraceData so it cannot live beyond that lifetime.  
2498             </summary>
2499         </member>
2500         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootConditionalWeakTableElementEdgeValues">
2501             <summary>
2502             This structure just POINTS at the data in the GCBulkRootConditionalWeakTableElementEdgeTraceData.  It can only be used as long as
2503             the GCBulkRootConditionalWeakTableElementEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2504             </summary>
2505         </member>
2506         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeTraceData.Values(System.Int32)">
2507             <summary>
2508             Returns the node at the given zero-based index (idx less than Count).   The returned GCBulkNodeNodes 
2509             points the the data in GCBulkNodeTraceData so it cannot live beyond that lifetime.  
2510             </summary>
2511         </member>
2512         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeTraceData.UnsafeNodes(System.Int32,Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeUnsafeNodes*)">
2513             <summary>
2514             This unsafe interface may go away.   Use the 'Nodes(idx)' instead 
2515             </summary>
2516         </member>
2517         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkNodeValues">
2518             <summary>
2519             This structure just POINTS at the data in the GCBulkNodeTraceData.  It can only be used as long as
2520             the GCBulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2521             </summary>
2522         </member>
2523         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeTraceData.Values(System.Int32)">
2524             <summary>
2525             Returns the 'idx' th edge.  
2526             The returned GCBulkEdgeEdges cannot live beyond the TraceEvent that it comes from.  
2527             </summary>
2528         </member>
2529         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkEdgeValues">
2530             <summary>
2531             This structure just POINTS at the data in the GCBulkNodeTraceData.  It can only be used as long as
2532             the GCBulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2533             </summary>
2534         </member>
2535         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkSurvivingObjectRangesTraceData.Values(System.Int32)">
2536             <summary>
2537             Returns the range at the given zero-based index (index less than Count).   The returned GCBulkSurvivingObjectRangesValues 
2538             points the the data in GCBulkSurvivingObjectRangesTraceData so it cannot live beyond that lifetime.  
2539             </summary>
2540         </member>
2541         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkSurvivingObjectRangesValues">
2542             <summary>
2543             This structure just POINTS at the data in the GCBulkEdgeTraceData.  It can only be used as long as
2544             the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2545             </summary>
2546         </member>
2547         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkMovedObjectRangesTraceData.Values(System.Int32)">
2548             <summary>
2549             Returns the range at the given zero-based index (index less than Count).   The returned GCBulkSurvivingObjectRangesValues 
2550             points the the data in GCBulkSurvivingObjectRangesTraceData so it cannot live beyond that lifetime.  
2551             </summary>
2552         </member>
2553         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkMovedObjectRangesValues">
2554             <summary>
2555             This structure just POINTS at the data in the GCBulkEdgeTraceData.  It can only be used as long as
2556             the GCBulkEdgeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2557             </summary>
2558         </member>
2559         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens">
2560             <summary>
2561             We keep Heap history for every Generation in 'Gens' 
2562             </summary>
2563         </member>
2564         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.gc_heap_expand_mechanism">
2565             <summary>
2566             Taken from gcrecords.h, used to differentiate heap expansion and compaction reasons
2567             </summary>
2568         </member>
2569         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData">
2570             <summary>
2571             Version 0, PreciseVersion 0.1: Silverlight (x86)
2572             0:041> dt -r2 coreclr!WKS::gc_history_per_heap
2573                +0x000 gen_data         : [5] WKS::gc_generation_data
2574                   +0x000 size_before      : Uint4B/8B       : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2575                   +0x004 size_after       : Uint4B/8B
2576                   +0x008 current_size     : Uint4B/8B
2577                   +0x00c previous_size    : Uint4B/8B
2578                   +0x010 fragmentation    : Uint4B/8B
2579                   +0x014 in               : Uint4B/8B
2580                   +0x018 out              : Uint4B/8B
2581                   +0x01c new_allocation   : Uint4B/8B
2582                   +0x020 surv             : Uint4B/8B
2583                   +0x024 growth           : Uint4B/8B
2584                +0x0c8 mem_pressure        : Uint4B      : 200
2585                +0x0cc mechanisms          : [2] Uint4B  : 204 (expand), 208 (compact)
2586                +0x0d4 gen_condemn_reasons : Uint4B      : 212
2587                +0x0d8 heap_index          : Uint4B      : 216
2588              
2589                clrInstanceId              : byte        : 220
2590             
2591             Version 0, PreciseVersion 0.2: .NET 4.0
2592             0:000> dt -r2 clr!WKS::gc_history_per_heap
2593                +0x000 gen_data         : [5] WKS::gc_generation_data
2594                   +0x000 size_before      : Uint4B/8B      : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2595                   +0x004 size_after       : Uint4B/8B
2596                   +0x008 current_size     : Uint4B/8B
2597                   +0x00c previous_size    : Uint4B/8B
2598                   +0x010 fragmentation    : Uint4B/8B
2599                   +0x014 in               : Uint4B/8B
2600                   +0x018 out              : Uint4B/8B
2601                   +0x01c new_allocation   : Uint4B/8B
2602                   +0x020 surv             : Uint4B/8B
2603                   +0x024 growth           : Uint4B/8B
2604                 +0x0c8 mem_pressure     : Uint4B        : 200
2605                 +0x0cc mechanisms       : [3] Uint4B    : 204 (expand), 208 (compact), 212 (concurrent_compact)
2606                +0x0d8 gen_condemn_reasons : Uint4B      : 216
2607                +0x0dc heap_index       : Uint4B         : 220
2608                
2609                clrInstanceId              : byte        : 224
2610             
2611             vm\gcrecord.h
2612             Etw_GCDataPerHeapSpecial(...)
2613             ...
2614                 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2615                 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2616             
2617             Version 1: ???
2618             
2619             Version 2, PreciseVersion 2.1: .NET 4.5 (x86)
2620             0:000> dt -r2 WKS::gc_history_per_heap
2621              clr!WKS::gc_history_per_heap
2622             +0x000 gen_data         : [5] WKS::gc_generation_data
2623                +0x000 size_before      : Uint4B/8B         : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2624                +0x004 free_list_space_before : Uint4B/8B
2625                +0x008 free_obj_space_before : Uint4B/8B
2626                +0x00c size_after       : Uint4B/8B
2627                +0x010 free_list_space_after : Uint4B/8B
2628                +0x014 free_obj_space_after : Uint4B/8B
2629                +0x018 in               : Uint4B/8B
2630                +0x01c out              : Uint4B/8B
2631                +0x020 new_allocation   : Uint4B/8B
2632                +0x024 surv             : Uint4B/8B
2633             +0x0c8 gen_to_condemn_reasons : WKS::gen_to_condemn_tuning
2634                +0x000 condemn_reasons_gen : Uint4B          : 200
2635                +0x004 condemn_reasons_condition : Uint4B    : 204
2636             +0x0d0 mem_pressure     : Uint4B                : 208
2637             +0x0d4 mechanisms       : [2] Uint4B            : 212 (expand), 216 (compact)
2638             +0x0dc heap_index       : Uint4B                : 220
2639             
2640             vm\gcrecord.h
2641             Etw_GCDataPerHeapSpecial(...)
2642             ...
2643                 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2644                 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2645             
2646             Version 2, PreciseVersion 2.2: .NET 4.5.2 (x86)
2647             0:000> dt -r2 WKS::gc_history_per_heap
2648              clr!WKS::gc_history_per_heap
2649             +0x000 gen_data         : [5] WKS::gc_generation_data
2650                +0x000 size_before      : Uint4B/8B          : [0 - 40), [40 - 80), [80 - 120), [120 - 160), [160 - 200)
2651                +0x004 free_list_space_before : Uint4B/8B
2652                +0x008 free_obj_space_before : Uint4B/8B
2653                +0x00c size_after       : Uint4B/8B
2654                +0x010 free_list_space_after : Uint4B/8B
2655                +0x014 free_obj_space_after : Uint4B/8B
2656                +0x018 in               : Uint4B/8B
2657                +0x01c out              : Uint4B/8B
2658                +0x020 new_allocation   : Uint4B/8B
2659                +0x024 surv             : Uint4B/8B
2660             +0x0c8 gen_to_condemn_reasons : WKS::gen_to_condemn_tuning
2661                +0x000 condemn_reasons_gen : Uint4B          : 200
2662                +0x004 condemn_reasons_condition : Uint4B    : 204
2663             +0x0d0 mem_pressure     : Uint4B                : 208
2664             +0x0d4 mechanisms       : [2] Uint4B            : 212 (expand), 216 (compact)
2665             +0x0dc heap_index       : Uint4B                : 220
2666             +0x0e0 extra_gen0_committed : Uint8B            : 224
2667             
2668             vm\gcrecord.h
2669             Etw_GCDataPerHeapSpecial(...)
2670             ...
2671                 EventDataDescCreate(EventData[0], gc_data_per_heap, datasize);
2672                 EventDataDescCreate(EventData[1], ClrInstanceId, sizeof(ClrInstanceId));
2673             
2674             Version 3: .NET 4.6 (x86)
2675             0:000> dt -r2 WKS::gc_history_per_heap
2676             clr!WKS::gc_history_per_heap
2677                +0x000 gen_data         : [4]                                
2678                 WKS::gc_generation_data                                     
2679                   +0x000 size_before      : Uint4B/8B                          
2680                   +0x004 free_list_space_before : Uint4B/8B                    
2681                   +0x008 free_obj_space_before : Uint4B/8B                     
2682                   +0x00c size_after       : Uint4B/8B                          
2683                   +0x010 free_list_space_after : Uint4B/8B
2684                   +0x014 free_obj_space_after : Uint4B/8B
2685                   +0x018 in               : Uint4B/8B
2686                   +0x01c pinned_surv      : Uint4B/8B
2687                   +0x020 npinned_surv     : Uint4B/8B
2688                   +0x024 new_allocation   : Uint4B/8B
2689                +0x0a0 maxgen_size_info : WKS::maxgen_size_increase          
2690                   +0x000 free_list_allocated : Uint4B/8B                       
2691                   +0x004 free_list_rejected : Uint4B/8B                        
2692                   +0x008 end_seg_allocated : Uint4B/8B                         
2693                   +0x00c condemned_allocated : Uint4B/8B                       
2694                   +0x010 pinned_allocated : Uint4B/8B                          
2695                   +0x014 pinned_allocated_advance : Uint4B/8B                  
2696                   +0x018 running_free_list_efficiency : Uint4B/8B              
2697                +0x0bc gen_to_condemn_reasons : WKS::gen_to_condemn_tuning   
2698                   +0x000 condemn_reasons_gen : Uint4B                       
2699                   +0x004 condemn_reasons_condition : Uint4B                 
2700                +0x0c4 mechanisms       : [2] Uint4B                         
2701                +0x0cc machanism_bits   : Uint4B                             
2702                +0x0d0 heap_index       : Uint4B                             
2703                +0x0d4 extra_gen0_committed : Uint4B/8B                         
2704             
2705             pal\src\eventprovider\lttng\eventprovdotnetruntime.cpp
2706             FireEtXplatGCPerHeapHistory_V3(...)
2707             
2708                  tracepoint(
2709                     DotNETRuntime,
2710                     GCPerHeapHistory_V3,                      x86 offsets
2711                     ClrInstanceID,                          : 0
2712                     (const size_t) FreeListAllocated,       : 2
2713                     (const size_t) FreeListRejected,        : 6
2714                     (const size_t) EndOfSegAllocated,       : 10
2715                     (const size_t) CondemnedAllocated,      : 14
2716                     (const size_t) PinnedAllocated,         : 18
2717                     (const size_t) PinnedAllocatedAdvance,  : 22
2718                     RunningFreeListEfficiency,              : 26
2719                     CondemnReasons0,                        : 30
2720                     CondemnReasons1                         : 34
2721                     );
2722                 tracepoint(
2723                     DotNETRuntime,
2724                     GCPerHeapHistory_V3_1,
2725                     CompactMechanisms,                      : 38
2726                     ExpandMechanisms,                       : 42
2727                     HeapIndex,                              : 46
2728                     (const size_t) ExtraGen0Commit,         : 50
2729                     Count,                                  : 54 (number of WKS::gc_generation_data's)
2730                     Arg15_Struct_Len_,                      : ?? not really sent
2731                     (const int*) Arg15_Struct_Pointer_      : [58 - 98), ...
2732                     );
2733             
2734             Version 3 is now setup to allow "add to the end" scenarios
2735             
2736             </summary>
2737         </member>
2738         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.CondemnReasons0">
2739             <summary>
2740             Returns the condemned generation number
2741             </summary>
2742         </member>
2743         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.CondemnReasons1">
2744             <summary>
2745             Returns the condemned condition
2746             </summary>
2747         </member>
2748         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryTraceData.GenData(Microsoft.Diagnostics.Tracing.Parsers.Clr.Gens)">
2749             <summary>
2750             genNumber is a number from 0 to maxGenData-1.  These are for generation 0, 1, 2, 3 = Large Object Heap
2751             genNumber = 4 is that second pass for Gen 0.  
2752             </summary>
2753         </member>
2754         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData">
2755             <summary>
2756             Version 0: Silverlight (x86), .NET 4.0
2757             [5] WKS::gc_generation_data
2758                +0x000 size_before      : Uint4B/8B
2759                +0x004 size_after       : Uint4B/8B
2760                +0x008 current_size     : Uint4B/8B
2761                +0x00c previous_size    : Uint4B/8B
2762                +0x010 fragmentation    : Uint4B/8B
2763                +0x014 in               : Uint4B/8B
2764                +0x018 out              : Uint4B/8B
2765                +0x01c new_allocation   : Uint4B/8B
2766                +0x020 surv             : Uint4B/8B
2767                +0x024 growth           : Uint4B/8B
2768                
2769             Version 1: ???
2770             
2771             Version 2, PreciseVersion 2.1: .NET 4.5 (x86), .NET 4.5.2 (x86)
2772              [5] WKS::gc_generation_data
2773                +0x000 size_before            : Uint4B/8B
2774                +0x004 free_list_space_before : Uint4B/8B
2775                +0x008 free_obj_space_before  : Uint4B/8B
2776                +0x00c size_after             : Uint4B/8B
2777                +0x010 free_list_space_after  : Uint4B/8B
2778                +0x014 free_obj_space_after   : Uint4B/8B
2779                +0x018 in                     : Uint4B/8B
2780                +0x01c out                    : Uint4B/8B
2781                +0x020 new_allocation         : Uint4B/8B
2782                +0x024 surv                   : Uint4B/8B
2783             
2784             Version 3: .NET 4.6 (x86)
2785             [4] WKS::gc_generation_data                                     
2786                +0x000 size_before            : Uint4B/8B                          
2787                +0x004 free_list_space_before : Uint4B/8B                    
2788                +0x008 free_obj_space_before  : Uint4B/8B                     
2789                +0x00c size_after             : Uint4B/8B                          
2790                +0x010 free_list_space_after  : Uint4B/8B
2791                +0x014 free_obj_space_after   : Uint4B/8B
2792                +0x018 in                     : Uint4B/8B
2793                +0x01c pinned_surv            : Uint4B/8B
2794                +0x020 npinned_surv           : Uint4B/8B
2795                +0x024 new_allocation         : Uint4B/8B
2796             </summary>
2797         </member>
2798         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SizeBefore">
2799             <summary>
2800             Size of the generation before the GC, includes fragmentation
2801             </summary>
2802         </member>
2803         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SizeAfter">
2804             <summary>
2805             Size of the generation after GC.  Includes fragmentation
2806             </summary>
2807         </member>
2808         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.ObjSpaceBefore">
2809             <summary>
2810             Size occupied by objects at the beginning of the GC, discounting fragmentation. 
2811             Only exits on 4.5 RC and beyond.
2812             </summary>
2813         </member>
2814         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Fragmentation">
2815             <summary>
2816             This is the fragmenation at the end of the GC.
2817             </summary>
2818         </member>
2819         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.ObjSizeAfter">
2820             <summary>
2821             Size occupied by objects, discounting fragmentation.
2822             </summary>
2823         </member>
2824         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeListSpaceBefore">
2825             <summary>
2826             This is the free list space (ie, what's threaded onto the free list) at the beginning of the GC.
2827             Only exits on 4.5 RC and beyond.
2828             </summary>
2829         </member>
2830         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeObjSpaceBefore">
2831             <summary>
2832             This is the free obj space (ie, what's free but not threaded onto the free list) at the beginning of the GC.
2833             Only exits on 4.5 RC and beyond.
2834             </summary>
2835         </member>
2836         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeListSpaceAfter">
2837             <summary>
2838             This is the free list space (ie, what's threaded onto the free list) at the end of the GC.
2839             Only exits on 4.5 Beta and beyond.
2840             </summary>
2841         </member>
2842         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.FreeObjSpaceAfter">
2843             <summary>
2844             This is the free obj space (ie, what's free but not threaded onto the free list) at the end of the GC.
2845             Only exits on 4.5 Beta and beyond.
2846             </summary>
2847         </member>
2848         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.In">
2849             <summary>
2850             This is the amount that came into this generation on this GC
2851             </summary>
2852         </member>
2853         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Out">
2854             <summary>
2855             This is the number of bytes survived in this generation.
2856             </summary>
2857         </member>
2858         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.Budget">
2859             <summary>
2860             This is the new budget for the generation
2861             </summary>
2862         </member>
2863         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCPerHeapHistoryGenData.SurvRate">
2864             <summary>
2865             This is the survival rate
2866             </summary>
2867         </member>
2868         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCGlobalHeapHistoryTraceData">
2869             <summary>
2870             Version 0: ???
2871             
2872             Version 1: Silverlight (x86), .NET 4.0, .NET 4.5, .NET 4.5.2
2873             VM\gc.cpp
2874             0:041> dt -r3 WKS::gc_history_global
2875             coreclr!WKS::gc_history_global
2876                +0x000 final_youngest_desired : Uint4B/8B
2877                +0x004 num_heaps        : Uint4B
2878                +0x008 condemned_generation : Int4B
2879                +0x00c gen0_reduction_count : Int4B
2880                +0x010 reason           : 
2881                 reason_alloc_soh = 0n0
2882                 reason_induced = 0n1
2883                 reason_lowmemory = 0n2
2884                 reason_empty = 0n3
2885                 reason_alloc_loh = 0n4
2886                 reason_oos_soh = 0n5
2887                 reason_oos_loh = 0n6
2888                 reason_induced_noforce = 0n7
2889                 reason_gcstress = 0n8
2890                 reason_max = 0n9
2891                +0x014 global_mechanims_p : Uint4B
2892               
2893             FireEtwGCGlobalHeapHistory_V1(gc_data_global.final_youngest_desired, // upcast on 32bit to __int64
2894                                      gc_data_global.num_heaps,
2895                                      gc_data_global.condemned_generation,
2896                                      gc_data_global.gen0_reduction_count,
2897                                      gc_data_global.reason,
2898                                      gc_data_global.global_mechanims_p,
2899                                      GetClrInstanceId());
2900             Version 2: .NET 4.6
2901             clr!WKS::gc_history_global
2902                +0x000 final_youngest_desired : Uint4B/8B
2903                +0x004 num_heaps        : Uint4B
2904                +0x008 condemned_generation : Int4B
2905                +0x00c gen0_reduction_count : Int4B
2906                +0x010 reason           : 
2907                 reason_alloc_soh = 0n0
2908                 reason_induced = 0n1
2909                 reason_lowmemory = 0n2
2910                 reason_empty = 0n3
2911                 reason_alloc_loh = 0n4
2912                 reason_oos_soh = 0n5
2913                 reason_oos_loh = 0n6
2914                 reason_induced_noforce = 0n7
2915                 reason_gcstress = 0n8
2916                 reason_lowmemory_blocking = 0n9
2917                 reason_induced_compacting = 0n10
2918                 reason_lowmemory_host = 0n11
2919                 reason_max = 0n12
2920                +0x014 pause_mode       : Int4B
2921                +0x018 mem_pressure     : Uint4B
2922                +0x01c global_mechanims_p : Uint4B
2923             
2924             FireEtwGCGlobalHeapHistory_V2(gc_data_global.final_youngest_desired, // upcast on 32bit to __int64
2925                                      gc_data_global.num_heaps,
2926                                      gc_data_global.condemned_generation,
2927                                      gc_data_global.gen0_reduction_count,
2928                                      gc_data_global.reason,
2929                                      gc_data_global.global_mechanims_p,
2930                                      GetClrInstanceId());
2931                                      gc_data_global.pause_mode, 
2932                                      gc_data_global.mem_pressure);
2933                                      
2934             </summary>
2935         </member>
2936         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.FinalizeObjectTraceData.TypeName">
2937             <summary>
2938             Gets the full type name including generic parameters in runtime syntax
2939             For example System.WeakReference`1[System.Diagnostics.Tracing.EtwSession]
2940             </summary>
2941         </member>
2942         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWTraceData.Values(System.Int32)">
2943             <summary>
2944             Returns the CCW at the given zero-based index (index less than Count).   The returned GCBulkRootCCWValues 
2945             points the the data in GCBulkRootCCWTraceData so it cannot live beyond that lifetime.  
2946             </summary>
2947         </member>
2948         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWTraceData.ValueSize">
2949             <summary>
2950             Computes the size of one GCBulkRootCCWValues structure.  
2951             TODO FIX NOW Can rip out and make a constant 44 after 6/2014
2952             </summary>
2953         </member>
2954         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootCCWValues">
2955             <summary>
2956             This structure just POINTS at the data in the GCBulkRootCCWTraceData.  It can only be used as long as
2957             the GCBulkRootCCWTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2958             </summary>
2959         </member>
2960         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWTraceData.Values(System.Int32)">
2961             <summary>
2962             Returns the edge at the given zero-based index (index less than Count).   The returned GCBulkRCWValues 
2963             points the the data in GCBulkRCWTraceData so it cannot live beyond that lifetime.  
2964             </summary>
2965         </member>
2966         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRCWValues">
2967             <summary>
2968             This structure just POINTS at the data in the GCBulkRCWTraceData.  It can only be used as long as
2969             the GCBulkRCWTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2970             </summary>
2971         </member>
2972         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootStaticVarTraceData.Values(System.Int32)">
2973             <summary>
2974             Returns 'idx'th static root.   
2975             The returned GCBulkRootStaticVarStatics cannot live beyond the TraceEvent that it comes from.  
2976             The implementation is highly tuned for sequential access.  
2977             </summary>
2978         </member>
2979         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.GCBulkRootStaticVarValues">
2980             <summary>
2981             This structure just POINTS at the data in the GCBulkRootStaticVarTraceData.  It can only be used as long as
2982             the GCBulkRootStaticVarTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
2983             </summary>
2984         </member>
2985         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData.InstructionPointer(System.Int32)">
2986             <summary>
2987             Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
2988             be a thread offset routine (if you get a complete eventToStack).  
2989             </summary>
2990             <param name="index">The index of the frame to fetch.  0 is the CPU EIP, 1 is the Caller of that
2991             routine ...</param>
2992             <returns>The instruction pointer of the specified frame.</returns>
2993         </member>
2994         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrStackWalkTraceData.InstructionPointers">
2995             <summary>
2996             Access to the instruction pointers as a unsafe memory blob
2997             </summary>
2998         </member>
2999         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Clr.ModuleLoadUnloadTraceData.ModuleILFileName">
3000             <summary>
3001             This is simply the file name part of the ModuleILPath.  It is a convenience method. 
3002             </summary>
3003         </member>
3004         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.Threading">
3005             <summary>
3006             Log events associated with the threadpool, and other threading events.  
3007             </summary>
3008         </member>
3009         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.JittedMethodILToNativeMap">
3010             <summary>
3011             Dump the native to IL mapping of any method that is JIT compiled.  (V4.5 runtimes and above).  
3012             </summary>
3013         </member>
3014         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.SupressNGen">
3015             <summary>
3016             This supresses NGEN events on V4.0 (where you have NGEN PDBs), but not on V2.0 (which does not know about this 
3017             bit and also does not have NGEN PDBS).  
3018             </summary>
3019         </member>
3020         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.PerfTrack">
3021             <summary>
3022             TODO document
3023             </summary>
3024         </member>
3025         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.CodeSymbolsRundown">
3026             <summary>
3027             Dump PDBs for dynamically generated modules.  
3028             </summary>
3029         </member>
3030         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrRundownTraceEventParser.Keywords.Compilation">
3031             <summary>
3032             Events that provide information about compilation.
3033             </summary>
3034         </member>
3035         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Clr.ClrTraceEventParserState">
3036             <summary>
3037             ClrTraceEventParserState holds all information that is shared among all events that is
3038             needed to decode Clr events.   This class is registered with the source so that it will be
3039             persisted.  Things in here include
3040             
3041                 * TypeID to TypeName mapping, 
3042             </summary>
3043         </member>
3044         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkNodeTraceData.Values(System.Int32)">
3045             <summary>
3046             Returns the edge at the given zero-based index (index less than Count).   The returned BulkNodeValues 
3047             points the the data in BulkNodeTraceData so it cannot live beyond that lifetime.  
3048             </summary>
3049         </member>
3050         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkNodeValues">
3051             <summary>
3052             This structure just POINTS at the data in the BulkNodeTraceData.  It can only be used as long as
3053             the BulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
3054             </summary>
3055         </member>
3056         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkAttributeTraceData.Values(System.Int32)">
3057             <summary>
3058             Returns the edge at the given zero-based index (index less than Count).   The returned BulkAttributeValues 
3059             points the the data in BulkAttributeTraceData so it cannot live beyond that lifetime.  
3060             </summary>
3061         </member>
3062         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkAttributeValues">
3063             <summary>
3064             This structure just POINTS at the data in the BulkAttributeTraceData.  It can only be used as long as
3065             the BulkAttributeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
3066             </summary>
3067         </member>
3068         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkEdgeTraceData.Values(System.Int32)">
3069             <summary>
3070             Returns the edge at the given zero-based index (index less than Count).   The returned BulkEdgeValues 
3071             points the the data in BulkEdgeTraceData so it cannot live beyond that lifetime.  
3072             </summary>
3073         </member>
3074         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.JSDumpHeap.BulkEdgeValues">
3075             <summary>
3076             This structure just POINTS at the data in the BulkNodeTraceData.  It can only be used as long as
3077             the BulkNodeTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
3078             </summary>
3079         </member>
3080         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser">
3081             <summary>
3082             The KernelTraceEventParser is a class that knows how to decode the 'standard' kernel events.
3083             It exposes an event for each event of interest that users can subscribe to.
3084             
3085             see TraceEventParser for more 
3086             </summary>
3087         </member>
3088         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.KernelSessionName">
3089             <summary>
3090             The special name for the Kernel session
3091             </summary>
3092         </member>
3093         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords">
3094             <summary>
3095             This is passed to TraceEventSession.EnableKernelProvider to enable particular sets of
3096             events.  See http://msdn.microsoft.com/en-us/library/aa363784(VS.85).aspx for more information on them 
3097             </summary>
3098         </member>
3099         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.None">
3100             <summary>
3101             Logs nothing
3102             </summary>
3103         </member>
3104         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskFileIO">
3105             <summary>
3106             Logs the mapping of file IDs to actual (kernel) file names. 
3107             </summary>
3108         </member>
3109         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskIO">
3110             <summary>
3111             Loads the completion of Physical disk activity. 
3112             </summary>
3113         </member>
3114         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ImageLoad">
3115             <summary>
3116             Logs native modules loads (LoadLibrary), and unloads
3117             </summary>
3118         </member>
3119         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.MemoryHardFaults">
3120             <summary>
3121             Logs all page faults that must fetch the data from the disk (hard faults)
3122             </summary>
3123         </member>
3124         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.NetworkTCPIP">
3125             <summary>
3126             Logs TCP/IP network send and receive events. 
3127             </summary>
3128         </member>
3129         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Process">
3130             <summary>
3131             Logs process starts and stops.
3132             </summary>
3133         </member>
3134         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ProcessCounters">
3135             <summary>
3136             Logs process performance counters (TODO When?) (Vista+ only)
3137             see KernelTraceEventParser.ProcessPerfCtr, ProcessPerfCtrTraceData
3138             </summary>
3139         </member>
3140         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Profile">
3141             <summary>
3142             Sampled based profiling (every msec) (Vista+ only) (expect 1K events per proc per second)
3143             </summary>
3144         </member>
3145         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Thread">
3146             <summary>
3147             Logs threads starts and stops
3148             </summary>
3149         </member>
3150         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ContextSwitch">
3151             <summary>
3152             log thread context switches (Vista only) (can be > 10K events per second)
3153             </summary>
3154         </member>
3155         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DiskIOInit">
3156             <summary>
3157             log Disk operations (Vista+ only)
3158             Generally not TOO volumous (typically less than 1K per second) (Stacks associated with this)
3159             </summary>
3160         </member>
3161         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Dispatcher">
3162             <summary>
3163             Thread Dispatcher (ReadyThread) (Vista+ only) (can be > 10K events per second)
3164             </summary>
3165         </member>
3166         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.FileIO">
3167             <summary>
3168             log file FileOperationEnd (has status code) when they complete (even ones that do not actually
3169             cause Disk I/O).  (Vista+ only)
3170             Generally not TOO volumous (typically less than 1K per second) (No stacks associated with these)
3171             </summary>
3172         </member>
3173         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.FileIOInit">
3174             <summary>
3175             log the start of the File I/O operation as well as the end. (Vista+ only)
3176             Generally not TOO volumous (typically less than 1K per second)
3177             </summary>
3178         </member>
3179         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Memory">
3180             <summary>
3181             Logs all page faults (hard or soft)
3182             Can be pretty volumous (> 1K per second)
3183             </summary>
3184         </member>
3185         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Registry">
3186             <summary>
3187             Logs activity to the windows registry. 
3188             Can be pretty volumous (> 1K per second)
3189             </summary>
3190         </member>
3191         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.SystemCall">
3192             <summary>
3193             log calls to the OS (Vista+ only)
3194             This is VERY volumous (can be > 100K events per second)
3195             </summary>
3196         </member>
3197         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.VirtualAlloc">
3198             <summary>
3199             Log Virtual Alloc calls and VirtualFree.   (Vista+ Only)
3200             Generally not TOO volumous (typically less than 1K per second)
3201             </summary> 
3202         </member>
3203         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.VAMap">
3204             <summary>
3205             Log mapping of files into memory (Win8 and above Only)
3206             Generally low volume.  
3207             </summary>
3208         </member>
3209         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.AdvancedLocalProcedureCalls">
3210             <summary>
3211             Logs Advanced Local Procedure call events. 
3212             </summary>
3213         </member>
3214         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.DeferedProcedureCalls">
3215             <summary>
3216             log defered procedure calls (an Kernel mechanism for having work done asynchronously) (Vista+ only)
3217             </summary> 
3218         </member>
3219         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Driver">
3220             <summary>
3221             Device Driver logging (Vista+ only)
3222             </summary>
3223         </member>
3224         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Interrupt">
3225             <summary>
3226             log hardware interrupts. (Vista+ only)
3227             </summary>
3228         </member>
3229         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.SplitIO">
3230             <summary>
3231             Disk I/O that was split (eg because of mirroring requirements) (Vista+ only)
3232             </summary> 
3233         </member>
3234         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Default">
3235             <summary>
3236             Good default kernel flags.  (TODO more detail)
3237             </summary>  
3238         </member>
3239         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Verbose">
3240             <summary>
3241             These events are too verbose for normal use, but this give you a quick way of turing on 'interesting' events
3242             This does not include SystemCall because it is 'too verbose'
3243             </summary>
3244         </member>
3245         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ThreadTime">
3246             <summary>
3247             Use this if you care about blocked time.  
3248             </summary>
3249         </member>
3250         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.OS">
3251             <summary>
3252             You mostly don't care about these unless you are dealing with OS internals.  
3253             </summary>
3254         </member>
3255         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.All">
3256             <summary>
3257             All legal kernel events
3258             </summary>
3259         </member>
3260         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.NonContainer">
3261             <summary>
3262             These are the kernel events that are not allowed in containers.  Can be subtracted out.  
3263             </summary>
3264         </member>
3265         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.PMCProfile">
3266             <summary>
3267             Turn on PMC (Precise Machine Counter) events.   Only Win 8
3268             </summary>
3269         </member>
3270         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ReferenceSet">
3271             <summary>
3272             Kernel reference set events (like XPERF ReferenceSet).   Fully works only on Win 8.  
3273             </summary>
3274         </member>
3275         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.ThreadPriority">
3276             <summary>
3277             Events when thread priorities change.  
3278             </summary>
3279         </member>
3280         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.IOQueue">
3281             <summary>
3282             Events when queuing and dequeuing from the I/O completion ports.    
3283             </summary>
3284         </member>
3285         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords.Handle">
3286             <summary>
3287             Handle creation and closing (for handle leaks) 
3288             </summary>
3289         </member>
3290         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.NonOSKeywords">
3291             <summary>
3292             These keywords can't be passed to the OS, they are defined by KernelTraceEventParser
3293             </summary>
3294         </member>
3295         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ParserTrackingOptions">
3296             <summary>
3297             What his parser should track by default.  
3298             </summary>
3299         </member>
3300         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.KernelPathToUserPathMapper">
3301             <summary>
3302             Defines how kernel paths are converted to user paths. Setting it overrides the default path conversion mechanism.
3303             </summary>
3304         </member>
3305         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ProcessStartGroup">
3306             <summary>
3307             Registers both ProcessStart and ProcessDCStart
3308             </summary>
3309         </member>
3310         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ProcessEndGroup">
3311             <summary>
3312             Registers both ProcessEnd and ProcessDCStop
3313             </summary>
3314         </member>
3315         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ThreadStartGroup">
3316             <summary>
3317             Registers both ThreadStart and ThreadDCStart
3318             </summary>
3319         </member>
3320         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ThreadEndGroup">
3321             <summary>
3322             Registers both ThreadEnd and ThreadDCStop
3323             </summary>
3324         </member>
3325         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ImageLoadGroup">
3326             <summary>
3327             Registers both ImageLoad and ImageDCStart
3328             </summary>
3329         </member>
3330         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.ImageUnloadGroup">
3331             <summary>
3332             Registers both ImageUnload and ImageDCStop
3333             </summary>
3334         </member>
3335         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.MemoryMemInfo">
3336             <summary>
3337             Rasied every 0.5s with memory metrics of the current machine.
3338             </summary>
3339         </member>
3340         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.SysConfigVolumeMapping">
3341             <summary>
3342             File names in ETW are the Kernel names, which need to be mapped to the drive specification users see. 
3343             This event indicates this mapping. 
3344             </summary>
3345         </member>
3346         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState">
3347             <summary>
3348             KernelTraceEventParserState holds all information that is shared among all events that is
3349             needed to decode kernel events.   This class is registered with the source so that it will be
3350             persisted.  Things in here include
3351             
3352                 * FileID to FileName mapping, 
3353                 * ThreadID to ProcessID mapping
3354                 * Kernel file name to user file name mapping 
3355             </summary>
3356         </member>
3357         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState.FileIDToName(System.UInt64,System.UInt64,System.Int64)">
3358             <summary>
3359             If you have a file object (per-open-file) in addition to a fileKey, try using both 
3360             to look up the file name.  
3361             </summary>
3362         </member>
3363         <member name="F:Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParserState.threadIDtoProcessIDRundown">
3364             <summary>
3365             This is for the circular buffer case.  In that case we may not have thread starts (and thus we don't
3366             have entries in threadIDtoProcessID).   Because HistoryTable finds the FIRST entry GREATER than the
3367             given threadID we NEGATE all times before we place it in this table.
3368             
3369             Also, because circular buffering is not the common case, we only add entries to this table if needed
3370             (if we could not find the thread ID using threadIDtoProcessID).  
3371             </summary>
3372         </member>
3373         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping">
3374             <summary>
3375             Keeps track of the mapping from kernel names to file system names (drives)  
3376             </summary>
3377         </member>
3378         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping.#ctor">
3379             <summary>
3380             Create a new KernelToUserDriveMapping that can look up kernel names for drives and map them to windows drive letters. 
3381             </summary>
3382         </member>
3383         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.KernelToUserDriveMapping.Item(System.String)">
3384             <summary>
3385             Returns the string representing the windows drive letter for the kernel drive name 'kernelName'
3386             </summary>
3387             <param name="kernelName"></param>
3388             <returns></returns>
3389         </member>
3390         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.EventTraceHeaderTraceData.UTCOffsetMinutes">
3391             <summary>
3392             This is the number of minutes between the local time where the data was collected and UTC time. 
3393             It does NOT take Daylight savings time into account.   
3394             It is positive if your time zone is WEST of Greenwich.  
3395             </summary>
3396         </member>
3397         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.ThreadTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3398             <summary>
3399             Indicate that StartAddr and Win32StartAddr are a code addresses that needs symbolic information
3400             </summary>
3401         </member>
3402         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CSwitchTraceData.NewThreadID">
3403             <summary>
3404             We report a context switch from from the new thread.  Thus NewThreadID == ThreadID.  
3405             </summary>
3406         </member>
3407         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.Irp">
3408             <summary>
3409             The I/O Response Packet address.  This represents the 'identity' of this particular I/O
3410             </summary>
3411         </member>
3412         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.HighResResponseTime">
3413             <summary>
3414             This is the time since the I/O was initiated, in source.PerfFreq (QPC) ticks.  
3415             </summary>
3416         </member>
3417         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.DiskServiceTimeMSec">
3418             <summary>
3419             This is the actual time the disk spent servicing this IO.   Same as elapsed time for real time providers.  
3420             </summary>
3421         </member>
3422         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOTraceData.ElapsedTimeMSec">
3423             <summary>
3424             The time since the I/O was initiated.  
3425             </summary>
3426         </member>
3427         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOFlushBuffersTraceData.HighResResponseTime">
3428             <summary>
3429             This is the time since the I/O was initiated, in source.PerfFreq (QPC) ticks.  
3430             </summary>
3431         </member>
3432         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.DiskIOFlushBuffersTraceData.ElapsedTimeMSec">
3433             <summary>
3434             The time since the I/O was initiated.  
3435             </summary>
3436         </member>
3437         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIONameTraceData.FileKey">
3438             <summary>
3439             This is a handle that represents a file NAME (not an open file).   
3440             In the MSDN does this field is called FileObject.  However in other events FileObject is something
3441             returned from Create file and is different.  Events have have both (and some do) use FileKey.  Thus
3442             I use FileKey uniformly to avoid confusion.   
3443             </summary>
3444         </member>
3445         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.CreateOptions">
3446             <summary>
3447             See the Windows CreateFile API CreateOptions for this 
3448             </summary>
3449         </member>
3450         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.CreateDispostion">
3451             <summary>
3452             See Windows CreateFile API CreateDisposition for this.  
3453             </summary>
3454         </member>
3455         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.FileAttributes">
3456             <summary>
3457             See Windows CreateFile API ShareMode parameter
3458             </summary>
3459         </member>
3460         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIOCreateTraceData.ShareAccess">
3461             <summary>
3462             See windows CreateFile API ShareMode parameter
3463             </summary>
3464         </member>
3465         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CreateDisposition">
3466             <summary>
3467             See Windows CreateFile function CreateDispostion parameter.  
3468             </summary>
3469         </member>
3470         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.CreateOptions">
3471             <summary>
3472             See Windows CreateFile function FlagsAndAttributes parameter. 
3473             TODO FIX NOW: these have not been validated yet.  
3474             </summary>
3475         </member>
3476         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIODirEnumTraceData.FileObject">
3477             <summary>
3478             The FileObject is the object for the Directory (used by CreateFile to open and passed to Close to close)
3479             </summary>
3480         </member>
3481         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.FileIODirEnumTraceData.FileKey">
3482             <summary>
3483             The FileKey is the object that represents the name of the directory.  
3484             </summary>
3485         </member>
3486         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.ImageLoadTraceData.BuildTime">
3487             <summary>
3488             This is the TimeDateStamp converted to a DateTime
3489             TODO: daylight savings time seems to mess this up.  
3490             </summary>
3491         </member>
3492         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3493             <summary>
3494             Indicate that ProgramCounter is a code address that needs symbolic information
3495             </summary>
3496         </member>
3497         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryHardFaultTraceData.ElapsedTimeMSec">
3498             <summary>
3499             The time spent during the page fault.  
3500             </summary>
3501         </member>
3502         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageAccessTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3503             <summary>
3504             Indicate that the Address is a code address that needs symbolic information
3505             </summary>
3506         </member>
3507         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData">
3508             <summary>
3509             This event is emitted by the Microsoft-Windows-Kernel-Memory with Keyword 0x40  KERNEL_MEM_KEYWORD_MEMINFO_EX every .5 seconds
3510             </summary>
3511         </member>
3512         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData.Values(System.Int32)">
3513             <summary>
3514             Returns the edge at the given zero-based index (index less than Count).   The returned MemoryProcessMemInfoValues 
3515             points the the data in MemoryProcessMemInfoTraceData so it cannot live beyond that lifetime.  
3516             </summary>
3517         </member>
3518         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData.PayloadValue(System.Int32)">
3519             <summary>
3520             The fields after 'Count' are the first value in the array of working sets.   
3521             </summary>
3522         </member>
3523         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoValues">
3524             <summary>
3525             This structure just POINTS at the data in the MemoryProcessMemInfoTraceData.  It can only be used as long as
3526             the MemoryProcessMemInfoTraceData is alive which (unless you cloned it) is only for the lifetime of the callback.  
3527             </summary>
3528         </member>
3529         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemInfoTraceData.PayloadValue(System.Int32)">
3530             <summary>
3531             The fields after 'Count' are the first value in the array of working sets.   
3532             </summary>
3533         </member>
3534         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.ExecutingDPC">
3535             <summary>
3536             Are we currently executing a Deferred Procedure Call (a mechanism the kernel uses to
3537             'steal' a thread to run its own work).  If this is true, the CPU time is really 
3538             not logically related to the process (it is kernel time).  
3539             </summary>
3540         </member>
3541         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.ExecutingISR">
3542             <summary>
3543             Are we currently executing a Interrupt Service Routine?   Like ExecutingDPC if this
3544             is true the thread is really doing Kernel work, not work for the process.  
3545             </summary>
3546         </member>
3547         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.NonProcess">
3548             <summary>
3549             NonProcess is true if ExecutingDPC or ExecutingISR is true.
3550             </summary>
3551         </member>
3552         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.Priority">
3553             <summary>
3554             The thread's current priority (higher is more likely to run).   A normal thread with a normal base 
3555             priority is 8.   
3556             see http://msdn.microsoft.com/en-us/library/windows/desktop/ms685100(v=vs.85).aspx for more
3557             </summary>
3558         </member>
3559         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.Rank">
3560             <summary>
3561             Your scheduling If the thread is not part of a scheduling group, this is 0 (see callout.c) 
3562             </summary>
3563         </member>
3564         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3565             <summary>
3566             Indicate that the Address is a code address that needs symbolic information
3567             </summary>
3568         </member>
3569         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData">
3570             <summary>
3571             PMC (Precise Machine Counter) events are fired when a CPU counter trips.  The the ProfileSource identifies
3572             which counter it is.   The PerfInfoCollectionStart events will tell you the count that was configured to trip
3573             the event.  
3574             </summary>
3575         </member>
3576         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3577             <summary>
3578             Indicate that Address is a code address that needs symbolic information
3579             </summary>
3580         </member>
3581         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SysCallEnterTraceData.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
3582             <summary>
3583             Indicate that the Address is a code address that needs symbolic information
3584             </summary>
3585         </member>
3586         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData">
3587             <summary>
3588             Collects the call callStacks for some other event.  
3589             
3590             (TODO: always for the event that preceded it on the same thread)?  
3591             </summary>
3592         </member>
3593         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.EventTimeStampQPC">
3594             <summary>
3595             The timestamp of the event which caused this stack walk using QueryPerformaceCounter
3596             cycles as the tick.
3597             </summary>
3598         </member>
3599         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.EventTimeStampRelativeMSec">
3600             <summary>
3601             Converts this to a time relative to the start of the trace in msec. 
3602             </summary>
3603         </member>
3604         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.FrameCount">
3605             <summary>
3606             The total number of eventToStack frames collected.  The Windows OS currently has a maximum of 96 frames. 
3607             </summary>
3608         </member>
3609         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.InstructionPointer(System.Int32)">
3610             <summary>
3611             Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
3612             be a thread offset routine (if you get a complete stack).  
3613             </summary>
3614             <param name="index">The index of the frame to fetch.  0 is the CPU EIP, 1 is the Caller of that
3615             routine ...</param>
3616             <returns>The instruction pointer of the specified frame.</returns>
3617         </member>
3618         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.InstructionPointers">
3619             <summary>
3620             Access to the instruction pointers as a unsafe memory blob
3621             </summary>
3622         </member>
3623         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkStackTraceData.FixupData">
3624             <summary>
3625             StackWalkTraceData does not set Thread and process ID fields properly.  if that.  
3626             </summary>
3627         </member>
3628         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData">
3629             <summary>
3630             To save space, stack walks in Win8 can be complressed.  The stack walk event only has a 
3631             reference to a stack Key which is then looked up by StackWalkDefTraceData. 
3632             </summary>
3633         </member>
3634         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.EventTimeStampQPC">
3635             <summary>
3636             The timestamp of the event which caused this stack walk using QueryPerformaceCounter
3637             cycles as the tick.
3638             </summary>
3639         </member>
3640         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.EventTimeStampRelativeMSec">
3641             <summary>
3642             Converts this to a time relative to the start of the trace in msec. 
3643             </summary>
3644         </member>
3645         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.StackKey">
3646             <summary>
3647             Returns a key that can be used to look up the stack in KeyDelete or KeyRundown events 
3648             </summary>
3649         </member>
3650         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkRefTraceData.FixupData">
3651             <summary>
3652             StackWalkTraceData does not set Thread and process ID fields properly.  if that.  
3653             </summary>
3654         </member>
3655         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData">
3656             <summary>
3657             This event defines a stack and gives it a unique id (the StackKey), which StackWalkRefTraceData can point at.  
3658             </summary>
3659         </member>
3660         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.StackKey">
3661             <summary>
3662             Returns a key that can be used to look up the stack in KeyDelete or KeyRundown events 
3663             </summary>
3664         </member>
3665         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.FrameCount">
3666             <summary>
3667             The total number of eventToStack frames collected.  The Windows OS currently has a maximum of 96 frames. 
3668             </summary>
3669         </member>
3670         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.InstructionPointer(System.Int32)">
3671             <summary>
3672             Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
3673             be a thread offset routine (if you get a complete complete).  
3674             </summary>
3675             <param name="index">The index of the frame to fetch.  0 is the CPU EIP, 1 is the Caller of that
3676             routine ...</param>
3677             <returns>The instruction pointer of the specified frame.</returns>
3678         </member>
3679         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData.InstructionPointers">
3680             <summary>
3681             Access to the instruction pointers as a unsafe memory blob
3682             </summary>
3683         </member>
3684         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SystemPathsTraceData.SystemDirectory">
3685             <summary>
3686             e.g. c:\windows\system32
3687             </summary>
3688         </member>
3689         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Kernel.SystemPathsTraceData.SystemWindowsDirectory">
3690             <summary>
3691             .e.g c:\windows
3692             </summary>
3693         </member>
3694         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.MicrosoftWindowsNDISPacketCapture.PacketFragmentArgs.AppendPrintable(System.Byte*,System.Byte*,System.Text.StringBuilder,System.String,System.Int32)">
3695             <summary>
3696             Sees if up to 'max' bytes of frag-fragend is a printable string and if so prints it to 'sb' with 
3697             'prefix' before it.  
3698             </summary>
3699         </member>
3700         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser">
3701             <summary>
3702             Kernel traces have information about images that are loaded, however they don't have enough information
3703             in the events themselves to unambigously look up PDBs without looking at the data inside the images.
3704             This means that symbols can't be resolved unless you are on the same machine on which you gathered the data.
3705             
3706             XPERF solves this problem by adding new 'synthetic' events that it creates by looking at the trace and then
3707             opening each DLL mentioned and extracting the information needed to look PDBS up on a symbol server (this 
3708             includes the PE file's TimeDateStamp as well as a PDB Guid, and 'pdbAge' that can be found in the DLLs header.
3709             
3710             These new events are added when XPERF runs the 'merge' command (or -d flag is passed).  It is also exposed 
3711             through the KernelTraceControl.dll!CreateMergedTraceFile API.   
3712             
3713             SymbolTraceEventParser is a parser for extra events.   
3714             </summary>
3715         </member>
3716         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDDbgID_RSDS">
3717             <summary>
3718              The DbgIDRSDS event is added by XPERF for every Image load.  It contains the 'PDB signature' for the DLL, 
3719              which is enough to unambiguously look the image's PDB up on a symbol server.  
3720             </summary>
3721         </member>
3722         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageID">
3723             <summary>
3724             Every DLL has a Timestamp in the PE file itself that indicates when it is built.  This event dumps this timestamp.
3725             This timestamp is used to be as the 'signature' of the image and is used as a key to find the symbols, however 
3726             this has mostly be superseded by the DbgID/RSDS event. 
3727             </summary>
3728         </member>
3729         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDFileVersion">
3730             <summary>
3731             The FileVersion event contains information from the file version resource that most DLLs have that indicated
3732             detailed information about the exact version of the DLL.  (What is in the File->Properties->Version property
3733             page)
3734             </summary>
3735         </member>
3736         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.ImageIDNone">
3737             <summary>
3738             I don't really care about this one, but I need a definition in order to exclude it because it
3739             has the same timestamp as a imageLoad event, and two events with the same timestamp confuse the 
3740             association between a stack and the event for the stack.  
3741             </summary>
3742         </member>
3743         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.MetaDataEventInfo">
3744             <summary>
3745             This event has a TRACE_EVENT_INFO as its payload, and allows you to decode an event
3746             </summary>
3747         </member>
3748         <member name="E:Microsoft.Diagnostics.Tracing.Parsers.SymbolTraceEventParser.MetaDataEventMapInfo">
3749             <summary>
3750             The event describes a Map (bitmap or ValueMap), and has a payload as follows   
3751             
3752                 GUID            ProviderId;  
3753                 EVENT_MAP_INFO EventMapInfo;  
3754             </summary>
3755         </member>
3756         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Xml">
3757             <summary>
3758             The value of the one string payload property.  
3759             </summary>
3760         </member>
3761         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
3762             <summary>
3763             Construct a TraceEvent template which has one string payload field with the given metadata and action
3764             </summary>
3765         </member>
3766         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.ToXml(System.Text.StringBuilder)">
3767             <summary>
3768             implementation of TraceEvent Interface. 
3769             </summary>
3770         </member>
3771         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.PayloadNames">
3772             <summary>
3773             implementation of TraceEvent Interface. 
3774             </summary>
3775         </member>
3776         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.PayloadValue(System.Int32)">
3777             <summary>
3778             implementation of TraceEvent Interface. 
3779             </summary>
3780         </member>
3781         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Dispatch">
3782             <summary>
3783             implementation of TraceEvent Interface. 
3784             </summary>
3785         </member>
3786         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.Symbol.WinSatXmlTraceData.Target">
3787             <summary>
3788             override
3789             </summary>
3790         </member>
3791         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser">
3792             <summary>
3793             RegisteredTraceEventParser uses the standard windows provider database (TDH, what gets registered with wevtutil)
3794             to find the names of events and fields of the events).   
3795             </summary>
3796         </member>
3797         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
3798             <summary>
3799             Create a new RegisteredTraceEventParser and attach it to the given TraceEventSource
3800             </summary>
3801         </member>
3802         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetManifestForRegisteredProvider(System.String)">
3803             <summary>
3804             Given a provider name that has been registered with the operating system, get
3805             a string representing the ETW manifest for that provider.    Note that this
3806             manifest is not as rich as the original source manifest because some information
3807             is not actually compiled into the binary manifest that is registered with the OS.  
3808             </summary>
3809         </member>
3810         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetManifestForRegisteredProvider(System.Guid)">
3811             <summary>
3812             Given a provider GUID that has been registered with the operating system, get
3813             a string representing the ETW manifest for that provider.    Note that this
3814             manifest is not as rich as the original source manifest because some information
3815             is not actually compiled into the binary manifest that is registered with the OS.  
3816             </summary>
3817         </member>
3818         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.GetKeywordStr(System.Collections.Generic.SortedDictionary{System.UInt64,System.String},System.UInt64)">
3819             <summary>
3820             Generates a space separated list of set of keywords 'keywordSet' using the table 'keywords'
3821             It will generate new keyword names if needed and add them to 'keywords' if they are not present.  
3822             </summary>
3823         </member>
3824         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TaskInfo">
3825             <summary>
3826             Class used to accumulate information about Tasks in the implementation of GetManifestForRegisteredProvider
3827             </summary>
3828         </member>
3829         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TryLookupWorker(Microsoft.Diagnostics.Tracing.TraceEvent,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Parsers.MapKey,System.Collections.Generic.IDictionary{System.Int64,System.String}})">
3830             <summary>
3831             Try to look up 'unknonwEvent using TDH or the TraceLogging mechanism.   if 'mapTable' is non-null it will be used
3832             look up the string names for fields that have bitsets or enumerated values.   This is only need for the KernelTraceControl
3833             case where the map information is logged as special events and can't be looked up with TDH APIs.  
3834             </summary>
3835         </member>
3836         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser">
3837             <summary>
3838             TdhEventParser takes the Trace Diagnostics Helper (TDH) TRACE_EVENT_INFO structure and
3839             (passed as a byte*) and converts it to a DynamicTraceEventData which which 
3840             can be used to parse events of that type.   You first create TdhEventParser and then
3841             call ParseEventMetaData to do the parsing.  
3842             </summary>
3843         </member>
3844         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.#ctor(System.Byte*,Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Parsers.MapKey,System.Collections.Generic.IDictionary{System.Int64,System.String}})">
3845             <summary>
3846             Creates a new parser from the TRACE_EVENT_INFO held in 'buffer'.  Use
3847             ParseEventMetaData to then parse it into a DynamicTraceEventData structure.
3848              EventRecord can be null and mapTable if present allow the parser to resolve maps (enums), and can be null.  
3849             </summary>
3850         </member>
3851         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.ParseEventMetaData">
3852             <summary>
3853             Actually performs the parsing of the TRACE_EVENT_INFO passed in the constructor
3854             </summary>
3855             <returns></returns>
3856         </member>
3857         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.RegisteredTraceEventParser.TdhEventParser.ParseFields(System.Int32,System.Int32)">
3858             <summary>
3859             Parses at most 'maxFields' fields starting at the current position.  
3860             Will return the parse fields in 'payloadNamesRet' and 'payloadFetchesRet'
3861             Will return true if successful, false means an error occurred.  
3862             </summary>
3863         </member>
3864         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser">
3865             <summary>
3866             ExternalTraceEventParser is an abstract class that acts as a parser for any 'External' resolution
3867             This include the TDH (RegisteredTraceEventParser) as well as the WPPTraceEventParser.   
3868             </summary>
3869         </member>
3870         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
3871             <summary>
3872             Create a new ExternalTraceEventParser and attach it to the given TraceEventSource
3873             </summary>
3874         </member>
3875         <member name="P:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.IsStatic">
3876             <summary>
3877             Override.  
3878             </summary>
3879         </member>
3880         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.GetProviderName">
3881             <summary>
3882             Override
3883             </summary>
3884         </member>
3885         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.HasDefinitionForTemplate(Microsoft.Diagnostics.Tracing.TraceEvent)">
3886             <summary>
3887             Returns true if the RegisteredTraceEventParser would return 'template' in EnumerateTemplates
3888             </summary>
3889         </member>
3890         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
3891             <summary>
3892             override
3893             </summary>
3894         </member>
3895         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParser.OnNewEventDefintion(Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean)">
3896             <summary>
3897             Register 'template' so that if there are any subscriptions to template they get registered with the source.    
3898             </summary>
3899         </member>
3900         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.MapKey">
3901             <summary>
3902             Used to look up Enums (provider x enumName);  Very boring class.  
3903             </summary>
3904         </member>
3905         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState">
3906             <summary>
3907             TDHDynamicTraceEventParserState represents the state of a  TDHDynamicTraceEventParser that needs to be
3908             serialized to a log file.  It does NOT include information about what events are chosen but DOES contain
3909             any other necessary information that came from the ETL data file or the OS TDH APIs.  
3910             </summary>
3911         </member>
3912         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.TraceEventComparer">
3913             <summary>
3914             This defines what it means to be the same event.   For manifest events it means provider and event ID
3915             for classic, it means that taskGuid and opcode match.  
3916             </summary>
3917         </member>
3918         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.ToStream(FastSerialization.Serializer)">
3919             <summary>
3920             Implements IFastSerializable interface
3921             </summary>
3922         </member>
3923         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.ExternalTraceEventParserState.FromStream(FastSerialization.Deserializer)">
3924             <summary>
3925             Implements IFastSerializable interface
3926             </summary>
3927         </member>
3928         <member name="T:Microsoft.Diagnostics.Tracing.Parsers.WppTraceEventParser">
3929             <summary>
3930             This parser knows how to decode Windows Software Trace Preprocessor (WPP) events.  In order to decode
3931             the events it needs access to the TMF files that describe the events (these are created from the PDB at 
3932             build time). 
3933             <br/>
3934             You will generally use this for the 'FormattedMessage' property of the event.  
3935             </summary>
3936         </member>
3937         <member name="M:Microsoft.Diagnostics.Tracing.Parsers.WppTraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.String)">
3938             <summary>
3939             Construct a new WPPTraceEventParser that is attached to 'source'.   Once you do this the source
3940             will understand WPP events. In particular you can subscribe to the  Wpp.All event to get the
3941             stream of WPP events in the source. For WppTraceEventParser to function, it needs the TMF
3942             files for the events it will decode. You should pass the directory to find these TMF files 
3943             in 'TMFDirectory'.  Each file should have the form of a GUID.tmf.   
3944             </summary>
3945             <param name="source"></param>
3946             <param name="TMFDirectory"></param>
3947         </member>
3948         <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource">
3949             <summary>
3950             ETWReloggerTraceEventSource is designed to be able to write ETW files using an existing ETW input stream (either a file, files or real time session) as a basis. 
3951             The relogger capabilities only exist on Windows 8 OSes and beyond.  
3952             
3953             The right way to think about this class is that it is just like ETWTraceEventSource, but it also has a output file associated with it, and WriteEvent APIs that
3954             can be used to either copy events from the event stream (the common case), or inject new events (high level stats).  
3955             </summary>
3956         </member>
3957         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.#ctor(System.String,System.String)">
3958             <summary>
3959             Create an ETWReloggerTraceEventSource that can takes its input from the family of etl files inputFileName
3960             and can write them to the ETL file outputFileName (.kernel*.etl, .user*.etl .clr*.etl)
3961             
3962             This is a shortcut for  ETWReloggerTraceEventSource(inputFileName, TraceEventSourceType.MergeAll, outputFileStream)
3963             </summary>
3964         </member>
3965         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventSourceType,System.String)">
3966             <summary>
3967             Create an ETWReloggerTraceEventSource that can takes its input from a variety of sources (either a single file,
3968             a set of files, or a real time ETW session (based on 'type'), and can write these events to a new ETW output
3969             file 'outputFileName. 
3970             </summary>
3971         </member>
3972         <member name="P:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.OutputUsesCompressedFormat">
3973             <summary>
3974             The output file can use a compressed form or not.  Compressed forms can only be read on Win8 and beyond.   Defaults to true.  
3975             </summary>
3976         </member>
3977         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
3978             <summary>
3979             Writes an event from the input stream to the output stream of events. 
3980             </summary>
3981         </member>
3982         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ConnectEventSource(System.Diagnostics.Tracing.EventSource)">
3983             <summary>
3984             Connect the given EventSource so any events logged from it will go to the output stream of events.   
3985             Once connected, you may only write events from this EventSource while processing the input stream
3986             (that is during the callback of an input stream event), because the context for the EventSource event
3987             (e.g. timestamp, proesssID, threadID ...) will be derived from the current event being processed by
3988             the input stream.  
3989             </summary>
3990         </member>
3991         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(System.Guid,TraceReloggerLib._EVENT_DESCRIPTOR@,Microsoft.Diagnostics.Tracing.TraceEvent,System.Object[])">
3992             <summary>
3993             Writes an event that did not exist previously into the data stream, The context data (time, process, thread, activity, comes from 'an existing event') 
3994             </summary>
3995         </member>
3996         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.WriteEvent(System.Guid,TraceReloggerLib._EVENT_DESCRIPTOR@,System.DateTime,System.Int32,System.Int32,System.Int32,System.Guid,System.Object[])">
3997             <summary>
3998             Writes an event that did not exist previously into the data stream, The context data (time, process, thread, activity, comes from 'an existing event') is given explicitly
3999             </summary>
4000         </member>
4001         <member name="P:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.EventsLost">
4002             <summary>
4003             implementing TraceEventDispatcher
4004             </summary>
4005         </member>
4006         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.Process">
4007             <summary>
4008             implementing TraceEventDispatcher
4009             </summary>
4010         </member>
4011         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.Dispose(System.Boolean)">
4012             <summary>
4013             Implements TraceEventDispatcher.Dispose
4014             </summary>
4015         </member>
4016         <member name="M:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.StopProcessing">
4017             <summary>
4018             Implements TraceEventDispatcher.StopProcessing
4019             </summary>
4020         </member>
4021         <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ReloggerEventListener">
4022             <summary>
4023             This is used by the ConnectEventSource to route events from the EventSource to the relogger. 
4024             </summary>
4025         </member>
4026         <member name="T:Microsoft.Diagnostics.Tracing.ETWReloggerTraceEventSource.ReloggerCallbacks">
4027             <summary>
4028             This is the class the Win32 APIs call back on.  
4029             </summary>
4030         </member>
4031         <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource">
4032             <summary>
4033             A ETWTraceEventSource represents the stream of events that was collected from a
4034             TraceEventSession (eg the ETL moduleFile, or the live session event stream). Like all
4035             TraceEventSource, it logically represents a stream of TraceEvent s. Like all
4036             TraceEventDispathers it supports a callback model where Parsers attach themselves to this
4037             sources, and user callbacks defined on the parsers are called when the 'Process' method is called.
4038             
4039             * See also TraceEventDispatcher
4040             * See also TraceEvent
4041             * See also #ETWTraceEventSourceInternals
4042             * See also #ETWTraceEventSourceFields
4043             </summary>    
4044         </member>
4045         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.String)">
4046             <summary>
4047             Open a ETW event trace moduleFile (ETL moduleFile) for processing.  
4048             </summary>
4049             <param name="fileName">The ETL data moduleFile to open</param>` 
4050         </member>
4051         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.String,Microsoft.Diagnostics.Tracing.TraceEventSourceType)">
4052             <summary>
4053             Open a ETW event source for processing.  This can either be a moduleFile or a real time ETW session
4054             </summary>
4055             <param name="fileOrSessionName">
4056             If type == ModuleFile this is the name of the moduleFile to open.
4057             If type == Session this is the name of real time session to open.</param>
4058             <param name="type"></param>
4059         </member>
4060         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.#ctor(System.Collections.Generic.IEnumerable{System.String})">
4061             <summary>
4062             Process all the files in 'fileNames' in order (that is all the events in the first
4063             file are processed, then the second ...).   Intended for parsing the 'Multi-File' collection mode. 
4064             </summary>
4065             <param name="fileNames">The list of files path names to process (in that order)</param>
4066         </member>
4067         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Process">
4068             <summary>
4069             Processes all the events in the data source, issuing callbacks that were subscribed to.  See
4070             #Introduction for more
4071             </summary>
4072             <returns>false If StopProcesing was called</returns>
4073         </member>
4074         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ReprocessEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
4075             <summary>
4076             Reprocess a pre-constructed event which this processor has presumably created. Helpful to re-examine
4077             "unknown" events, perhaps after a manifest has been received from the ETW stream.
4078             Note when queuing events to reprocess you must <see cref="M:Microsoft.Diagnostics.Tracing.TraceEvent.Clone">Clone</see> them first
4079             or certain internal data may no longer be available and you may receive memory access violations.
4080             </summary>
4081             <param name="ev">Event to re-process.</param>
4082         </member>
4083         <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.LogFileName">
4084             <summary> 
4085             The log moduleFile that is being processed (if present)
4086             TODO: what does this do for Real time sessions?
4087             </summary>
4088         </member>
4089         <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.SessionName">
4090             <summary>
4091             The name of the session that generated the data. 
4092             </summary>
4093         </member>
4094         <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Size">
4095             <summary>
4096             The size of the log, will return 0 if it does not know. 
4097             </summary>
4098         </member>
4099         <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.EventsLost">
4100             <summary>
4101             returns the number of events that have been lost in this session.    Note that this value is NOT updated
4102             for real time sessions (it is a snapshot).  Instead you need to use the TraceEventSession.EventsLost property. 
4103             </summary>
4104         </member>
4105         <member name="P:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.CanReset">
4106             <summary>
4107             Returns true if the Process can be called multiple times (if the Data source is from a
4108             moduleFile, not a real time stream.
4109             </summary>
4110         </member>
4111         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.SynchronizeClock">
4112             <summary>
4113             This routine is only useful/valid for real-time sessions.  
4114             
4115             TraceEvent.TimeStamp internally is stored using a high resolution clock called the Query Performance Counter (QPC).
4116             This clock is INDEPENDENT of the system clock used by DateTime.   These two clocks are synchronized to within 2 msec at 
4117             session startup but they can drift from there (typically 2msec / min == 3 seconds / day).   Thus if you have long
4118             running real time session it becomes problematic to compare the timestamps with those in another session or something
4119             timestamped with the system clock.   SynchronizeClock will synchronize the TraceEvent.Timestamp clock with the system
4120             clock again.   If you do this right before you start another session, then the two sessions will be within 2 msec of
4121             each other, and their timestamps will correlate.     Doing it periodically (e.g. hourly), will keep things reasonably close.  
4122             
4123             TODO: we can achieve perfect synchronization by exposing the QPC tick sync point so we could read the sync point 
4124             from one session and set that exact sync point for another session.  
4125             </summary>
4126         </member>
4127         <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions">
4128             <summary>
4129             Options that can be passed to GetModulesNeedingSymbols
4130             </summary>
4131         </member>
4132         <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.OnlyNGENImages">
4133             <summary>
4134             This is the default, where only NGEN images are included (since these are the only images whose PDBS typically
4135             need to be resolved agressively AT COLLECTION TIME)
4136             </summary>
4137         </member>
4138         <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.IncludeUnmanagedModules">
4139             <summary>
4140             If set, this option indicates that non-NGEN images should also be included in the list of returned modules
4141             </summary>
4142         </member>
4143         <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions.IncludeModulesWithOutSamples">
4144             <summary>
4145             Normally only modules what have a CPU or stack sample are included in the list of assemblies (thus you don't 
4146             unnecessarily have to generate NGEN PDBS for modules that will never be looked up).  However if there are 
4147             events that have addresses that need resolving that this routine does not recognise, this option can be
4148             set to insure that any module that was event LOADED is included.   This is inefficient, but guarenteed to
4149             be complete
4150             </summary>
4151         </member>
4152         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.GetModulesNeedingSymbols(System.String,Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ModuleSymbolOptions)">
4153             <summary>
4154             Given an ETL file, returns a list of the full paths to DLLs that were loaded in the trace that need symbolic 
4155             information (PDBs) so that the stack traces and CPU samples can be properly resolved.   By default this only
4156             returns NGEN images since these are the ones that need to be resolved and generated at collection time.   
4157             </summary>
4158         </member>
4159         <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.ImageData">
4160             <summary>
4161             Image data is a trivial record for image data, where it is keyed by the base address, processID and name.  
4162             </summary>
4163         </member>
4164         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.GetOSPointerSize">
4165             <summary>
4166             Returns the size of pointer (8 or 4) for the operating system (not necessarily the process) 
4167             </summary>
4168         </member>
4169         <member name="T:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.QPCTime">
4170             <summary>
4171             This is a little helper class that maps QueryPerformanceCounter (QPC) ticks to DateTime.  There is an error of
4172             a few msec, but as long as every one uses the same one, we probably don't care.  
4173             </summary>
4174         </member>
4175         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Dispose(System.Boolean)">
4176             <summary>
4177             see Dispose pattern
4178             </summary>
4179         </member>
4180         <member name="M:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.Finalize">
4181             <summary>
4182             see Dispose pattern
4183             </summary>
4184         </member>
4185         <member name="F:Microsoft.Diagnostics.Tracing.ETWTraceEventSource.lockObj">
4186             <summary>
4187             Used by real time TraceLog on Windows7.   
4188             If we have several real time sources we have them coming in on several threads, but we want the illusion that they
4189             are one source (thus being processed one at a time).  Thus we want a lock that is taken on every dispatch.   
4190             </summary>
4191         </member>
4192         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventSourceType">
4193             <summary>
4194             The kinds of data sources that can be opened (see ETWTraceEventSource)
4195             </summary>
4196         </member>
4197         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.MergeAll">
4198             <summary>
4199             Look for any files like *.etl or *.*.etl (the later holds things like *.kernel.etl or *.clrRundown.etl ...)
4200             </summary>
4201         </member>
4202         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.FileOnly">
4203             <summary>
4204             Look for a ETL moduleFile *.etl as the event data source 
4205             </summary>
4206         </member>
4207         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventSourceType.Session">
4208             <summary>
4209             Use a real time session as the event data source.
4210             </summary>
4211         </member>
4212         <member name="M:Microsoft.Diagnostics.Tracing.EventPipe.EventCache.Flush">
4213             <summary>
4214             After all events have been parsed we could have some straglers that weren't
4215             earlier than any sorted event. Sort and dispatch those now.
4216             </summary>
4217         </member>
4218         <member name="M:Microsoft.Diagnostics.Tracing.EventPipe.ClrThreadStackWalkTraceData.InstructionPointer(System.Int32)">
4219             <summary>
4220             Fetches the instruction pointer of a eventToStack frame 0 is the deepest frame, and the maximum should
4221             be a thread offset routine (if you get a complete eventToStack).  
4222             </summary>
4223             <param name="index">The index of the frame to fetch.  0 is the CPU EIP, 1 is the Caller of that
4224             routine ...</param>
4225             <returns>The instruction pointer of the specified frame.</returns>
4226         </member>
4227         <member name="P:Microsoft.Diagnostics.Tracing.EventPipe.ClrThreadStackWalkTraceData.InstructionPointers">
4228             <summary>
4229             Access to the instruction pointers as a unsafe memory blob
4230             </summary>
4231         </member>
4232         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventSource">
4233             <summary>
4234             EventPipeEventSource knows how to decode EventPipe (generated by the .NET core runtime).
4235             Please see <see href="https://github.com/Microsoft/perfview/blob/master/src/TraceEvent/EventPipe/EventPipeFormat.md" />for details on the file format.
4236             
4237             By conventions files of such a format are given the .netperf suffix and are logically
4238             very much like a ETL file in that they have a header that indicate things about
4239             the trace as a whole, and a list of events.    Like more modern ETL files the
4240             file as a whole is self-describing.    Some of the events are 'MetaData' events
4241             that indicate the provider name, event name, and payload field names and types.   
4242             Ordinary events then point at these meta-data event so that logically all 
4243             events have a name some basic information (process, thread, timestamp, activity
4244             ID) and user defined field names and values of various types.  
4245             </summary>
4246         </member>
4247         <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.Version">
4248             <summary>
4249             This is the version number reader and writer (although we don't don't have a writer at the moment)
4250             It MUST be updated (as well as MinimumReaderVersion), if breaking changes have been made.
4251             If your changes are forward compatible (old readers can still read the new format) you 
4252             don't have to update the version number but it is useful to do so (while keeping MinimumReaderVersion unchanged)
4253             so that readers can quickly determine what new content is available.  
4254             </summary>
4255         </member>
4256         <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.MinimumReaderVersion">
4257             <summary>
4258             This field is only used for writers, and this code does not have writers so it is not used.
4259             It should be set to Version unless changes since the last version are forward compatible
4260             (old readers can still read this format), in which case this shoudl be unchanged.  
4261             </summary>
4262         </member>
4263         <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventSource.MinimumVersionCanRead">
4264             <summary>
4265             This is the smallest version that the deserializer here can read.   Currently 
4266             we are careful about backward compat so our deserializer can read anything that
4267             has ever been produced.   We may change this when we believe old writers basically
4268             no longer exist (and we can remove that support code). 
4269             </summary>
4270         </member>
4271         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventSource.OnNewEventPipeEventDefinition(Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader,FastSerialization.PinnedStreamReader)">
4272             <summary>
4273             Give meta-data for an event, passed as a EventPipeEventMetaDataHeader and readerForParameters
4274             which is a StreamReader that points at serialized parameter information, decode the meta-data
4275             and record a template associated with this source. The readerForParameters is advanced beyond
4276             the event parameters information.  
4277             </summary>
4278         </member>
4279         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventSource.ReadEventParametersAndBuildTemplate(Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader,FastSerialization.PinnedStreamReader)">
4280             <summary>
4281             Given the EventPipe metaData header and a stream pointing at the serialized meta-data for the parameters for the
4282             event, create a new  DynamicTraceEventData that knows how to parse that event.  
4283             ReaderForParameters.Current is advanced past the parameter information.  
4284             </summary>
4285         </member>
4286         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeBlock">
4287             <summary>
4288             The Nettrace format is divided up into various blocks - this is a base class that handles the common
4289             aspects for all of them. 
4290             </summary>
4291         </member>
4292         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventBlock">
4293             <summary>
4294             An EVentPipeEventBlock represents a block of events.   It basicaly only has
4295             one field, which is the size in bytes of the block.  But when its FromStream
4296             is called, it will perform the callbacks for the events (thus deserializing
4297             it performs dispatch).  
4298             </summary>
4299         </member>
4300         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeMetadataBlock">
4301             <summary>
4302             A block of metadata carrying events. These 'events' aren't dispatched by EventPipeEventSource - they carry
4303             the metadata that allows the payloads of non-metadata events to be decoded.
4304             </summary>
4305         </member>
4306         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeSequencePointBlock">
4307             <summary>
4308             An EventPipeSequencePointBlock represents a stream divider that contains
4309             updates for all thread event sequence numbers, indicates that all queued
4310             events can be sorted and dispatched, and that all cached events/stacks can
4311             be flushed.
4312             </summary>
4313         </member>
4314         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeStackBlock">
4315             <summary>
4316             An EventPipeStackBlock represents a block of interned stacks. Events refer
4317             to stacks by an id.
4318             </summary>
4319         </member>
4320         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader">
4321             <summary>
4322             Private utility class.
4323             
4324             An EventPipeEventMetaDataHeader holds the information that can be shared among all
4325             instances of an EventPipe event from a particular provider.   Thus it contains
4326             things like the event name, provider, It however does NOT contain the data 
4327             about the event parameters (the names of the fields and their types), That is
4328             why this is a meta-data header and not all the meta-data.   
4329             
4330             This class has two main functions
4331                1. The constructor takes a PinnedStreamReader and decodes the serialized metadata
4332                   so you can access the data conveniently (but it does not decode the parameter info)
4333                2. It remembers a EVENT_RECORD structure (from ETW) that contains this data)
4334                   and has a function GetEventRecordForEventData which converts from a 
4335                   EventPipeEventHeader (the raw serialized data) to a EVENT_RECORD (which
4336                   is what TraceEvent needs to look up the event an pass it up the stack.  
4337             </summary>
4338         </member>
4339         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.#ctor(FastSerialization.PinnedStreamReader,System.Int32,System.Int32,System.Int32,System.Int32)">
4340             <summary>
4341             Creates a new MetaData instance from the serialized data at the current position of 'reader'
4342             of length 'length'.   This typically points at the PAYLOAD AREA of a meta-data events)
4343             'fileFormatVersionNumber' is the version number of the file as a whole
4344             (since that affects the parsing of this data) and 'processID' is the process ID for the 
4345             whole stream (since it needs to be put into the EVENT_RECORD.
4346             
4347             When this constructor returns the reader has read up to the serialized information about
4348             the parameters.  We do this because this code does not know the best representation for
4349             this parameter information and so it just lets other code handle it.  
4350             </summary>
4351         </member>
4352         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.GetEventRecordForEventData(Microsoft.Diagnostics.Tracing.EventPipeEventHeader@)">
4353             <summary>
4354             Given a EventPipeEventHeader takes a EventPipeEventHeader that is specific to an event, copies it
4355             on top of the static information in its EVENT_RECORD which is specialized meta-data 
4356             and returns a pointer to it.  Thus this makes the EventPipe look like an ETW provider from
4357             the point of view of the upper level TraceEvent logic.  
4358             </summary>
4359         </member>
4360         <member name="P:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.MetaDataId">
4361             <summary>
4362             This is a number that is unique to this meta-data blob.  It is expected to be a small integer
4363             that starts at 1 (since 0 is reserved) and increases from there (thus an array can be used).  
4364             It is what is matched up with EventPipeEventHeader.MetaDataId
4365             </summary>
4366         </member>
4367         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventMetaDataHeader.ReadEventMetaData(FastSerialization.PinnedStreamReader,System.Int32)">
4368             <summary>
4369             Reads the meta data for information specific to one event.  
4370             </summary>
4371         </member>
4372         <member name="T:Microsoft.Diagnostics.Tracing.EventPipeEventHeader">
4373             <summary>
4374             Private utility class.
4375             
4376             At the start of every event from an EventPipe is a header that contains
4377             common fields like its size, threadID timestamp etc.  EventPipeEventHeader
4378             is the layout of this.  Events have two variable sized parts: the user
4379             defined fields, and the stack.   EventPipEventHeader knows how to 
4380             decode these pieces (but provides no semantics for it. 
4381             
4382             It is not a public type, but used in low level parsing of EventPipeEventSource.  
4383             </summary>
4384         </member>
4385         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventHeader.GetTotalEventSize(System.Byte*,System.Int32)">
4386             <summary>
4387             Size of the event header + stack + payload (includes EventSize field itself)
4388             </summary>
4389         </member>
4390         <member name="M:Microsoft.Diagnostics.Tracing.EventPipeEventHeader.GetHeaderSize(System.Int32)">
4391             <summary>
4392             Header Size is defined to be the number of bytes before the Payload bytes.  
4393             </summary>
4394         </member>
4395         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTree">
4396             <summary>
4397             SampleInfos of a set of stackSource by eventToStack.  This represents the entire call tree.   You create an empty one in using
4398             the default constructor and use 'AddSample' to add stackSource to it.   You traverse it by 
4399             </summary>
4400         </member>
4401         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.#ctor(Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind)">
4402             <summary>
4403             Creates an empty call tree, indicating the scaling policy of the metric.   You populate it by assigning a StackSOurce to the tree.  
4404             </summary>
4405         </member>
4406         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.StackSource">
4407             <summary>
4408             A CallTree is generated from a StackSource.  Setting the StackSource causes the tree to become populated.   
4409             </summary>
4410         </member>
4411         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.PercentageBasis">
4412             <summary>
4413             When calculating percentages, the PercentageBasis do we use as 100%.  By default we use the
4414             Inclusive time for the root, but that can be changed here.  
4415             </summary>
4416         </member>
4417         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.Root">
4418             <summary>
4419             Returns the root node of the call tree.  
4420             </summary>
4421         </member>
4422         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.NodeIndexLimit">
4423             <summary>
4424             An upper bound for the node indexes in the call tree.  (All indexes
4425             are strictly less than this number)   Thus ASSSUMING YOU DON'T ADD
4426             NEW NODES, an array of this size can be used to index the nodes (and 
4427             thus lookup nodes by index or to store additional information about a node).  
4428             </summary>
4429         </member>
4430         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.CallerCallee(System.String)">
4431             <summary>
4432             Get a CallerCalleeNode for the nodes in the call tree named 'nodeName'
4433             </summary>
4434         </member>
4435         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ByID">
4436             <summary>
4437             Returns a list of nodes that have statistics rolled up by treeNode by ID.  It is not
4438             sorted by anything in particular.   Note that ID is not quite the same thing as the 
4439             name.  You can have two nodes that have different IDs but the same Name.  These 
4440             will show up as two distinct entries in the resulting list.  
4441             </summary>
4442         </member>
4443         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ByIDSortedExclusiveMetric">
4444             <summary>
4445             Returns the list returned by the ByID property sorted by exclusive metric.  
4446             </summary>
4447         </member>
4448         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.FoldNodesUnder(System.Single,System.Boolean)">
4449             <summary>
4450             If there are any nodes that have strictly less than to 'minInclusiveMetric'
4451             then remove the node, placing its samples into its parent (thus the parent's
4452             exclusive metric goes up).  
4453             
4454             If useWholeTraceMetric is true, nodes are only folded if their inclusive metric
4455             OVER THE WHOLE TRACE is less than 'minInclusiveMetric'.  If false, then a node
4456             is folded if THAT NODE has less than the 'minInclusiveMetric'  
4457             
4458             Thus if 'useWholeTraceMetric' == false then after calling this routine no
4459             node will have less than minInclusiveMetric.  
4460             
4461             </summary>
4462         </member>
4463         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.Sort(System.Collections.Generic.IComparer{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4464             <summary>
4465             Cause the children of each CallTreeNode in the CallTree to be sorted (accending) based on comparer
4466             </summary>
4467         </member>
4468         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.SortInclusiveMetricDecending">
4469             <summary>
4470             Sorting by InclusiveMetric Decending is so common, provide a shortcut.  
4471             </summary>
4472         </member>
4473         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ScalingPolicy">
4474             <summary>
4475             When converting the InclusiveMetricByTime to a InclusiveMetricByTimeString you have to decide 
4476             how to scale the samples to the digits displayed in the string.  This enum indicates this policy
4477             </summary>
4478         </member>
4479         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.TimeHistogramController">
4480             <summary>
4481             The nodes in the calltree have histograms in time, all of these histograms share a controller that
4482             contains sharable information.   This propertly returns that TimeHistogramController
4483             </summary>
4484         </member>
4485         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ScenarioHistogram">
4486             <summary>
4487             The nodes in the calltree have histograms indexed by scenario (which is user defiend), 
4488             all of these histograms share a controller that contains sharable information.   
4489             This propertly returns that ScenarioHistogramController
4490             </summary>
4491         </member>
4492         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTree.DisableParallelism">
4493             <summary>
4494             Turns off logic for computing call trees in parallel.   Safer but slower.  
4495             </summary>
4496             <remarks>
4497             <para>This is off by default following indications of race conditions.</para>
4498             </remarks>
4499         </member>
4500         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.FreeMemory">
4501             <summary>
4502             Break all links in the call tree to free as much memory as possible.   
4503             </summary>
4504         </member>
4505         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ToXml(System.IO.TextWriter)">
4506             <summary>
4507             Write an XML representtaion of the CallTree to 'writer'
4508             </summary>
4509         </member>
4510         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.ToString">
4511             <summary>
4512             An XML representtaion of the CallTree (for debugging)
4513             </summary>
4514         </member>
4515         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTree.AccumulateSumByID(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase},Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4516             <summary>
4517             Traverse the subtree of 'treeNode' into the m_sumByID dictionary.   We don't want to
4518             double-count inclusive times, so we have to keep track of all callers currently on the
4519             stack and we only add inclusive times for nodes that are not already on the stack.  
4520             </summary>
4521         </member>
4522         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind">
4523             <summary>
4524             ScalingPolicyKind represents the desired way to scale the metric in the samples.  
4525             </summary>
4526         </member>
4527         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind.ScaleToData">
4528             <summary>
4529             This is the default.  In this policy, 100% is chosen so that the histogram is scaled as best it can.   
4530             </summary>
4531         </member>
4532         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind.TimeMetric">
4533             <summary>
4534             It assumes that the metric represents time 
4535             </summary>
4536         </member>
4537         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeIndex">
4538             <summary>
4539             Represents a unique ID for a node in a call tree.  Can be used to look up a call tree node easily.  
4540             It is a dense value (from 0 up to a maximum).  
4541             </summary>
4542         </member>
4543         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeIndex.Invalid">
4544             <summary>
4545             An Invalid Node Index.
4546             </summary>
4547         </member>
4548         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase">
4549             <summary>
4550             A  CallTreeNodeBase is the inforation in a CallTreeNode without parent or child relationships.  
4551             ByName nodes and Caller-Callee nodes need this because they either don't have or need different 
4552             parent-child relationships. 
4553             </summary>
4554         </member>
4555         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.Index">
4556             <summary>
4557             Returns a unique small, dense number (suitable for looking up in an array) that represents 
4558             this call tree node (unlike the ID, which more like the name of the frame of the node), so you
4559             can have many nodes with the same name, but only one with the same index.    See CallTree.GetNodeIndexLimit.
4560             </summary>
4561         </member>
4562         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4563             <summary>
4564             Create a CallTreeNodeBase (a CallTreeNode without children) which is a copy of another one.  
4565             </summary>
4566         </member>
4567         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.Name">
4568             <summary>
4569             The Frame name that this tree node represents.   
4570             </summary>
4571         </member>
4572         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.DisplayName">
4573             <summary>
4574             Currently the same as Name, but could contain additional info.  
4575             Suitable for display but not for programmatic comparison.  
4576             </summary>
4577         </member>
4578         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ID">
4579              <summary>
4580              The ID represents a most fine grained uniqueness associated with this node.   It can represent
4581              a method, but for sources that support 'goto source' functionality these IDs actually represent
4582              particular lines (or more precisely program counter locations), within the method.    Thus it is 
4583              very likely that there are call tree nodes that have the same name but different IDs.  
4584              
4585              This can be StackSourceFrameIndex.Invalid for Caller-callee nodes (which have names, but no useful ID) 
4586             
4587              If ID != Invalid, and the IDs are the same then the names are guaranteed to be the same.  
4588              </summary>
4589         </member>
4590         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetric">
4591             <summary>
4592             The sum of the metric of all samples that are in this node or any child of this node (recursively)
4593             </summary>
4594         </member>
4595         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.AverageInclusiveMetric">
4596             <summary>
4597             The average metric of all samples that are in this node or any child of this node (recursively).
4598             This is simply InclusiveMetric / InclusiveCount.
4599             </summary>
4600         </member>
4601         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveMetric">
4602             <summary>
4603             The sum of the metric of all samples that are in this node 
4604             </summary>
4605         </member>
4606         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedMetric">
4607             <summary>
4608             The sum of the metric of all samples in this node that are there because they were folded (inlined).   It is alwasy less than or equal to ExclusiveMetric.  
4609             </summary>
4610         </member>
4611         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveCount">
4612             <summary>
4613             The sum of the count of all samples that are in this node or any child of this node (recursively)
4614             </summary>
4615         </member>
4616         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveCount">
4617             <summary>
4618             The sum of the count of all samples that are in this node 
4619             </summary>
4620         </member>
4621         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedCount">
4622             <summary>
4623             The sum of the count of all samples in this node that are there because they were folded (inlined).   It is alwasy less than or equal to ExclusiveCount.  
4624             </summary>
4625         </member>
4626         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricPercent">
4627             <summary>
4628             The inclusive metric, normalized to the total metric for the entire tree.  
4629             </summary>
4630         </member>
4631         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveMetricPercent">
4632             <summary>
4633             The exclusive metric, normalized to the total metric for the entire tree.  
4634             </summary>
4635         </member>
4636         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ExclusiveFoldedMetricPercent">
4637             <summary>
4638             The exclusive folded metric, normalized to the total metric for the entire tree.  
4639             </summary>
4640         </member>
4641         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FirstTimeRelativeMSec">
4642             <summary>
4643             The time of the first sample for this node or any of its children (recursively)
4644             </summary>
4645         </member>
4646         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FirstTimeRelMSec">
4647             <summary>
4648             The time of the first sample for this node or any of its children (recursively)
4649             </summary>
4650         </member>
4651         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.LastTimeRelativeMSec">
4652             <summary>
4653             The time of the last sample for this node or any of its children (recursively)
4654             </summary>
4655         </member>
4656         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.LastTimeRelMSec">
4657             <summary>
4658             The time of the last sample for this node or any of its children (recursively)
4659             </summary>
4660         </member>
4661         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.DurationMSec">
4662             <summary>
4663             The difference between the first and last sample (in MSec).  
4664             </summary>
4665         </member>
4666         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.CallTree">
4667             <summary>
4668             The call tree that contains this node.  
4669             </summary>
4670         </member>
4671         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByTime">
4672             <summary>
4673             Returns the histogram that groups of samples associated with this node or any of its children by time buckets
4674             </summary>
4675         </member>
4676         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByTimeString">
4677             <summary>
4678             Returns a string that represents the InclusiveMetricByTime Histogram by using character for every bucket (like PerfView)
4679             </summary>
4680         </member>
4681         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByScenario">
4682             <summary>
4683             Returns the histogram that groups of samples associated with this node or any of its children by scenario buckets
4684             </summary>
4685         </member>
4686         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.InclusiveMetricByScenarioString">
4687             <summary>
4688             Returns a string that represents the InclusiveMetricByScenario Histogram by using character for every bucket (like PerfView)
4689             </summary>
4690         </member>
4691         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetSamples(System.Boolean,System.Func{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,System.Boolean})">
4692             <summary>
4693             Returns all the original stack samples in this node.  If exclusive==true then just he
4694             sample exclusively in this node are returned, otherwise it is the inclusive samples.   
4695             
4696             If the original stack source that was used to create this CodeTreeNode was a FilterStackSource
4697             then that filtering is removed in the returned Samples.  
4698             
4699             Returns the total number of samples (the number of times 'callback' is called)
4700             
4701             If the callback returns false, the iteration over samples stops. 
4702             </summary>
4703         </member>
4704         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetTrees(System.Action{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4705             <summary>
4706             While 'GetSamples' can return all the samples in the tree, this is a relatively
4707             inefficient way of representing the samples.   Instead you can return a list of
4708             trees whose samples represent all the samples.   This is what GetTrees does.
4709             It calls 'callback' on a set of trees that taken as a whole have all the samples
4710             in 'node'.  
4711             
4712             Note you ave to be careful when using this for inclusive summation of byname nodes because 
4713             you will get trees that 'overlap' (bname nodes might refer into the 'middle' of another
4714             call tree).   This can be avoided pretty easily by simply stopping inclusive traversal 
4715             whenever a tree node with that ID occurs (see GetSamples for an example). 
4716             </summary>
4717         </member>
4718         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ToXmlAttribs(System.IO.TextWriter)">
4719             <summary>
4720             Returns a string representing the set of XML attributes that can be added to another XML element.  
4721             </summary>
4722         </member>
4723         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.ToString">
4724             <summary>
4725             An XML representation of the CallTreeNodeBase (for debugging)
4726             </summary>
4727         </member>
4728         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.FreeMemory">
4729             <summary>
4730             The GUI sadly holds on to Call things in the model in its cache, and call tree nodes have linkes to whole
4731             call tree.  To avoid the GUI cache from holding on to the ENTIRE MODEL, we neuter the nodes when we are
4732             done with them so that even if they are pointed to by the GUI cache it does not hold onto most of the 
4733             (dead) model.    FreeMemory does this neutering.  
4734             </summary>
4735         </member>
4736         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.CombineByIdSamples(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase,System.Boolean,System.Double,System.Boolean)">
4737             <summary>
4738             Combines the 'this' node with 'otherNode'.   If 'newOnStack' is true, then the inclusive
4739             metrics are also updated.  
4740             
4741             Note that I DON'T accumulate other.m_samples into this.m_samples.   This is because we want to share
4742             samples as much a possible.  Thus nodes remember their samples by pointing at other call trees
4743             and you fetch the samples by an inclusive walk of the tree.  
4744             </summary>
4745         </member>
4746         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase.GetSamplesForTreeNode(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Boolean,System.Func{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,System.Boolean},Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
4747             <summary>
4748             To avoid double-counting for byname nodes, with we can be told to exclude any children with a particular ID 
4749             (the ID of the ByName node itself) if are doing the inclusive case.   The goal is to count every reachable
4750             tree exactly once.  We do this by conceptually 'marking' each node with ID at the top level (when they are 
4751             enumerated as children of the Byname node), and thus any node with that excludeChildrenWithID is conceptually
4752             marked if you encounter it as a child in the tree itself (so you should exclude it).  The result is that 
4753             every node is visited exactly once (without the expense of having a 'visited' bit).  
4754             </summary>
4755         </member>
4756         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode">
4757             <summary>
4758             Represents a single treeNode in a CallTree 
4759             
4760             Each node keeps all the sample with the same path to the root.  
4761             Each node also remembers its parent (caller) and children (callees).
4762             The nodes also keeps the IDs of all its samples (so no information
4763             is lost, just sorted by stack).   You get at this through the
4764             CallTreeNodeBase.GetSamples method.  
4765             </summary>
4766         </member>
4767         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.Caller">
4768             <summary>
4769             The caller (parent) of this node
4770             </summary>
4771         </member>
4772         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.Callees">
4773             <summary>
4774             The nodes this node calls (its children). 
4775             </summary>
4776         </member>
4777         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IsLeaf">
4778             <summary>
4779             Returns true if Callees is empty.  
4780             </summary>
4781         </member>
4782         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.AllCallees">
4783             <summary>
4784             AllCallees is an extension of CallTreesNodes to support graphs (e.g. memory heaps).   
4785             It always starts with the 'normal' Callees, however in addition if we are
4786             displaying a Graph, it will also children that were 'pruned' when the graph was 
4787             transformed into a tree.  (by using StackSource.GetRefs).   
4788             </summary>
4789         </member>
4790         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.HasChildren">
4791             <summary>
4792             Returns true if AllCallees is non-empty.  
4793             </summary>
4794         </member>
4795         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IsGraphNode">
4796             <summary>
4797             Returns true if the call trees came from a graph (thus AllCallees may be strictly larger than Callees)
4798             </summary>
4799         </member>
4800         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.ToXml(System.IO.TextWriter,System.String)">
4801             <summary>
4802             Writes an XML representation of the call tree Node  it 'writer'
4803             </summary>
4804         </member>
4805         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.ToString">
4806             <summary>
4807             Returns an XML representation of the call tree Node (for debugging);
4808             </summary>
4809         </member>
4810         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.GetBrokenStackCount">
4811             <summary>
4812             Adds up the counts of all nodes called 'BROKEN' nodes in a particular tree node
4813             
4814             This is a utility function.  
4815             </summary>
4816         </member>
4817         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.IndentString(System.Boolean)">
4818             <summary>
4819             Creates a string that has spaces | and + signs that represent the indentation level 
4820             for the tree node.  (Called from XAML)
4821             </summary>
4822         </member>
4823         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4824             <summary>
4825             Implements CallTreeNodesBase interface
4826             </summary>
4827         </member>
4828         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.SortAll(System.Collections.Generic.IComparer{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode},Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4829             <summary>
4830             Sort the childre of every node in the te
4831             </summary>
4832             <param name="comparer"></param>
4833         </member>
4834         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.GetCallees">
4835             <summary>
4836             Some calltrees already fill in their children, others do so lazily, in which case they 
4837             override this method.  
4838             </summary>
4839         </member>
4840         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode.FoldNodesUnder(System.Single,System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4841             <summary>
4842             Fold away any nodes having less than 'minInclusiveMetric'.  If 'sumByID' is non-null then the 
4843             only nodes that have a less then the minInclusiveMetric for the whole trace are folded. 
4844             </summary>
4845         </member>
4846         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode">
4847             <summary>
4848             A CallerCalleeNode gives statistics that focus on a NAME.  (unlike calltrees that use ID)
4849             It takes all stackSource that have callStacks that include that treeNode and compute the metrics for
4850             all the callers and all the callees for that treeNode.  
4851             </summary>
4852         </member>
4853         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.#ctor(System.String,Microsoft.Diagnostics.Tracing.Stacks.CallTree)">
4854             <summary>
4855             Given a complete call tree, and a Name within that call tree to focus on, create a
4856             CallerCalleeNode that represents the single Caller-Callee view for that treeNode. 
4857             </summary>
4858         </member>
4859         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Callers">
4860             <summary>
4861             The list of CallTreeNodeBase nodes that called the method represented by this CallerCalleeNode
4862             </summary>
4863         </member>
4864         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Callees">
4865             <summary>
4866             The list of CallTreeNodeBase nodes that where called by the method represented by this CallerCalleeNode
4867             </summary>
4868         </member>
4869         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.ToXml(System.IO.TextWriter,System.String)">
4870             <summary>
4871             wrtites an XML representation of the call tree Node  it 'writer'
4872             </summary>
4873         </member>
4874         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.ToString">
4875             <summary>
4876             Returns an XML representation of the CallerCalleeNode (for debugging);
4877             </summary>
4878         </member>
4879         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4880             <summary>
4881             Implements CallTreeNodesBase interface
4882             </summary>
4883         </member>
4884         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.AccumulateSamplesForNode(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Int32,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
4885             <summary>
4886             A caller callee view is a summation which centers around one 'focus' node which is represented by the CallerCalleeNode.
4887             This node has a caller and callee list, and these nodes (as well as the CallerCalleNode itself) represent the aggregation
4888             over the entire tree.
4889             
4890             AccumulateSamplesForNode is the routine that takes a part of a aggregated call tree (represented by 'treeNode' and adds
4891             in the statistics for that call tree into the CallerCalleeNode aggregations (and its caller and callee lists).  
4892             
4893             'recursionsCount' is the number of times the focus node name has occurred in the path from 'treeNode' to the root.   In 
4894             addition to setting the CallerCalleeNode aggregation, it also returns a 'weightedSummary' inclusive aggregation 
4895             FOR JUST treeNode (the CallerCalleNode is an aggregation over the entire call tree accumulated so far).  
4896             
4897             The key problem for this routine to avoid is double counting of inclusive samples in the face of recursive functions. 
4898             Thus all samples are weighted by the recursion count before being included in 'weightedSummaryRet (as well as in
4899             the CallerCalleeNode and its Callers and Callees).    
4900             
4901             An important optimization is the ability to NOT create (but rather reuse) CallTreeNodes when returning weightedSummaryRet.
4902             To accomplish this the weightedSummaryScaleRet is needed.  To get the correct numerical value for weightedSummaryRet, you 
4903             actually have to scale values by weightedSummaryScaleRet before use.   This allows us to represent weights of 0 (subtree has 
4904             no calls to the focus node), or cases where the subtree is completely uniform in its weighting (the subtree does not contain
4905             any additional focus nodes), by simply returning the tree node itself and scaling it by the recursion count).  
4906             
4907             isUniformRet is set to false if anyplace in 'treeNode' does not have the scaling factor weightedSummaryScaleRet.  This
4908             means the the caller cannot simply scale 'treeNode' by a weight to get weightedSummaryRet.  
4909             </summary>
4910         </member>
4911         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CallerCalleeNode.Find(System.Collections.Generic.Dictionary{System.String,Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase}@,System.String)">
4912             <summary>
4913             Find the Caller-Callee treeNode in 'elems' with name 'frameName'.  Always succeeds because it
4914             creates one if necessary. 
4915             </summary>
4916         </member>
4917         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode">
4918             <summary>
4919             AggregateCallTreeNode supports a multi-level caller-callee view.   
4920             
4921             It does this by allow you to take any 'focus' node (typically a byname node)
4922             and compute a tree of its callers and a tree of its callees.   You do this
4923             by passing the node of interested to either the 'CallerTree' or 'CalleeTrees'.
4924             
4925             The AggregateCallTreeNode remembers if if is a caller or callee node and its
4926             'Callees' method returns the children (which may in fact be Callers). 
4927             
4928             What is nice about 'AggregateCallTreeNode is that it is lazy, and you only 
4929             form the part of the tree you actually explore.     A classic 'caller-callee' 
4930             view is simply the caller and callee trees only explored to depth 1.
4931             </summary>
4932         </member>
4933         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.CallerTree(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4934             <summary>
4935             Given any node (typically a byName node, but it works on any node), Create a 
4936             tree rooted at 'node' that represents the callers of that node.  
4937             </summary>
4938         </member>
4939         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.CalleeTree(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase)">
4940             <summary>
4941             Given any node (typically a byName node, but it works on any node), Create a 
4942             tree rooted at 'node' that represents the callees of that node.  
4943             </summary>
4944         </member>
4945         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.GetTrees(System.Action{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4946             <summary>
4947             Calls 'callback' for each distinct call tree in this node.  Note that the same
4948             trees can overlap (in the case of recursive functions), so you need a mechanism
4949             for visiting a tree only once.  
4950             </summary>
4951         </member>
4952         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.ToString">
4953             <summary>
4954             Returns an XML representation of the AggregateCallTreeNode (for debugging);
4955             </summary>
4956         </member>
4957         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.FreeMemory(System.Collections.Generic.Stack{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNodeBase})">
4958             <summary>
4959             Implementation of CallTreeNodeBase interface
4960             </summary>
4961         </member>
4962         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.GetCallees">
4963             <summary>
4964             Implementation of CallTreeNode interface
4965             </summary>
4966         </member>
4967         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.MergeCaller(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode},System.Int32)">
4968             <summary>
4969             See m_callerOffset and MergeCallee for more.
4970             
4971             The 'this' node is a AggregateCallTree representing the 'callers' nodes.  Like 
4972             MergeCallee the aggregate node represents a list of CallTreeNodes.   However unlike
4973             MergeCallee, the list of CallTreeNodes each represent a sample (a complete call stack)
4974             and 'callerOffset' indicates how far 'up' that stack is the node of interest.  
4975             </summary>
4976         </member>
4977         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.MergeCallee(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode})">
4978             <summary>
4979             An aggregateCallTreeNode is exactly that, the sum of several callTrees
4980             (each of which represent a number of individual samples).    Thus we had to 
4981             take each sample (which is 'treenode' and merge it into the aggregate.
4982             We do this one at a time.   Thus we call MergeCallee for each calltree 
4983             in our list and we find the 'callees' of each of those nodes, and create 
4984             aggregates for the children (which is in calleeList).   
4985             
4986             This routine is not recursive and does not touch most of the tree but
4987             it does call SubtractOutTrees which is recursive and may look at a lot
4988             of the tree (although we try to minimize this)
4989             </summary>
4990         </member>
4991         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.SubtractOutTrees(Microsoft.Diagnostics.Tracing.Stacks.CallTreeNode,Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode)">
4992             <summary>
4993             Traverse 'treeCallee' and subtract out the inclusive time for any tree that matches 'idToExclude' from the node 'statsRet'.
4994             This is needed in AggregateCallTrees because the same trees from the focus node are in the list to aggregate, but are also
4995             in the subtree's in various places (and thus are counted twice).   We solve this by walking this subtree (in this routine)
4996             and subtracting out any nodes that match 'idToExclude'.   
4997             
4998             As an optimization this routine also sets the m_recurision bit 'statsRet' if anywhere in 'treeCallee' we do find an id to 
4999             exclude.  That way in a common case (where there is no instances of 'idToExclude') we don't have to actualy walk the
5000             tree the second time (we simply know that there is no adjustment necessary.   
5001             </summary>
5002         </member>
5003         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.m_trees">
5004             <summary>
5005             An AggregateCallTree remembers all its samples by maintaining a list of call trees 
5006             that actually contain the samples that the Aggregate represents.  m_trees hold this.   
5007             </summary>
5008         </member>
5009         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.AggregateCallTreeNode.m_callerOffset">
5010             <summary>
5011             AggregateCallTreeNode can represent either a 'callers' tree or a 'callees' tree.   For 
5012             the 'callers' tree case the node represented by the aggregate does NOT have same ID as
5013             the tree in the m_trees list.   Instead the aggregate is some node 'up the chain' toward 
5014             the caller.  m_callerOffset keeps track of this (it is the same number for all elements 
5015             in m_trees).   
5016             
5017             For callee nodes, this number is not needed.   Thus we use a illegal value (-1) to 
5018             represent that fact that the node is a callee node rather than a caller node.  
5019             </summary>
5020         </member>
5021         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.ChromiumStackSourceWriter.WriteStackViewAsJson(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.String,System.Boolean)">
5022             <summary>
5023             exports provided StackSource to a Chromium Trace File format 
5024             schema: https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/
5025             </summary>
5026         </member>
5027         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.SpeedScopeStackSourceWriter.WriteStackViewAsJson(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.String)">
5028             <summary>
5029             exports provided StackSource to a https://www.speedscope.app/ format 
5030             schema: https://www.speedscope.app/file-format-schema.json
5031             </summary>
5032         </member>
5033         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Formats.SpeedScopeStackSourceWriter.WriteToFile(System.Collections.Generic.IReadOnlyDictionary{System.String,System.Collections.Generic.IReadOnlyList{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent}},System.Collections.Generic.IReadOnlyList{System.String},System.IO.TextWriter,System.String)">
5034             <summary>
5035             writes pre-calculated data to SpeedScope format
5036             </summary>
5037         </member>
5038         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.Histogram">
5039             <summary>
5040             A Histogram is logically an array of floating point values.  Often they
5041             represent frequency, but it can be some other metric.  The X axis can 
5042             represent different things (time, scenario).  It is the HisogramContoller
5043             which understands what the X axis is.   Histograms know their HistogramController
5044             but not the reverse.  
5045             
5046             Often Histograms are sparse (most array elements are zero), so the represnetation
5047             is designed to optimzed for this case (an array of non-zero index, value pairs). 
5048             </summary>
5049         </member>
5050         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.#ctor(Microsoft.Diagnostics.Tracing.Stacks.HistogramController)">
5051             <summary>
5052             Create a new histogram.  Every histogram needs a controller but these controllers 
5053             can be shared among many histograms.  
5054             </summary>
5055         </member>
5056         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5057             <summary>
5058             Add a sample to this histogram.
5059             </summary>
5060             <param name="sample">The sample to add.</param>
5061         </member>
5062         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddMetric(System.Single,System.Int32)">
5063             <summary>
5064             Add an amount to a bucket in this histogram.
5065             </summary>
5066             <param name="metric">The amount to add to the bucket.</param>
5067             <param name="bucket">The bucket to add to.</param>
5068         </member>
5069         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddScaled(Microsoft.Diagnostics.Tracing.Stacks.Histogram,System.Double)">
5070             <summary>
5071             Computes this = this + histogram * weight in place (this is updated).  
5072             </summary>
5073         </member>
5074         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Count">
5075             <summary>
5076             The number of buckets in this histogram.
5077             </summary>
5078         </member>
5079         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Controller">
5080             <summary>
5081             The <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController"/> that controls this histogram.
5082             </summary>
5083         </member>
5084         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Item(System.Int32)">
5085             <summary>
5086             Get the metric contained in a bucket.
5087             </summary>
5088             <param name="index">The bucket to retrieve.</param>
5089             <returns>The metric contained in that bucket.</returns>
5090         </member>
5091         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.Clone">
5092             <summary>
5093             Make a copy of this histogram.
5094             </summary>
5095             <returns>An independent copy of this histogram.</returns>
5096         </member>
5097         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.ToString">
5098             <summary>
5099             A string representation (for debugging)
5100             </summary>
5101             <returns></returns>
5102         </member>
5103         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.#ctor(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5104             <summary>
5105             Create a histogram that is a copy of another histogram.
5106             </summary>
5107             <param name="other">The histogram to copy.</param>
5108         </member>
5109         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.GetEnumerator">
5110             <summary>
5111             Implementes IEnumerable interface
5112             </summary>
5113         </member>
5114         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.System#Collections#IEnumerable#GetEnumerator">
5115             <summary>
5116             Implementes IEnumerable interface
5117             </summary>
5118         </member>
5119         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.GetEnumerable">
5120             <summary>
5121             Get an IEnumerable that can be used to enumerate the metrics stored in the buckets of this Histogram.
5122             </summary>
5123         </member>
5124         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.Histogram.m_controller">
5125             <summary>
5126             The controller for this histogram.
5127             </summary>
5128         </member>
5129         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController">
5130              <summary>
5131              A Histogram is conceputually an array of floating point values.   A Histogram Controller
5132              contains all the information besides the values themselves need to understand the array
5133              of floating point value.   There are alot of Histograms, however they all tend to share
5134              the same histogram controller.   Thus Histograms know their Histogram controller, but not
5135              the reverse.  
5136              
5137              Thus HistogramContoller is a abstract class (we have one for time, and one for scenarios).  
5138             
5139              HistogramControllers are responsible for:
5140              
5141              - Adding a sample to the histogram for a node (see <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)"/>)
5142              - Converting a histogram to its string representation see (<see cref="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)"/>)
5143              - Managing the size and scale of histograms and their corresponding display strings
5144              </summary>
5145         </member>
5146         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.Scale">
5147             <summary>
5148             The scale factor for histograms controlled by this HistogramController.
5149             </summary>
5150         </member>
5151         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.BucketCount">
5152             <summary>
5153             The number of buckets in each histogram controlled by this HistogramController.
5154             </summary>
5155         </member>
5156         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CharacterCount">
5157             <summary>
5158             The number of characters in the display string for histograms controlled by this HistogramController.
5159             Buckets are a logial concept, where CharacterCount is a visual concept (how many you can see on the 
5160             screen right now).  
5161             </summary>
5162         </member>
5163         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.Tree">
5164             <summary>
5165             The CallTree managed by this HistogramController.
5166             </summary>
5167         </member>
5168         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.InvalidateScale">
5169             <summary>
5170             Force recalculation of the scale parameter.
5171             </summary>
5172         </member>
5173         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5174             <summary>
5175             Add a sample to the histogram for a node.
5176             </summary>
5177             <param name="histogram">The histogram to add this sample to. Must be controlled by this HistogramController.</param>
5178             <param name="sample">The sample to add.</param>
5179             <remarks>
5180             Overriding classes are responsible for extracting the metric, scaling the metric,
5181             determining the appropriate bucket or buckets, and adding the metric to the histogram using <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.Histogram.AddMetric(System.Single,System.Int32)"/>.
5182             </remarks>
5183         </member>
5184         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5185             <summary>
5186             Gets human-readable information about a range of histogram characters.
5187             </summary>
5188             <param name="start">The start character index (inclusive).</param>
5189             <param name="end">The end character index (exclusive).</param>
5190             <param name="histogram">The histogram.</param>
5191             <returns>A string containing information about the contents of that character range.</returns>
5192         </member>
5193         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5194             <summary>
5195             Convert a histogram into its display string.
5196             </summary>
5197             <param name="histogram">The histogram to convert to a string.</param>
5198             <returns>A string suitable for GUI display.</returns>
5199         </member>
5200         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.HistogramString(System.Collections.Generic.IEnumerable{System.Single},System.Int32,System.Double,System.Int32)">
5201             <summary>
5202             A utility function that turns an array of floats into a ASCII character graph.  
5203             </summary>
5204         </member>
5205         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.HistogramString(System.Single[],System.Double,System.Int32)">
5206             <summary>
5207             A utility function that turns an array of floats into a ASCII character graph.  
5208             </summary>
5209         </member>
5210         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree)">
5211             <summary>
5212             Initialize a new HistogramController.
5213             </summary>
5214             <param name="tree">The CallTree that this HistogramController controls.</param>
5215         </member>
5216         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CalculateScale">
5217             <summary>
5218             Calculate the scale factor for this histogram.
5219             </summary>
5220             <returns>The scale factor for this histogram.</returns>
5221         </member>
5222         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.CalculateAverageScale(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5223             <summary>
5224             Calculates an average scale factor for a histogram.
5225             </summary>
5226             <param name="hist">The root histogram to calculate against.</param>
5227             <returns>A scale factor that will normalize the maximum value to 200%.</returns>
5228         </member>
5229         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.HistogramController.m_scale">
5230             <summary>
5231             The scale parameter. 0.0 if uncalculated.
5232             </summary>
5233         </member>
5234         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex">
5235             <summary>
5236             An enum representing a displayed histogram bucket (one character in a histogram string).
5237             </summary>
5238         </member>
5239         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex.Invalid">
5240             <summary>
5241             A HistogramCharacterIndex can be used to represent error conditions 
5242             </summary>
5243         </member>
5244         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController">
5245             <summary>
5246             A <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.HistogramController"/> that groups histograms by scenarios.
5247             </summary>
5248         </member>
5249         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree,System.Int32[],System.Int32,System.String[])">
5250             <summary>
5251             Initialize a new ScenarioHistogramController.
5252             </summary>
5253             <param name="tree">The CallTree to manage.</param>
5254             <param name="scenarios">An ordered array of scenario IDs to display.</param>
5255             <param name="totalScenarios">The total number of possible scenarios that can be supplied by the underlying StackSource.
5256             This number might be larger than the highest number in <paramref name="scenarios"/>.</param>
5257             <param name="scenarioNames">The names of the scenarios (for UI use).</param>
5258         </member>
5259         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetScenariosForCharacterIndex(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5260             <summary>
5261             Get a list of scenarios contained in a given bucket.
5262             </summary>
5263             <param name="bucket">The bucket to look up.</param>
5264             <returns>The scenarios contained in that bucket.</returns>
5265         </member>
5266         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetScenariosForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5267             <summary>
5268             Get a list of scenarios contained in a given bucket range.
5269             </summary>
5270             <param name="start">The start of the bucket range (inclusive).</param>
5271             <param name="end">The end of the bucket range (exclusive).</param>
5272             <returns>The scenarios contained in that range of buckets.</returns>
5273         </member>
5274         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5275             <summary>
5276             Add a sample to a histogram controlled by this HistogramController.
5277             </summary>
5278             <param name="histogram">The histogram to add the sample to.</param>
5279             <param name="sample">The sample to add.</param>
5280         </member>
5281         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetNameForScenario(System.Int32)">
5282             <summary>
5283             Get the human-readable name for a scenario.
5284             </summary>
5285             <param name="scenario">The ID of the scenario to look up.</param>
5286             <returns>The human-readable name for that scenario.</returns>
5287         </member>
5288         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5289             <summary>
5290             Get the human-readable names for all scenarios contained in a range of histogram characters.
5291             </summary>
5292             <param name="start">The (inclusive) start index of the range.</param>
5293             <param name="end">The (exclusive) end index of the range.</param>
5294             <param name="histogram">The histogram.</param>
5295             <returns>A comma-separated list of scenario names contained in that range.</returns>
5296         </member>
5297         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5298             <summary>
5299             Convert a histogram into a string suitable for UI display.
5300             </summary>
5301             <param name="histogram">The histogram to convert.</param>
5302             <returns>A string representing the histogram that is suitable for UI display.</returns>
5303         </member>
5304         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.CalculateScale">
5305             <summary>
5306             Calculate the scale factor for all histograms controlled by this ScenarioHistogramController.
5307             </summary>
5308             <returns>
5309             In the current implementation, returns a scale that normalizes 100% to half of the maximum value at the root.
5310             </returns>
5311         </member>
5312         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_characterFromScenario">
5313             <summary>
5314             An array mapping each scenario to a bucket.
5315             </summary>
5316         </member>
5317         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_scenariosFromCharacter">
5318             <summary>
5319             An array mapping each bucket to a list of scenarios.
5320             </summary>
5321         </member>
5322         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.ScenarioHistogramController.m_scenarioNames">
5323             <summary>
5324             An array mapping each scenario to its name.
5325             </summary>
5326         </member>
5327         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController">
5328             <summary>
5329             A HistogramController holds all the information to understand the buckets of a histogram
5330             (basically everything except the array of metrics itself.   For time this is the
5331             start and end time  
5332             </summary>
5333         </member>
5334         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.#ctor(Microsoft.Diagnostics.Tracing.Stacks.CallTree,System.Double,System.Double)">
5335             <summary>
5336             Create a new TimeHistogramController.
5337             </summary>
5338             <param name="tree">The CallTree to control with this controller.</param>
5339             <param name="start">The start time of the histogram.</param>
5340             <param name="end">The end time of the histogram.</param>
5341         </member>
5342         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.Start">
5343             <summary>
5344             The start time of the histogram.
5345             </summary>
5346         </member>
5347         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.End">
5348             <summary>
5349             The end time of the histogram.
5350             </summary>
5351         </member>
5352         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetStartTimeForBucket(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex)">
5353             <summary>
5354             Gets the start time for the histogram bucket represented by a character.
5355             </summary>
5356             <param name="bucket">The index of the character to look up.</param>
5357             <returns>The start time of the bucket represented by the character.</returns>
5358         </member>
5359         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.BucketDuration">
5360             <summary>
5361             The duration of time represented by each bucket.
5362             </summary>
5363         </member>
5364         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.CalculateScale">
5365             <summary>
5366             Implements HistogramController interface
5367             </summary>
5368         </member>
5369         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.AddSample(Microsoft.Diagnostics.Tracing.Stacks.Histogram,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5370             <summary>
5371             Implements HistogramController interface
5372             </summary>
5373         </member>
5374         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetInfoForCharacterRange(Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.HistogramCharacterIndex,Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5375             <summary>
5376             Implements HistogramController interface
5377             </summary>
5378         </member>
5379         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TimeHistogramController.GetDisplayString(Microsoft.Diagnostics.Tracing.Stacks.Histogram)">
5380             <summary>
5381             Implements HistogramController interface
5382             </summary>
5383         </member>
5384         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard">
5385             <summary>
5386             This structure provides a clean API for a lightweight recursion stack guard to prevent StackOverflow exceptions
5387             We do ultimately do a stack-overflow to prevent infinite recursion, but it is now under our
5388             control and much larger than you may get on any one thread stack.  
5389             </summary>
5390         </member>
5391         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.SingleThreadRecursionLimit">
5392             <summary>
5393             For recursive methods that need to process deep stacks, this constant defines the limit for recursion within
5394             a single thread. After reaching this limit, methods need to trampoline to a new thread before continuing to
5395             recurse.
5396             </summary>
5397         </member>
5398         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.MaxResets">
5399             <summary>
5400             To prevent run-away recursion, fail after this depth (in this case 20*400 = 8K)
5401             </summary>
5402         </member>
5403         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Depth">
5404             <summary>
5405             The amount of recursion we have currently done.  
5406             </summary>
5407         </member>
5408         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Entry">
5409             <summary>
5410             Gets the recursion guard for entering a recursive method.
5411             </summary>
5412             <remarks>
5413             This is equivalent to the default <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard"/> value.
5414             </remarks>
5415         </member>
5416         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.Recurse">
5417             <summary>
5418             Gets an updated recursion guard for recursing into a method.
5419             </summary>
5420         </member>
5421         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.ResetOnNewThread">
5422             <summary>
5423             Gets an updated recursion guard for continuing execution on a new thread.
5424             </summary>
5425         </member>
5426         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard.RequiresNewThread">
5427             <summary>
5428             Gets a value indicating whether the current operation has exceeded the recursion depth for a single thread,
5429             and needs to continue executing on a new thread.
5430             </summary>
5431         </member>
5432         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSource">
5433             <summary>
5434             A stack source is a logically a list of StackSourceSamples.  Each sample has a metric and stack (hence the name StackSource)
5435             The stacks are represented as indexes that the  StackSourceStacks base class can resolve into frame names and stack chains.  
5436             The result is very efficient (no string processing) way of processing the conceptual list of stack samples.  
5437             </summary>    
5438         </member>
5439         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ProduceSamples(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5440             <summary>
5441             Call 'callback' on every sample in the StackSource.   Will be done linearly and only
5442             one callback will be active simultaneously.  
5443             </summary>
5444         </member>
5445         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5446             <summary>
5447             Call 'callback' on every sample in the StackSource.   Will be done linearly and only
5448             one callback will be active simultaneously.  
5449             </summary>
5450         </member>
5451         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SamplesImmutable">
5452             <summary>
5453             If this is overridden to return true, then during the 'Foeach' callback you can save references
5454             to the samples you are given because they will not be overridden by the stack source.  If this is
5455             false you must make a copy of the sample if you with to remember it.  
5456             </summary>
5457         </member>
5458         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ParallelForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Int32)">
5459             <summary>
5460             Also called 'callback' on every sample in the StackSource however there may be more than
5461             one callback running simultaneously.    Thus 'callback' must be thread-safe and the order
5462             of the samples should not matter.   If desiredParallelism == 0 (the default) then the 
5463             implementation will choose a good value of parallelism. 
5464             </summary>
5465         </member>
5466         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.BaseStackSource">
5467             <summary>
5468             If this stack source is a source that simply groups another source, get the base source.  It will return
5469             itself if there is no base source.  
5470             </summary>
5471         </member>
5472         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
5473             <summary>
5474             If this source supports fetching the samples by index, this is how you get it.  Like ForEach the sample that
5475             is returned is not allowed to be modified.   Also the returned sample will become invalid the next time GetSampleIndex
5476             is called (we reuse the StackSourceSample on each call)
5477             </summary>
5478         </member>
5479         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SampleIndexLimit">
5480             <summary>
5481             Returns the limit on stack samples indexes (all index are strictly less than this).  Returns 0 if unknown.  
5482             </summary>
5483         </member>
5484         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SampleTimeRelativeMSecLimit">
5485             <summary>
5486             Returns a time which is greater than or equal the timestamp of any sample in the StackSource.   Returns 0 if unknown.  
5487             </summary>
5488         </member>
5489         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.ScenarioCount">
5490             <summary>
5491             In addition to Time and Metric a sample can have a Scneario number associated with it.   ScenarioCount 
5492             returns the number of such scnearios.   Returning 0 implies no scenario support.  
5493             </summary>
5494         </member>
5495         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.SamplingRate">
5496             <summary>
5497             StackSources can optionally support a sampling rate.   If the source supports it it will return
5498             non-null for the current sampling rate (1 if it is doing nothing).    Sampling is a way of speeding
5499             things up.  If you sample at a rate of 10, it means that only one out of every 10 samples is actually
5500             produced by 'ForEach'.   Note that it is expected that when the sampling rate is set the 
5501             source will correspondingly adjust the CountMultiplier, so that the total will look like no sampling
5502             is occuring 
5503             </summary>
5504         </member>
5505         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSource.IsGraphSource">
5506             <summary>
5507             If each 'callstack' is really a node in a graph (like MemoryGraphStackSource)
5508             Then return true.  If this returns true 'GetRefs' works. 
5509             </summary>
5510         </member>
5511         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.GetReferences(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,Microsoft.Diagnostics.Tracing.Stacks.RefDirection,System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex})">
5512             <summary>
5513             Only used if IsGraphSource==true.   If 'direction' is 'From' Calls 'callback' for node that is referred to FROM nodeIndex.
5514             If 'direction' is 'To' then it calls 'callback' for every node that refers TO nodeIndex.  This API returns references 
5515             that are not necessarily a tree (they can for DAGs or have cycles).  
5516             </summary>
5517         </member>
5518         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.Dump(System.String)">
5519             <summary>
5520             Dump the stack source to a file as XML.   Used for debugging.  
5521             </summary>
5522         </member>
5523         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSource.Dump(System.IO.TextWriter)">
5524             <summary>
5525             Dump the stack source to a TextWriter as XML.   Used for debugging.  
5526             </summary>
5527         </member>
5528         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.RefDirection">
5529             <summary>
5530             RefDirection represents the direction of the references in a heap graph.  
5531             </summary>
5532         </member>
5533         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RefDirection.From">
5534             <summary>
5535             Indicates that you are interested in referneces FROM the node of interest
5536             </summary>
5537         </member>
5538         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.RefDirection.To">
5539             <summary>
5540             Indicates that you are interested in referneces TO the node of interest
5541             </summary>
5542         </member>
5543         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks">
5544             <summary>
5545             Samples have stacks (lists of frames, each frame contains a name) associated with them.  This interface allows you to get 
5546             at this information.  We don't use normal objects to represent these but rather give each stack (and frame) a unique
5547             (dense) index.   This has a number of advantages over using objects to represent the stack.
5548             
5549                 * Indexes are very serialization friendly, and this data will be presisted.  Thus indexes are the natural form for data on disk. 
5550                 * It allows the data to be read from the serialized format (disk) lazily in a very straightfoward fashion, keeping only the
5551                     hottest elements in memory.  
5552                 * Users of this API can associate additional data with the call stacks or frames trivially and efficiently simply by
5553                     having an array indexed by the stack or frame index.   
5554                     
5555             So effectively a StackSourceStacks is simply a set of 'Get' methods that allow you to look up information given a Stack or
5556             frame index.  
5557             </summary>
5558         </member>
5559         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5560             <summary>
5561             Given a call stack, return the call stack of the caller.   This function can return StackSourceCallStackIndex.Discard
5562             which means that this sample should be discarded.  
5563             </summary>
5564         </member>
5565         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5566             <summary>
5567             For efficiency, m_frames are assumed have a integer ID instead of a string name that
5568             is unique to the frame.  Note that it is expected that GetFrameIndex(x) == GetFrameId(y) 
5569             then GetFrameName(x) == GetFrameName(y).   The converse does NOT have to be true (you 
5570             can reused the same name for distinct m_frames, however this can be confusing to your
5571             users, so be careful.  
5572             </summary>
5573         </member>
5574         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetNumberOfFoldedFrames(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5575             <summary>
5576             FilterStackSources can combine more than one frame into a given frame.  It is useful to know
5577             how many times this happened.   Returning 0 means no combining happened.  This metric does
5578             not include grouping, but only folding.  
5579             </summary>
5580         </member>
5581         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5582             <summary>
5583             Get the frame name from the FrameIndex.   If 'verboseName' is true then full module path is included.
5584             </summary>
5585         </member>
5586         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.CallStackIndexLimit">
5587             <summary>
5588             all StackSourceCallStackIndex are guaranteed to be less than this.  Allocate an array of this size to associate side information
5589             </summary>
5590         </member>
5591         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.CallFrameIndexLimit">
5592             <summary>
5593             all StackSourceFrameIndex are guaranteed to be less than this.  Allocate an array of this size to associate side information
5594             </summary>
5595         </member>
5596         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.OnlyManagedCodeStacks">
5597             <summary>
5598             True if it only has managed code stacks. Otherwise false.
5599             </summary>
5600         </member>
5601         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.StackDepth(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5602             <summary>
5603             Computes the depth (number of callers), associated with callStackIndex.  This routine is O(n) and mostly useful for debugging.  
5604             </summary>
5605         </member>
5606         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,System.Text.StringBuilder)">
5607             <summary>
5608             Returns an XML string representation of a 'sample'.  For debugging. 
5609             </summary>
5610         </member>
5611         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5612             <summary>
5613             Returns an XML string representation of a 'callStackIndex'.  For debugging. 
5614             </summary>
5615         </member>
5616         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample">
5617             <summary>
5618             StackSourceSample represents a single sample that has a stack.   It has a number of predefined data items associate with it
5619             including a stack, a metric and a time as well as other optional fields.  Note that all its properties are read-write.  
5620             It is basically a named tuple. 
5621             
5622             StackSource.ProductSamples push these.  
5623             
5624             In general StackSourceSample are NOT immutable but expected to be overwritted frequently.  Thus you need to copy 
5625             the sample if you want to keep a refernece to it.    
5626             </summary>
5627         </member>
5628         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.StackIndex">
5629             <summary>
5630             The Stack associated with the sample 
5631             </summary>
5632         </member>
5633         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Metric">
5634             <summary>
5635             The metric (cost) associated with the sample 
5636             </summary>
5637         </member>
5638         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.SampleIndex">
5639             <summary>
5640             If the source supports fetching samples by some ID, then SampleIndex returns this ID for the sample and 
5641             GetSampleByIndex is the API that converts this index into a sample again.  
5642             </summary>
5643         </member>
5644         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.TimeRelativeMSec">
5645             <summary>
5646             The time associated with the sample.  (can be left 0)
5647             </summary>
5648         </member>
5649         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Count">
5650             <summary>
5651             Normally the count of a sample is 1, however when you take a statistical sample, and you also have 
5652             other constraints (like you do when you are going a sample of heap memory),  you may need to have the
5653             count adjusted to something else.
5654             </summary>
5655         </member>
5656         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.Scenario">
5657             <summary>
5658             A scenario is simply a integer that represents some group the sample belongs to. 
5659             </summary>
5660         </member>
5661         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.ToString">
5662             <summary>
5663             Returns an XML string representing the sample
5664             </summary>
5665         </member>
5666         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.ToString(Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5667             <summary>
5668             Returns an XML string representing the sample, howevever this one can actually expand the stack because it is given the source
5669             </summary>
5670         </member>
5671         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5672             <summary>
5673             Create a StackSourceSample which is associated with 'source'.  
5674             </summary>
5675         </member>
5676         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5677             <summary>
5678             Copy a StackSourceSample from 'template'
5679             </summary>
5680             <param name="template"></param>
5681         </member>
5682         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex">
5683             <summary>
5684             Identifies a particular sample from the sample source, it allows 3rd parties to attach additional
5685             information to the sample by creating an array indexed by sampleIndex.  
5686             </summary>
5687         </member>
5688         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex.Invalid">
5689             <summary>
5690             Returned when no appropriate Sample exists.  
5691             </summary>
5692         </member>
5693         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex">
5694             <summary>
5695             An opaque handle that are 1-1 with a complete call stack
5696             
5697             </summary>
5698         </member>
5699         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Start">
5700             <summary>
5701             The first real call stack index (after the pseudo-ones before this)
5702             </summary>
5703         </member>
5704         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid">
5705             <summary>
5706             Returned when no appropriate CallStack exists.   (Top of stack)
5707             </summary>
5708         </member>
5709         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex">
5710             <summary>
5711             Identifies a particular frame within a stack   It represents a particular instruction pointer (IP) location 
5712             in the code or a group of such locations.  
5713             </summary>
5714         </member>
5715         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Root">
5716             <summary>
5717             Pseduo-node representing the root of all stacks
5718             </summary>
5719         </member>
5720         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Broken">
5721             <summary>
5722             Pseduo-frame that represents the caller of all broken stacks. 
5723             </summary>
5724         </member>
5725         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Unknown">
5726             <summary>
5727             Unknown what to do (Must be before the 'special ones below')  // Non negative represents normal m_frames (e.g. names of methods)
5728             </summary>
5729         </member>
5730         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Overhead">
5731             <summary>
5732              Profiling overhead (rundown)
5733             </summary>
5734         </member>
5735         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Start">
5736             <summary>
5737             The first real call stack index (after the pseudo-ones before this)
5738             </summary>
5739         </member>
5740         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid">
5741             <summary>
5742             Should not happen (uninitialized) (also means completely folded away)
5743             </summary>
5744         </member>
5745         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Discard">
5746             <summary>
5747             Sample has been filtered out (useful for filtering stack sources)
5748             </summary>
5749         </member>
5750         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex">
5751             <summary>
5752             A StackSourceModuleIndex uniquely identifies a module to the stack source.  
5753             </summary>
5754         </member>
5755         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex.Start">
5756             <summary>
5757             Start is where 'ordinary' module indexes start. 
5758             </summary>
5759         </member>
5760         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex.Invalid">
5761             <summary>
5762             Invalid is a module index that is never used and can be used to signal error conditions. 
5763             </summary>
5764         </member>
5765         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource">
5766             <summary>
5767             This stack source takes another and copies out all its events.   This allows you to 'replay' the source 
5768             efficiently when the original source only does this inefficiently.  
5769             </summary>
5770         </member>
5771         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.#ctor">
5772             <summary>
5773             Create a CopyStackSource that has no samples in it.  It can never have samples so it is only useful as a placeholder.  
5774             </summary>
5775         </member>
5776         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5777             <summary>
5778             Create a CopyStackSource that you can add samples which use indexes that 'sourceStacks' can decode.   All samples
5779             added to the stack source must only refer to this StackSourceStacks
5780             </summary>
5781         </member>
5782         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
5783             <summary>
5784             Add a sample to stack source.  it will clone 'sample' so sample can be overwritten after this method returns.  
5785             It is an error if 'sample' does not used the StackSourceStacks passed to the CopyStackSource at construction. 
5786             </summary>
5787         </member>
5788         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.Clone(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5789             <summary>
5790             Create a clone of the given stack soruce.  
5791             </summary>
5792             <param name="source"></param>
5793             <returns></returns>
5794         </member>
5795         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SourceStacks">
5796             <summary>
5797             Returns the StackSourceStacks that can interpret indexes for this stack source.  
5798             </summary>
5799         </member>
5800         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
5801             <summary>
5802             Implementation of the StackSource interface
5803             </summary>
5804         </member>
5805         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SampleIndexLimit">
5806             <summary>
5807             Implementation of the StackSource interface
5808             </summary>
5809         </member>
5810         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SampleTimeRelativeMSecLimit">
5811             <summary>
5812             Implementation of the StackSource interface
5813             </summary>
5814         </member>
5815         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
5816             <summary>
5817             Implementation of the StackSource interface
5818             </summary>
5819         </member>
5820         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.SamplesImmutable">
5821             <summary>
5822             Implementation of the StackSource interface
5823             </summary>
5824         </member>
5825         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5826             <summary>
5827             Implementation of the StackSource interface
5828             </summary>
5829         </member>
5830         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5831             <summary>
5832             Implementation of the StackSource interface
5833             </summary>
5834         </member>
5835         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5836             <summary>
5837             Implementation of the StackSource interface
5838             </summary>
5839         </member>
5840         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.CallStackIndexLimit">
5841             <summary>
5842             Implementation of the StackSource interface
5843             </summary>
5844         </member>
5845         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.CopyStackSource.CallFrameIndexLimit">
5846             <summary>
5847             Implementation of the StackSource interface
5848             </summary>
5849         </member>
5850         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource">
5851             <summary>
5852             Like CopyStackSource InternStackSource copies the samples. however unlike CopyStackSource
5853             InternStackSource copies all the information in the stacks too (mapping stack indexes to names)
5854             Thus it never refers to the original source again).   It also interns the stacks making for 
5855             an efficient representation of the data.   This is useful when the original source is expensive 
5856             to iterate over.   
5857             </summary>
5858         </member>
5859         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Diff(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
5860             <summary>
5861             Compute the difference between two sources of stacks.
5862             </summary>
5863         </member>
5864         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Diff(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks,Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5865             <summary>
5866             Compute only the delta of source from the baseline.  This variation allows you to specify
5867             the unfiltered names (the sourceStacks and baselineStacks) but otherwise keep the filtering.  
5868             </summary>
5869         </member>
5870         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.#ctor(Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks)">
5871             <summary>
5872             Create a new stack source that can create things out of nothing.  
5873             </summary>
5874         </member>
5875         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.#ctor">
5876             <summary>
5877             Create a new InternStackSource
5878             </summary>
5879         </member>
5880         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.Interner">
5881             <summary>
5882             Returns the Interner, which is the class that holds the name->index mappings that that every
5883             name has a unique index.  
5884             </summary>
5885         </member>
5886         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5887             <summary>
5888             Implementation of the StackSource interface
5889             </summary>
5890         </member>
5891         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5892             <summary>
5893             Implementation of the StackSource interface
5894             </summary>
5895         </member>
5896         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5897             <summary>
5898             Implementation of the StackSource interface
5899             </summary>
5900         </member>
5901         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.CallStackIndexLimit">
5902             <summary>
5903             Implementation of the StackSource interface
5904             </summary>
5905         </member>
5906         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.CallFrameIndexLimit">
5907             <summary>
5908             Implementation of the StackSource interface
5909             </summary>
5910         </member>
5911         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.InternStackSource.InternFullStackFromSource(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceStacks,System.Int32)">
5912             <summary>
5913             InternFullStackFromSource will take a call stack 'baseCallStackIndex' from the source 'source' and completely copy it into
5914             the intern stack source (interning along the way of course).   Logically baseCallStackIndex has NOTHING to do with any of the
5915             call stack indexes in the intern stack source.  
5916             </summary>
5917         </member>
5918         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner">
5919             <summary>
5920             StackSourceInterner is a helper class that knows how to intern module, frame and call stacks. 
5921             </summary>
5922         </member>
5923         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.#ctor(System.Int32,System.Int32,System.Int32,Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex)">
5924             <summary>
5925             Create a new StackSourceInterner.  Optionally supply estimates on how many items you need and where the frame, callstack and module indexes start.    
5926             </summary>
5927         </member>
5928         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.DoneInterning">
5929             <summary>
5930             As an optimization, if you are done adding new nodes, then you can call this routine can abandon
5931             some tables only needed during the interning phase.
5932             </summary>
5933         </member>
5934         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackStartIndex">
5935             <summary>
5936             The CallStackStartIndex value passed to the constructor
5937             </summary>
5938         </member>
5939         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameStartIndex">
5940             <summary>
5941             The FrameStartIndex value passed to the constructor
5942             </summary>
5943         </member>
5944         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5945             <summary>
5946             Given a StackSourceCallStackIndex return the StackSourceCallStackIndex of the caller
5947             </summary>
5948         </member>
5949         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5950             <summary>
5951             Given a StackSourceCallStackIndex return the StackSourceFrameIndex for the Frame associated
5952             with the top call stack
5953             </summary>
5954         </member>
5955         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
5956             <summary>
5957             Get a name from a frame index.  If the frame index is a 
5958             </summary>
5959         </member>
5960         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.GetModuleIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
5961             <summary>
5962             Given a StackSourceFrameIndex return the StackSourceModuleIndex associated with the frame 
5963             </summary>
5964             <param name="frameIndex"></param>
5965             <returns></returns>
5966         </member>
5967         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameNameLookup">
5968             <summary>
5969             If you intern frames as derived frames, when GetFrameName is called the interner needs to know
5970             how to look up the derived frame from its index.  This is the function that is called.  
5971             
5972             It is called with the frame index and a boolean which indicates whether the full path of the module 
5973             should be specified, and returns the frame string. 
5974             </summary>
5975         </member>
5976         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.ModuleIntern(System.String)">
5977             <summary>
5978             Lookup or create a StackSourceModuleIndex for moduleName
5979             </summary>
5980         </member>
5981         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameIntern(System.String,Microsoft.Diagnostics.Tracing.Stacks.StackSourceModuleIndex)">
5982             <summary>
5983             Lookup or create a StackSourceFrameIndex for frame with the name frameName and the module identified by moduleIndex
5984             </summary>
5985         </member>
5986         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameIntern(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.String)">
5987             <summary>
5988             You can also create frames out of other frames using this method.  Given an existing frame, and
5989             a suffix 'frameSuffix' 
5990             </summary>
5991         </member>
5992         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackIntern(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
5993             <summary>
5994             Lookup or create a StackSourceCallStackIndex for a call stack with the frame identified frameIndex and caller identified by callerIndex
5995             </summary>
5996         </member>
5997         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.FrameCount">
5998             <summary>
5999             The current number of unique frames that have been interned so far
6000             </summary>
6001         </member>
6002         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.CallStackCount">
6003             <summary>
6004             The current number of unique call stacks that have been interned so far
6005             </summary>
6006         </member>
6007         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1">
6008             <summary>
6009             A specialized hash table for interning.
6010             It loosely follows the implementation of <see cref="T:System.Collections.Generic.Dictionary`2"/> but with
6011             several key allowances for known usage patterns:
6012             1. We don't store the hashcode on each entry on the assumption that values can be compared
6013                as quickly as recomputing hash codes. The downside to that is that the hash codes must
6014                be recomputed whenever the map is resized, but that is very cheap.
6015             2. We supply a single <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/> method (instead of a TryGetValue
6016                followed by an Add) so that a hashcode computation is saved in the case of a "miss".
6017             3. We don't support removal. This means we don't need to keep track of a free list and neither
6018                do we need sentinel values. This also allows us to use all 32 bits of the hash-code (where
6019                <see cref="T:System.Collections.Generic.Dictionary`2"/> uses only 31 bits, reserving -1 to indicate a freed
6020                entry. The only sentinel value is in the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array to indicate a free
6021                bucket.
6022             4. We return an index (of the interned item) to the caller which can be used for constant-time
6023                look-up in the table via <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)"/>.
6024             5. To free up memory, the caller can call <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/>. The entries themselves
6025                are stored separately from the indexing parts of the table so that the latter can be dropped
6026                easily.
6027             </summary>
6028         </member>
6029         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.#ctor(System.Int32)">
6030             <summary>
6031             Construct the intern map
6032             </summary>
6033             <param name="initialCapacity">The estimated capacity of the map.</param>
6034         </member>
6035         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Count">
6036             <summary>
6037             Count of interned values.
6038             </summary>
6039         </member>
6040         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)">
6041             <summary>
6042             Access an element by index.
6043             </summary>
6044             <param name="index">The zero-based index of the desired entry.</param>
6045             <returns>The entry at the requested index.</returns>
6046             <remarks>For performance, in Release mode we do no range checking on <paramref name="index"/>, so it is possible to
6047             access an entry beyond <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Count"/> but prior to the maximum capacity of the array.</remarks>
6048             <exception cref="T:System.IndexOutOfRangeException"><paramref name="index"/> was less than zero or greater than the capacity.</exception>
6049         </member>
6050         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)">
6051             <summary>
6052             Intern a value. If the same value has been seen before
6053             then this returns the index of the previously seen entry. If not, a new entry
6054             is added and this returns the index of the newly added entry.
6055             </summary>
6056             <param name="value">The candidate value.</param>
6057             <returns>The index of the interned entry.</returns>
6058             <exception cref="T:System.NullReferenceException">This routine was called after calling <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/>.</exception>
6059         </member>
6060         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning">
6061             <summary>
6062             As an optimization, if you are done calling <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/>, then you can call this
6063             to free up some memory.
6064             </summary>
6065             <remarks>After calling this, you can still call <see cref="P:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Item(System.Int32)"/>. However, if you try to
6066             call <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Intern(`0)"/> you will get a <see cref="T:System.NullReferenceException"/>.</remarks>
6067         </member>
6068         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket">
6069             <summary>
6070             Elements representing the structure of the hash table. The structure is
6071             a collection of singly linked lists, one list per 'bucket' where a
6072             bucket number is selected by taking the hash code of an incoming item
6073             and mapping it onto the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array (see <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.BucketNumberFromValue(`0)"/>).
6074             </summary>
6075             <remarks>
6076             Caution: For a given <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket"/>, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head"/> and
6077             <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> are UNRELATED to each other. Logically, you can
6078             think of <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> as being part of a value in the
6079             <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._entries"/> table. (We don't actually do that in order to
6080             support <see cref="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.DoneInterning"/> efficiently.)
6081             To find the next element in the linked list, you should NOT simply
6082             look at <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/>. Instead, you should first look up the
6083             <see cref="T:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket"/> in the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array indexed by
6084             <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head"/> and look at the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next"/> field of that.
6085             </remarks>
6086         </member>
6087         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._head">
6088             <summary>
6089             Index into the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._entries"/> array of the head item in the linked list or
6090             -1 to indicate an empty bucket.
6091             </summary>
6092         </member>
6093         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1.Bucket._next">
6094             <summary>
6095             Index into the <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceInterner.InternTable`1._buckets"/> array of the next item in the linked list or
6096             -1 to indicate that this is the last item.
6097             </summary>
6098         </member>
6099         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.GetSortedSamplesPerThread(Microsoft.Diagnostics.Tracing.Stacks.StackSource)">
6100             <summary>
6101             we want to identify the thread for every sample to prevent from 
6102             overlaping of samples for the concurrent code so we group the samples by Threads
6103             this method also sorts the samples by relative time (ascending)
6104             </summary>
6105         </member>
6106         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.WalkTheStackAndExpandSamples(Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.Collections.Generic.IEnumerable{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample},System.Collections.Generic.Dictionary{System.String,System.Int32},System.Collections.Generic.Dictionary{System.Int32,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.FrameInfo})">
6107             <summary>
6108             all the samples that we have are leafs (last sample in the call stack)
6109             this method expands those samples to full information 
6110             it walks the stack up to the begining and adds a sample for every method on the stack
6111             it's required to build full information
6112             </summary>
6113         </member>
6114         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.GetAggregatedOrderedProfileEvents(System.Collections.Generic.IReadOnlyDictionary{System.Int32,System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample}})">
6115             <summary>
6116             this method aggregates all the singular samples to continuous events
6117             example: samples for Main taken at time 0.1 0.2 0.3 0.4 0.5
6118             are gonna be translated to Main start at 0.1 stop at 0.5
6119             </summary>
6120         </member>
6121         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.AreNotContinuous(Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample)">
6122             <summary>
6123             this method checks if both samples do NOT belong to the same profile event
6124             </summary>
6125         </member>
6126         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.AddEvents(System.Collections.Generic.List{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent},Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.Sample,System.Int32)">
6127             <summary>
6128             this method adds a new profile event for provided samples
6129             it also make sure that a profile event does not open and close at the same time (would be ignored by SpeedScope)
6130             </summary>
6131         </member>
6132         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.OrderForExport(System.Collections.Generic.IEnumerable{Microsoft.Diagnostics.Tracing.Stacks.StackSourceWriterHelper.ProfileEvent})">
6133             <summary>
6134             this method orders the profile events in the order required by SpeedScope
6135             it's just the order of drawing the time graph
6136             </summary>
6137         </member>
6138         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource">
6139             <summary>
6140             TraceEventStackSource is an implementation of a StackSource for ETW information (TraceLog)
6141             It takes a TraceEvents (which is a list of TraceEvents you get get from a TraceLog) and 
6142             implements that StackSource protocol for them.  (thus any code needing a StackSource 
6143             can then work on it.  
6144             
6145             The key to the implementation is how StackSourceFrameIndex and StackSourceCallStackIndex 
6146             (part of the StackSource protocol) are mapped to the Indexes in TraceLog.   Here is
6147             the mapping.
6148             
6149             TraceEventStackSource create the following meaning for the StackSourceCallStackIndex
6150             
6151             * The call stacks ID consists of the following ranges concatenated together. 
6152                 * a small set of fixed Pseudo stacks (Start marks the end of these)
6153                 * CallStackIndex
6154                 * ThreadIndex
6155                 * ProcessIndex
6156                 * BrokenStacks (One per thread)
6157                 * Stacks for CPU samples without explicit stacks (we make 1 element stacks out of them)
6158                     
6159             TraceEventStackSource create the following meaning for the StackSourceFrameIndex
6160             
6161             The frame ID consists of the following ranges concatenated together. 
6162                 * a small fixed number of Pseudo frame (Broken, and Unknown)
6163                 * MaxCodeAddressIndex - something with a TraceCodeAddress. 
6164                 * ThreadIndex         - ETW stacks don't have a thread or process node, so we add them.
6165                 * ProcessIndex
6166             </summary>
6167         </member>
6168         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceEvents)">
6169             <summary>
6170             Creates a new TraceEventStackSource given a list of events 'events' from a TraceLog
6171             </summary>
6172             <param name="events"></param>
6173         </member>
6174         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.TraceLog">
6175             <summary>
6176             Returns the TraceLog file that is associated with this stack source.  
6177             </summary>
6178         </member>
6179         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ShowUnknownAddresses">
6180             <summary>
6181             Normally addresses without symbolic names are listed as ?, however sometimes it is useful 
6182             to see the actual address as a hexadecimal number.  Setting this will do that.  
6183             </summary>
6184         </member>
6185         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ShowOptimizationTiers">
6186             <summary>
6187             Displays the optimization tier of each code version executed for the method.
6188             </summary>
6189         </member>
6190         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.LookupWarmSymbols(System.Int32,Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Stacks.StackSource,System.Predicate{Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile})">
6191             <summary>
6192             Looks up symbols for all modules that have an inclusive count >= minCount. 
6193             stackSource, if given, can be used to be the filter.  If null, 'this' is used.
6194             If stackSource is given, it needs to use the same indexes for frames as 'this'.
6195             shouldLoadSymbols, if given, can be used to filter the modules.
6196             </summary>
6197         </member>
6198         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameCodeAddress(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
6199             <summary>
6200             Given a frame index, return the corresponding code address for it.  This is useful for looking up line number information. 
6201             </summary>
6202         </member>
6203         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
6204             <summary>
6205             Implementation of StackSource protocol. 
6206             </summary>
6207         </member>
6208         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.SampleTimeRelativeMSecLimit">
6209             <summary>
6210             Implementation of StackSource protocol. 
6211             </summary>
6212         </member>
6213         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6214             <summary>
6215             Implementation of StackSource protocol. 
6216             </summary>
6217         </member>
6218         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6219             <summary>
6220             Implementation of StackSource protocol. 
6221             </summary>
6222         </member>
6223         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetSourceLine(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,Microsoft.Diagnostics.Symbols.SymbolReader)">
6224             <summary>
6225             Implementation of StackSource protocol. 
6226             </summary>
6227         </member>
6228         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
6229             <summary>
6230             Implementation of StackSource protocol. 
6231             </summary>
6232         </member>
6233         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.CallStackIndexLimit">
6234             <summary>
6235             Implementation of StackSource protocol. 
6236             </summary>
6237         </member>
6238         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.CallFrameIndexLimit">
6239             <summary>
6240             Implementation of StackSource protocol. 
6241             </summary>
6242         </member>
6243         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetModulesForStack(Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ModuleList[],Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6244             <summary>
6245             Returns a list of modules for the stack 'stackIdx'.  It also updates the interning table stackModuleLists, so 
6246             that the entry cooresponding to stackIdx remembers the answer.  This can speed up processing alot since many
6247             stacks have the same prefixes to root.  
6248             </summary>
6249         </member>
6250         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.ModuleList">
6251             <summary>
6252             A ModuleList is a linked list of modules.  It is only used in GetModulesForStack and LookupWarmSymbols
6253             </summary>
6254         </member>
6255         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.m_pseudoStacksTable">
6256             <summary>
6257             This maps pseudo-stacks to their index (thus it is the inverse of m_pseudoStack; 
6258             </summary>
6259         </member>
6260         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.TraceEventStackSource.GetPseudoStack(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex,Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
6261             <summary>
6262             Given a thread and a call stack that does not have a stack, make up a pseudo stack for it consisting of the code address, 
6263             the broken node, the thread and process.   Will return -1 if it can't allocate another Pseudo-stack.
6264             </summary> 
6265         </member>
6266         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource">
6267             <summary>
6268             Like a TraceEventStackSource a MutableTraceEventStackSource allows you incorporate the stacks associated with
6269             a TraceEvent as a sample in the StackSource.   However in addition it allows you to create new frames for these
6270             stacks on the fly as well as add samples that did not exist in the original TraceEvent stream.   This gives you
6271             a lot of flexibility to add additional data to the original stream of TraceEvents.   
6272             
6273             Like TraceEventStackSource MutableTraceEventStackSource supports the GetFrameCodeAddress() method that  allows
6274             you to map from the StackSourceFrameIndex back its TraceLog code address (that lets you get at the source code and
6275             line number for that frame).  
6276             </summary>
6277         </member>
6278         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
6279             <summary>
6280             Create a new MutableTraceEventStackSource that can represent stacks comming from any events in the given TraceLog with a stack.  
6281             You use the 'AddSample' and 'DoneAddingSamples' to specify exactly which stacks you want in your source.   
6282             </summary>
6283         </member>
6284         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.AddSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample)">
6285             <summary>
6286             After creating a MultableTraceEventStackSource, you add the samples you want using this AddSample API (you can reuse 'sample' 
6287             used as an argument to this routine.   It makes a copy.  The samples do NOT need to be added in time order (the MultableTraceEventStackSource
6288             will sort them).   When you done DoneAddingSamples must be called before using the
6289             the MutableTraceEventStackSource as a stack source.  
6290             </summary>
6291         </member>
6292         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.DoneAddingSamples">
6293             <summary>
6294             After calling 'AddSample' to add the samples that should belong to the source, DoneAddingSamples() should be called to
6295             to complete the construction of the stack source.   Only then can the reading API associated with the stack source be called. 
6296             </summary>
6297         </member>
6298         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.Interner">
6299             <summary>
6300             The Interner is the class that allows you to make new indexes out of strings and other bits.  
6301             </summary>
6302         </member>
6303         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackForProcess(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
6304             <summary>
6305             Returns a StackSourceCallStackIndex representing just one entry that represents the process 'process'
6306             </summary>
6307         </member>
6308         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackForThread(Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
6309             <summary>
6310             Returns a StackSourceCallStackIndex representing just two entries that represent 'thread' which has a parent of its process.   
6311             </summary>
6312         </member>
6313         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStackThread(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceThread)">
6314             <summary>
6315             Returns a StackSourceCallStackIndex representing the call stack from the TraceLog represented by the CallStackIndex 'callStackIndex'.  
6316             If that stack is invalid, use 'thread' to at least return a call stack for the thread.  
6317             </summary>
6318         </member>
6319         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.TraceEvent)">
6320             <summary>
6321             Returns a StackSourceCallStackIndex representing the call stack from the TraceLog represented by the CallStackIndex 'callStackIndex'.  
6322             Use the TraceEvent 'data' to find the stack if callStackIndex is invalid.  
6323             TODO data should be removed (or callstack derived from it) 
6324             </summary>  
6325         </member>
6326         <member name="T:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap">
6327             <summary>
6328             A very simple IDictionary-like interface for remembering values in GetCallStack()
6329             </summary>
6330         </member>
6331         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap.Get(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
6332             <summary>
6333             Fetches an value given a key
6334             </summary>
6335         </member>
6336         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap.Put(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6337             <summary>
6338             Sets a key-value pair
6339             </summary>
6340         </member>
6341         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallStack(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackMap)">
6342             <summary>
6343             Find the StackSourceCallStackIndex for the TraceEvent call stack index 'callStackIndex' which has a top of its 
6344             stack (above the stack, where the thread and process would normally go) as 'top'.  If callStackMap is non-null 
6345             it is used as an interning table for CallStackIndex -> StackSourceCallStackIndex.  This can speed up the 
6346             transformation dramatically.   It will still work if it is null.  
6347             </summary>
6348             
6349         </member>
6350         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
6351             <summary>
6352             Create a frame name from a TraceLog code address.  
6353             </summary>
6354         </member>
6355         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6356             <summary>
6357             Implementation of StackSource protocol. 
6358             </summary>
6359         </member>
6360         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
6361             <summary>
6362             Implementation of StackSource protocol. 
6363             </summary>
6364         </member>
6365         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetModuleIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
6366             <summary>
6367             Implementation of StackSource protocol. 
6368             </summary>
6369         </member>
6370         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
6371             <summary>
6372             Implementation of StackSource protocol. 
6373             </summary>
6374         </member>
6375         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
6376             <summary>
6377             Implementation of StackSource protocol. 
6378             </summary>
6379         </member>
6380         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SampleIndexLimit">
6381             <summary>
6382             Implementation of StackSource protocol. 
6383             </summary>
6384         </member>
6385         <member name="M:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
6386             <summary>
6387             Implementation of StackSource protocol. 
6388             </summary>
6389         </member>
6390         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SamplesImmutable">
6391             <summary>
6392             Implementation of StackSource protocol. 
6393             </summary>
6394         </member>
6395         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallFrameIndexLimit">
6396             <summary>
6397             Implementation of StackSource protocol. 
6398             </summary>
6399         </member>
6400         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.CallStackIndexLimit">
6401             <summary>
6402             Implementation of StackSource protocol. 
6403             </summary>
6404         </member>
6405         <member name="P:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.SampleTimeRelativeMSecLimit">
6406             <summary>
6407             Implementation of StackSource protocol. 
6408             </summary>
6409         </member>
6410         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.m_Interner">
6411             <summary>
6412             private
6413             </summary>
6414         </member>
6415         <member name="F:Microsoft.Diagnostics.Tracing.Stacks.MutableTraceEventStackSource.m_emptyModuleIdx">
6416             <summary>
6417             private
6418             </summary>
6419         </member>
6420         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventSource">
6421             <summary>
6422             TraceEventSource is an abstract base class that represents the output of a ETW session (e.g. a ETL file 
6423             or ETLX file or a real time stream).   This base class is NOT responsible for actually processing
6424             the events, but contains methods for properties associated with the session
6425             like its start and end time, filename, and characteristics of the machine it was collected on.
6426             <para>This class has two main subclasses:</para>
6427             <para>* <see cref="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcher"/> which implements a 'push' (callback) model and is the only mode for ETL files.  
6428             ETWTraceEventSource is the most interesting subclass of TraceEventDispatcher.</para>
6429             <para>* see TraceLog which implements both a 'push' (callback) as well as pull (foreach) model but only works on ETLX files.</para>
6430             <para>This is the end.</para>
6431             <para>The normal user pattern is to create a TraceEventSource, create TraceEventParsers attached to the TraceEventSource, and then subscribe
6432             event callbacks using the TraceEventParsers</para>
6433             </summary>
6434         </member>
6435         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Clr">
6436             <summary>
6437             For convenience, we provide a property returns a ClrTraceEventParser that knows 
6438             how to parse all the Common Language Runtime (CLR .NET) events into callbacks.
6439             </summary>
6440         </member>
6441         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Kernel">
6442             <summary>
6443             For convenience, we provide a property returns a KernelTraceEventParser that knows 
6444             how to parse all the Kernel events into callbacks.
6445             </summary>
6446         </member>
6447         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Dynamic">
6448             <summary>
6449             For convenience, we provide a property returns a DynamicTraceEventParser that knows 
6450             how to parse all event providers that dynamically log their schemas into the event streams.
6451             In particular, it knows how to parse any events from a System.Diagnostics.Tracing.EventSources. 
6452             
6453             Note that the DynamicTraceEventParser has subsumed the functionality of RegisteredTraceEventParser
6454             so any registered providers are also looked up here.  
6455             </summary>
6456         </member>
6457         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Registered">
6458             <summary>
6459             For convenience, we provide a property returns a RegisteredTraceEventParser that knows 
6460             how to parse all providers that are registered with the operating system.
6461             
6462             Because the DynamicTraceEventParser has will parse all providers that that RegisteredTraceEventParser
6463             will parse, this function is obsolete, you should use Dynamic instead.  
6464             </summary>
6465         </member>
6466         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionStartTime">
6467             <summary>
6468             The time when session started logging. 
6469             </summary>
6470         </member>
6471         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionEndTime">
6472             <summary>
6473             The time that the session stopped logging.
6474             </summary>
6475         </member>
6476         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionEndTimeRelativeMSec">
6477             <summary>
6478             The Session End time expressed as milliseconds from the start of the session
6479             </summary>
6480         </member>
6481         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.SessionDuration">
6482             <summary>
6483             The difference between SessionEndTime and SessionStartTime;
6484             </summary>
6485         </member>
6486         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.Size">
6487             <summary>
6488             The size of the trace, if it is known.  Will return 0 if it is not known.  
6489             </summary>
6490         </member>
6491         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.PointerSize">
6492             <summary>
6493             Returns the size of a pointer on the machine where events were collected (4 for 32 bit or 8 for 64 bit)
6494             </summary>
6495         </member>
6496         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.EventsLost">
6497             <summary>
6498             The number of events that were dropped (e.g. because the incoming event rate was too fast)
6499             </summary>
6500         </member>
6501         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.NumberOfProcessors">
6502             <summary>
6503             The number of processors on the machine doing the logging. 
6504             </summary>
6505         </member>
6506         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.CpuSpeedMHz">
6507             <summary>
6508             Cpu speed of the machine doing the logging. 
6509             </summary>
6510         </member>
6511         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.OSVersion">
6512             <summary>
6513             The version of the windows operating system on the machine doing the logging.
6514             </summary>
6515         </member>
6516         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.IsRealTime">
6517             <summary>
6518             Returns true if this is a real time session.  
6519             </summary>
6520         </member>
6521         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.DataLifetimeMsec">
6522             <summary>
6523             Time based threshold for how long data should be retained 
6524             by accumulates that are processing this TraceEventSource.
6525             A value of 0, the default, indicates an infinite accumulation.
6526             </summary>
6527         </member>
6528         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.DataLifetimeEnabled">
6529             <summary>
6530             Check if a DataLifetime model is enabled
6531             </summary>
6532             <returns>True - lifetime tracking is enabled</returns>
6533             <returns>False - lifetime tracking is not enabled</returns>
6534         </member>
6535         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.Dispose">
6536             <summary>
6537             Closes any files and cleans up any resources associated with this TraceEventSource
6538             </summary>
6539         </member>
6540         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.UserData">
6541             <summary>
6542             TraceEventSource supports attaching arbitrary user data to the source.  This property returns a key-value bag of these attached values.  
6543             <para>
6544             One convention that has been established is that TraceEventParsers that need additional state to parse their events should
6545             store them in UserData under the key 'parsers\(ParserName)' 
6546             </para>
6547             </summary>
6548         </member>
6549         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.Dispose(System.Boolean)">
6550             <summary>
6551             Dispose pattern
6552             </summary>
6553         </member>
6554         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCFreq">
6555             <summary>
6556             This is the high frequency tick clock on the processor (what QueryPerformanceCounter uses).  
6557             You should not need 
6558             </summary>
6559         </member>
6560         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCTimeToRelMSec(System.Int64)">
6561             <summary>
6562             Converts the Query Performance Counter (QPC) ticks to a number of milliseconds from the start of the trace.   
6563             </summary>
6564         </member>
6565         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.RelativeMSecToQPC(System.Double)">
6566             <summary>
6567             Converts a Relative MSec time to the Query Performance Counter (QPC) ticks 
6568             </summary>
6569         </member>
6570         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.UTCDateTimeToQPC(System.DateTime)">
6571             <summary>
6572             Converts a DateTime to the Query Performance Counter (QPC) ticks 
6573             </summary>
6574         </member>
6575         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.QPCTimeToDateTimeUTC(System.Int64)">
6576             <summary>
6577             Converts the Query Performance Counter (QPC) ticks to a DateTime  
6578             </summary>
6579         </member>
6580         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventSource.LastChanceGetThreadID(Microsoft.Diagnostics.Tracing.TraceEvent)">
6581             <summary>
6582             Some events (like HardFault) do not have a thread ID or a process ID, but they MIGHT have a Stack
6583             If they do try to get the ThreadID for the event from that.  Return -1 if not successful.   
6584             This is intended to be overridden by the TraceLog class that has this additional information. 
6585             </summary>
6586         </member>
6587         <member name="T:Microsoft.Diagnostics.Tracing.TraceEvent">
6588             <summary>
6589             TraceEvent an abstract class represents the data from one event in the stream of events in a TraceEventSource.   
6590             The TraceEvent class has all the properties of an event that are common to all ETW events, including TimeStamp
6591             ProviderGuid, ProcessID etc.   Subclasses of TraceEvent then extend this abstract class to include properties
6592             specific to a particular payload.   
6593             <para>
6594             An important architectural point is that TraceEvent classes are aggressively reused by default.   The TraceEvent that is
6595             passed to any TraceEventParser callback or in a foreach is ONLY valid for the duration for that callback (or one
6596             iteration of the foreach).  If you need save a copy of the event data, you must call the Clone() method to make
6597             a copy.   The IObservable interfaces (TraceEventParser.Observe* methods) however implicitly call Clone() so you
6598             do not have to call Clone() when processing with IObservables (but these are slower).  
6599             </para>
6600             </summary>
6601         </member>
6602         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProviderGuid">
6603             <summary>
6604             The GUID that uniquely identifies the Provider for this event.  This can return Guid.Empty for classic (Pre-VISTA) ETW providers.  
6605             </summary>        
6606         </member>
6607         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TaskGuid">
6608             <summary>
6609             Unique GUID for Pre-VISTA ETW providers.
6610             </summary>
6611         </member>
6612         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProviderName">
6613             <summary>
6614             The name of the provider associated with the event.  It may be of the form Provider(GUID) or UnknownProvider in some cases but is never null.  
6615             </summary>
6616         </member>
6617         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventName">
6618             <summary>
6619             A name for the event.  This is simply the concatenation of the task and opcode names (separated by a /).  If the 
6620             event has no opcode, then the event name is just the task name.  
6621             </summary>
6622         </member>
6623         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ID">
6624             <summary>
6625             Returns the provider-specific integer value that uniquely identifies event within the scope of
6626             the provider. (Returns 0 for classic (Pre-VISTA) ETW providers).
6627             </summary>
6628         </member>
6629         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Task">
6630             <summary>
6631             Events for a given provider can be given a group identifier (integer) called a Task that indicates the
6632             broad area within the provider that the event pertains to (for example the Kernel provider has
6633             Tasks for Process, Threads, etc).   
6634             </summary>
6635         </member>
6636         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TaskName">
6637             <summary>
6638             The human readable name for the event's task (group of related events) (eg. process, thread,
6639             image, GC, ...).  May return a string Task(GUID) or Task(TASK_NUM) if no good symbolic name is
6640             available.  It never returns null.  
6641             </summary>
6642         </member>
6643         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Opcode">
6644             <summary>
6645             An opcode is a numeric identifier (integer) that identifies the particular event within the group of events 
6646             identified by the event's task.  Often events have opcode 'Info' (0), which is the default.   This value
6647             is interpreted as having no-opcode (the task is sufficient to identify the event).
6648             <para>
6649             Generally the most useful opcodes are the Start and Stop opcodes which are used to indicate the beginning and the
6650             end of a interval of time.   Many tools will match up start and stop opcodes automatically and compute durations.  
6651             </para>
6652             </summary>
6653         </member>
6654         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.OpcodeName">
6655             <summary>
6656             Returns the human-readable string name for the Opcode property. 
6657             </summary>
6658         </member>
6659         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Level">
6660             <summary>
6661             The verbosity of the event (Fatal, Error, ..., Info, Verbose)
6662             </summary>
6663         </member>
6664         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Version">
6665             <summary>
6666             The version number for this event.  The only compatible change to an event is to add new properties at the end.
6667             When this is done the version numbers is incremented.  
6668             </summary>
6669         </member>
6670         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Keywords">
6671             <summary>
6672             ETW Event providers can specify a 64 bit bitfield called 'keywords' that define provider-specific groups of 
6673             events which can be enabled and disabled independently.   
6674             Each event is given a keywords mask that identifies which groups the event belongs to.   This property returns this mask.   
6675             </summary>
6676         </member>
6677         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Channel">
6678             <summary>
6679             A Channel is a identifier (integer) that defines an 'audience' for the event (admin, operational, ...).   
6680             Channels are only used for Windows Event Log integration.  
6681             </summary>
6682         </member>
6683         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStamp">
6684             <summary>
6685             The time of the event. You may find TimeStampRelativeMSec more convenient.  
6686             </summary>
6687         </member>
6688         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStampRelativeMSec">
6689             <summary>
6690             Returns a double representing the number of milliseconds since the beginning of the session.     
6691             </summary>
6692         </member>
6693         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ThreadID">
6694             <summary>
6695             The thread ID for the thread that logged the event
6696             <para>This field may return -1 for some events when the thread ID is not known.</para>
6697             </summary>
6698         </member>
6699         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessID">
6700             <summary>
6701             The process ID of the process which logged the event. 
6702             <para>This field may return -1 for some events when the process ID is not known.</para>
6703             </summary>
6704         </member>
6705         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessName">
6706             <summary>
6707             Returns a short name for the process. This the image file name (without the path or extension),
6708             or if that is not present, then the string 'Process(XXXX)' 
6709             </summary>
6710         </member>
6711         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ProcessorNumber">
6712             <summary>
6713             The processor Number (from 0 to TraceEventSource.NumberOfProcessors) that logged this event. 
6714             event. 
6715             </summary>
6716         </member>
6717         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.PointerSize">
6718             <summary>
6719             Get the size of a pointer associated with process that logged the event (thus it is 4 for a 32 bit process). 
6720             </summary>
6721         </member>
6722         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.ActivityID">
6723             <summary>
6724             Conceptually every ETW event can be given a ActivityID (GUID) that uniquely identifies the logical
6725             work being carried out (the activity).  This property returns this GUID.   Can return Guid.Empty
6726             if the thread logging the event has no activity ID associated with it.  
6727             </summary>
6728         </member>
6729         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.RelatedActivityID">
6730             <summary>
6731             ETW supports the ability to take events with another GUID called the related activity that is either
6732             causes or is caused by the current activity.   This property returns that GUID (or Guid.Empty if the
6733             event has not related activity.  
6734             </summary>
6735         </member>
6736         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.FormattedMessage">
6737             <summary>
6738             Event Providers can define a 'message' for each event that are meant for human consumption.   
6739             FormattedMessage returns this string with the values of the payload filled in at the appropriate places.
6740             <para>It will return null if the event provider did not define a 'message'  for this event</para>
6741             </summary>
6742         </member>
6743         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFormattedMessage(System.IFormatProvider)">
6744             <summary>
6745             Creates and returns the value of the 'message' for the event with payload values substituted.
6746             Payload values are formatted using the given formatProvider. 
6747             </summary>
6748         </member>
6749         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventIndex">
6750             <summary>
6751             An EventIndex is a integer that is guaranteed to be unique for this event over the entire log.  Its
6752             primary purpose is to act as a key that allows side tables to be built up that allow value added
6753             processing to 'attach' additional data to this particular event unambiguously.  
6754             <para>This property is only set for ETLX file.  For ETL or real time streams it returns 0</para>
6755             <para>EventIndex is currently a 4 byte quantity.  This does limit this property to 4Gig of events</para>
6756             </summary>
6757         </member>
6758         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Source">
6759             <summary>
6760             The TraceEventSource associated with this event.  
6761             </summary>
6762         </member>
6763         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.IsClassicProvider">
6764             <summary>
6765             Returns true if this event is from a Classic (Pre-VISTA) provider
6766             </summary>
6767         </member>
6768         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadNames">
6769             <summary>
6770             Returns the names of all the manifest declared field names for the event.    May be empty if the manifest is not available.  
6771             </summary>
6772         </member>
6773         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadValue(System.Int32)">
6774             <summary>
6775             Given an index from 0 to PayloadNames.Length-1, return the value for that payload item as an object (boxed if necessary).  
6776             </summary>
6777         </member>
6778         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadString(System.Int32,System.IFormatProvider)">
6779             <summary>
6780             PayloadString is like PayloadValue(index).ToString(), however it can do a better job in some cases.  In particular
6781             if the payload is a enumeration or a bitfield and the manifest defined the enumeration values, then it will print the string name
6782             of the enumeration value instead of the integer value.  
6783             </summary>
6784         </member>
6785         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadIndex(System.String)">
6786             <summary>
6787             Returns the index in 'PayloadNames for field 'propertyName'.  Returns something less than 0 if not found. 
6788             </summary>
6789         </member>
6790         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadByName(System.String)">
6791             <summary>
6792             PayloadByName fetches the value of a payload property by the name of the property. 
6793             <para>It will return null if propertyName is not found.</para>
6794             <para>This method is not intended to be used in performance critical code.</para>
6795             </summary>
6796         </member>
6797         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.PayloadStringByName(System.String,System.IFormatProvider)">
6798             <summary>
6799             PayloadStringByName functions the same as PayloadByName, but uses PayloadString instead of PayloadValue. 
6800             <para>It will return null if propertyName is not found.</para>
6801             <para>This method is not intended to be used in performance critical code.</para>
6802             </summary>
6803         </member>
6804         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.EventDataLength">
6805             <summary>
6806             The size of the event-specific data payload.  (see EventData)
6807             <para>Normally this property is not used because some TraceEventParser has built a subclass of
6808             TraceEvent that parses the payload</para>
6809             </summary>
6810         </member>
6811         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventData">
6812             <summary>
6813             Returns an array of bytes representing the event-specific payload associated with the event.  
6814             <para>Normally this method is not used because some TraceEventParser has built a subclass of
6815             TraceEvent that parses the payload</para>
6816             </summary>
6817         </member>
6818         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventData(System.Byte[],System.Int32,System.Int32,System.Int32)">
6819             <summary>
6820             Gets the event data and puts it in 'targetBuffer' at 'targetStartIndex' and returns the resulting buffer.
6821             If 'targetBuffer is null, it will allocate a buffer of the correct size. 
6822             <para>Normally this method is not used because some TraceEventParser has built a subclass of
6823             TraceEvent that parses the payload</para>
6824             </summary>
6825         </member>
6826         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Clone">
6827             <summary>
6828             The events passed to the callback functions only last as long as the callback, so if you need to
6829             keep the information around after that you need to copy it.   This method makes that copy.
6830             <para>This method is more expensive than copy out all the event data from the TraceEvent instance
6831             to a type of your construction.</para>
6832             </summary>
6833         </member>
6834         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToString">
6835             <summary>
6836             Pretty print the event.  It uses XML syntax.. 
6837             </summary>
6838         </member>
6839         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToString(System.IFormatProvider)">
6840             <summary>
6841             Pretty print the event using XML syntax, formatting data using the supplied IFormatProvider
6842             </summary>
6843         </member>
6844         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToXml(System.Text.StringBuilder)">
6845             <summary>
6846             Write an XML representation to the stringBuilder sb and return it.  
6847             </summary>
6848         </member>
6849         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ToXml(System.Text.StringBuilder,System.IFormatProvider)">
6850             <summary>
6851             Writes an XML representation of the event to a StringBuilder sb, formatting data using the passed format provider. 
6852             Returns the StringBuilder.
6853             </summary>
6854         </member>
6855         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Dump(System.Boolean,System.Boolean)">
6856             <summary>
6857             Dumps a very verbose description of the event, including a dump of they payload bytes. It is in
6858             XML format. This is very useful in debugging (put it in a watch window) when parsers are not
6859             interpreting payloads properly.
6860             </summary>
6861         </member>
6862         <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.EventTypeUserData">
6863             <summary>
6864             EventTypeUserData is a field users get to use to attach their own data on a per-event-type basis.    
6865             </summary>
6866         </member>
6867         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.DataStart">
6868             <summary>
6869             Returns the raw IntPtr pointer to the data blob associated with the event.  This is the way the
6870             subclasses of TraceEvent get at the data to display it in a efficient (but unsafe) manner.  
6871             </summary>
6872         </member>
6873         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.#ctor(System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
6874             <summary>
6875             Create a template with the given event meta-data.  Used by TraceParserGen.  
6876             </summary>
6877         </member>
6878         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUTF8String(System.Int32)">
6879             <summary>
6880             Skip UTF8 string starting at 'offset' bytes into the payload blob.
6881             </summary>  
6882             <returns>Offset just after the string</returns>
6883         </member>
6884         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUnicodeString(System.Int32)">
6885             <summary>
6886             Skip Unicode string starting at 'offset' bytes into the payload blob.
6887             </summary>  
6888             <returns>Offset just after the string</returns>
6889         </member>
6890         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipUnicodeString(System.Int32,System.Int32)">
6891             <summary>
6892             Skip 'stringCount' Unicode strings starting at 'offset' bytes into the payload blob.
6893             </summary>  
6894             <returns>Offset just after the last string</returns>
6895         </member>
6896         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SkipSID(System.Int32)">
6897             <summary>
6898             Skip a Security ID (SID) starting at 'offset' bytes into the payload blob.
6899             </summary>  
6900             <returns>Offset just after the Security ID</returns>
6901         </member>
6902         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.HostOffset(System.Int32,System.Int32)">
6903             <summary>
6904             Trivial helper that allows you to get the Offset of a field independent of 32 vs 64 bit pointer size.
6905             </summary>
6906             <param name="offset">The Offset as it would be on a 32 bit system</param>
6907             <param name="numPointers">The number of pointer-sized fields that came before this field.
6908             </param>
6909         </member>
6910         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.HostSizePtr(System.Int32)">
6911             <summary>
6912             Computes the size of 'numPointers' pointers on the machine where the event was collected.  
6913             </summary>
6914         </member>
6915         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetUTF8StringAt(System.Int32)">
6916             <summary>
6917             Given an Offset to a null terminated ASCII string in an event blob, return the string that is
6918             held there.   
6919             </summary>
6920         </member>
6921         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFixedAnsiStringAt(System.Int32,System.Int32)">
6922             <summary>
6923             Returns the string represented by a fixed length ASCII string starting at 'offset' of length 'charCount'
6924             </summary>
6925         </member>
6926         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetFixedUnicodeStringAt(System.Int32,System.Int32)">
6927             <summary>
6928             Given an Offset to a fixed sized string at 'offset', whose buffer size is 'charCount'
6929             Returns the string value.  A null in the string will terminate the string before the
6930             end of the buffer. 
6931             </summary>        
6932         </member>
6933         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetIPAddrV6At(System.Int32)">
6934             <summary>
6935             Returns the encoding of a Version 6 IP address that has been serialized at 'offset' in the payload bytes.  
6936             </summary>
6937         </member>
6938         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetGuidAt(System.Int32)">
6939             <summary>
6940             Returns the GUID serialized at 'offset' in the payload bytes. 
6941             </summary>
6942         </member>
6943         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetDateTimeAt(System.Int32)">
6944             <summary>
6945             Get the DateTime that serialized (as a windows FILETIME) at 'offset' in the payload bytes. 
6946             </summary>
6947         </member>
6948         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetUnicodeStringAt(System.Int32)">
6949             <summary>
6950             Given an Offset to a null terminated Unicode string in an payload bytes, return the string that is
6951             held there.   
6952             </summary>
6953         </member>
6954         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetByteArrayAt(System.Int32,System.Int32)">
6955             <summary>
6956             Give an offset to a byte array of size 'size' in the payload bytes, return a byte[] that contains
6957             those bytes.
6958             </summary>
6959         </member>
6960         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetByteAt(System.Int32)">
6961             <summary>
6962             Returns a byte value that was serialized at 'offset' in the payload bytes
6963             </summary>
6964         </member>
6965         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt16At(System.Int32)">
6966             <summary>
6967             Returns a short value that was serialized at 'offset' in the payload bytes
6968             </summary>
6969         </member>
6970         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt32At(System.Int32)">
6971             <summary>
6972             Returns an int value that was serialized at 'offset' in the payload bytes
6973             </summary>
6974         </member>
6975         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetInt64At(System.Int32)">
6976             <summary>
6977             Returns a long value that was serialized at 'offset' in the payload bytes
6978             </summary>
6979         </member>
6980         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetIntPtrAt(System.Int32)">
6981             <summary>
6982             Get something that is machine word sized for the provider that collected the data, but is an
6983             integer (and not an address)
6984             </summary>
6985         </member>
6986         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetAddressAt(System.Int32)">
6987             <summary>
6988             Gets something that is pointer sized for the provider that collected the data.  
6989             </summary>
6990         </member>
6991         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetSingleAt(System.Int32)">
6992             <summary>
6993             Returns an int float (single) that was serialized at 'offset' in the payload bytes
6994             </summary>
6995         </member>
6996         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.GetDoubleAt(System.Int32)">
6997             <summary>
6998             Returns an int double precision floating point value that was serialized at 'offset' in the payload bytes
6999             </summary>
7000         </member>
7001         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.String)">
7002             <summary>
7003             Write the XML attribute 'attribName' with value 'value' to the string builder
7004             </summary>
7005         </member>
7006         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Int32)">
7007             <summary>
7008             Write the XML attribute 'attribName' with value 'value' to the string builder
7009             </summary>
7010         </member>
7011         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Int64)">
7012             <summary>
7013             Write the XML attribute 'attribName' with value 'value' to the string builder
7014             </summary>
7015         </member>
7016         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.UInt64)">
7017             <summary>
7018             Write the XML attribute 'attribName' with value 'value' to the string builder
7019             </summary>
7020         </member>
7021         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.Int64)">
7022             <summary>
7023             Write the XML attribute 'attribName' with value 'value' to the string builder
7024             </summary>
7025         </member>
7026         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.UInt32)">
7027             <summary>
7028             Write the XML attribute 'attribName' with value 'value' to the string builder
7029             </summary>
7030         </member>
7031         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttribHex(System.Text.StringBuilder,System.String,System.Int32)">
7032             <summary>
7033             Write the XML attribute 'attribName' with value 'value' to the string builder
7034             </summary>
7035         </member>
7036         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.XmlAttrib(System.Text.StringBuilder,System.String,System.Object)">
7037             <summary>
7038             Write the XML attribute 'attribName' with value 'value' to the string builder
7039             </summary>
7040         </member>
7041         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Prefix(System.Text.StringBuilder)">
7042             <summary>
7043             Prints a standard prefix for a event (includes the time of the event, the process ID and the
7044             thread ID.  
7045             </summary>
7046         </member>
7047         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.ThreadIDforStacks">
7048             <summary>
7049             Because we want the ThreadID to be the ID of the CREATED thread, and the stack 
7050             associated with the event is the parentThreadID 
7051             </summary>
7052         </member>
7053         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.Target">
7054             <summary>
7055             Returns (or sets) the delegate associated with this event.   
7056             </summary>
7057         </member>
7058         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.SetState(System.Object)">
7059             <summary>
7060             If this TraceEvent belongs to a parser that needs state, then this callback will set the state.  
7061             Parsers with state are reasonably rare, the main examples are KernelTraceEventParser and ClrTraceEventParser.    
7062             </summary>
7063         </member>
7064         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.TimeStampQPC">
7065             <summary>
7066             Returns the Timestamp for the event using Query Performance Counter (QPC) ticks.   
7067             The start time for the QPC tick counter is arbitrary and the units  also vary.  
7068             </summary>
7069         </member>
7070         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.LogCodeAddresses(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64,System.Boolean})">
7071             <summary>
7072             A standard way for events to are that certain addresses are addresses in code and ideally have
7073             symbolic information associated with them.  Returns true if successful.  
7074             </summary>
7075         </member>
7076         <member name="P:Microsoft.Diagnostics.Tracing.TraceEvent.IsEventWriteString">
7077             <summary>
7078             Was this written with the windows EventWriteString API? (see also EventDataAsString)
7079             </summary>
7080         </member>
7081         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Compare(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.EventIndex)">
7082             <summary>
7083             Used for binary searching of event IDs.    Abstracts the size (currently a int, could go to long) 
7084             </summary>
7085         </member>
7086         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Matches(Microsoft.Diagnostics.Tracing.TraceEvent)">
7087             <summary>
7088             Returns true if the two traceEvents have the same identity.  
7089             </summary>
7090         </member>
7091         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Finalize">
7092             <summary>
7093             Normally TraceEvent does not have unmanaged data, but if you call 'Clone' it will.  
7094             </summary>
7095         </member>
7096         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.DumpArray(System.Byte[],System.Int32)">
7097             <summary>
7098             For debugging. dumps an array.   If you specify a size of 0 (the default) it dumps the whole array.  
7099             </summary>
7100         </member>
7101         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.EventDataAsString">
7102             <summary>
7103              If the event data looks like a unicode string, then return it.  This is heuristic.  (See also IsEventWriteString)
7104             </summary>
7105             <returns></returns>
7106         </member>
7107         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Dispatch">
7108             <summary>
7109             Each TraceEvent items knows where it should Dispatch to.
7110             ETWTraceEventSource.Dispatch calls this function to go to the right placed. By default we
7111             do nothing. Typically a subclass just dispatches to another callback that passes itself to a
7112             type-specific event callback.
7113             </summary>
7114         </member>
7115         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.Validate">
7116             <summary>
7117             This is a DEBUG-ONLY routine that allows a routine to do consistency checking in a debug build.  
7118             </summary>
7119         </member>
7120         <member name="M:Microsoft.Diagnostics.Tracing.TraceEvent.DebugValidate">
7121             <summary>
7122             Validate that the events is not trash.  
7123             </summary>
7124         </member>
7125         <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.next">
7126             <summary>
7127             TraceEvent knows where to dispatch to. To support many subscriptions to the same event we chain
7128             them.
7129             </summary>
7130         </member>
7131         <member name="F:Microsoft.Diagnostics.Tracing.TraceEvent.payloadNames">
7132             <summary>
7133             The array of names for each property in the payload (in order).  
7134             </summary>
7135         </member>
7136         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventID">
7137             <summary>
7138             Individual event providers can supply many different types of events.  These are distinguished from each
7139             other by a TraceEventID, which is just a 16 bit number.  Its meaning is provider-specific.  
7140             </summary>
7141         </member>
7142         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventID.Illegal">
7143             <summary>
7144             Illegal is a EventID that is not used by a normal event.   
7145             </summary>
7146         </member>
7147         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventChannel">
7148             <summary>
7149             Providers can define different audiences or Channels for an event (eg Admin, Developer ...).
7150             It is only used for Windows Event log support.  
7151             </summary>
7152         </member>
7153         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventChannel.Default">
7154             <summary>
7155             The default channel.
7156             </summary>
7157         </member>
7158         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventOpcode">
7159             <summary>
7160             There are certain classes of events (like start and stop) which are common across a broad variety of
7161             event providers for which it is useful to treat uniformly (for example, determining the elapsed time
7162             between a start and stop event).  To facilitate this, event can have opcode which defines these
7163             common operations.  Below are the standard ones but providers can define additional ones.
7164             </summary>
7165         </member>
7166         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Info">
7167             <summary>
7168             Generic opcode that does not have specific semantics associated with it. 
7169             </summary>
7170         </member>
7171         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Start">
7172             <summary>
7173             The entity (process, thread, ...) is starting
7174             </summary>
7175         </member>
7176         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Stop">
7177             <summary>
7178             The entity (process, thread, ...) is stoping (ending)
7179             </summary>
7180         </member>
7181         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.DataCollectionStart">
7182             <summary>
7183             The entity (process, thread, ...) did not terminate before data collection ended, so indicate
7184             this at data collection termination time.
7185             </summary>
7186         </member>
7187         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.DataCollectionStop">
7188             <summary>
7189             The entity (process, thread, ...) did not terminate before data collection ended, so indicate
7190             this at data collection termination time. This is mostly for 'flight recorder' scenarios where
7191             you only have the 'tail' of the data and would like to know about everything that existed. 
7192             </summary>
7193         </member>
7194         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Extension">
7195             <summary>
7196             Reserved
7197             </summary>
7198         </member>
7199         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Reply">
7200             <summary>
7201             Reserved
7202             </summary>
7203         </member>
7204         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Resume">
7205             <summary>
7206             Reserved
7207             </summary>
7208         </member>
7209         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Suspend">
7210             <summary>
7211             Reserved
7212             </summary>
7213         </member>
7214         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventOpcode.Transfer">
7215             <summary>
7216             Reserved
7217             </summary>
7218         </member>
7219         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventLevel">
7220             <summary>
7221             Indicates to a provider whether verbose events should be logged.  
7222             </summary>
7223         </member>
7224         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Always">
7225             <summary>
7226             Always log the event (It also can mean that the provider decides the verbosity)  You probably should not use it....
7227             </summary>
7228         </member>
7229         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Critical">
7230             <summary>
7231             Events that indicate critical conditions
7232             </summary>
7233         </member>
7234         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Error">
7235             <summary>
7236             Events that indicate error conditions
7237             </summary>
7238         </member>
7239         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Warning">
7240             <summary>
7241             Events that indicate warning conditions
7242             </summary>
7243         </member>
7244         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Informational">
7245             <summary>
7246             Events that indicate information
7247             </summary>
7248         </member>
7249         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventLevel.Verbose">
7250             <summary>
7251             Events that verbose information
7252             </summary>
7253         </member>
7254         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventKeyword">
7255             <summary>
7256             ETW defines the concept of a Keyword, which is a 64 bit bitfield. Each bit in the bitfield
7257             represents some provider defined 'area' that is useful for filtering. When processing the events, it
7258             is then possible to filter based on whether various bits in the bitfield are set.  There are some
7259             standard keywords, but most are provider specific. 
7260             </summary>
7261         </member>
7262         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventKeyword.None">
7263             <summary>
7264             No event groups (keywords) selected
7265             </summary>
7266         </member>
7267         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventKeyword.All">
7268             <summary>
7269             All event groups (keywords) selected
7270             </summary>
7271         </member>
7272         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventTask">
7273             <summary>
7274             Tasks are groups of related events for a given provider (for example Process, or Thread, Kernel Provider).  
7275             They are defined by the provider.  
7276             </summary>
7277         </member>
7278         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventTask.Default">
7279             <summary>
7280             If you don't explicitly choose a task you get the default 
7281             </summary>
7282         </member>
7283         <member name="T:Microsoft.Diagnostics.Tracing.EventIndex">
7284             <summary>
7285             EventIdex is a unsigned integer that is unique to a particular event. EventIndex is guaranteed to be 
7286             unique over the whole log.  It is only used by ETLX files.  
7287             <para>
7288             Currently the event ID simply the index in the log file of the event.  We don't however guarantee ordering.
7289             In the future we may add new events to the log and given them IDs 'at the end' even if the events are not
7290             at the end chronologically.  
7291             </para>
7292             <para>
7293             EventIndex is a 32 bit number limits it to 4Gig events in an ETLX file.  
7294             </para>
7295             </summary>
7296         </member>
7297         <member name="F:Microsoft.Diagnostics.Tracing.EventIndex.Invalid">
7298             <summary>
7299             Invalid is an EventIndex that will not be used by a normal event. 
7300             </summary>
7301         </member>
7302         <member name="T:Microsoft.Diagnostics.Tracing.ITraceParserServices">
7303             <summary>
7304             TraceEventSource has two roles.  The first is the obvious one of providing some properties
7305             like 'SessionStartTime' for clients.  The other role is provide an interface for TraceEventParsers
7306             to 'hook' to so that events can be decoded.  ITraceParserServices is the API service for this
7307             second role.  It provides the methods that parsers register templates for subclasses of 
7308             the TraceEvent class that know how to parse particular events.   
7309             </summary>
7310         </member>
7311         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterEventTemplate(Microsoft.Diagnostics.Tracing.TraceEvent)">
7312             <summary>
7313             RegisterEventTemplate is the mechanism a particular event payload description 'template' 
7314             (a subclass of TraceEvent) is injected into the event processing stream. Once registered, an
7315             event is 'parsed' simply by setting the 'rawData' field in the event. It is up to the template
7316             then to take this raw data an present it in a useful way to the user (via properties). Note that
7317             parsing is thus 'lazy' in no processing of the raw data is not done at event dispatch time but
7318             only when the properties of an event are accessed.
7319             
7320             Ownership of the template transfers when this call is made.   The source will modify this and
7321             assumes it has exclusive use (thus you should clone the template if necessary).  
7322             <para>
7323             Another important aspect is that templates are reused by TraceEventSource aggressively. The
7324             expectation is that no memory needs to be allocated during a normal dispatch 
7325             </para>
7326             </summary>
7327         </member>
7328         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.UnregisterEventTemplate(System.Delegate,System.Int32,System.Guid)">
7329             <summary>
7330             UnregisterEventTemplate undoes the action of RegisterEventTemplate.   Logically you would 
7331             pass the template to unregister, but typically you don't have that at unregistration time.
7332             To avoid forcing clients to remember the templates they registered, UnregisterEventTemplate
7333             takes three things that will uniquely identify the template to unregister.   These are
7334             the eventID, and provider ID and the Action (callback) for the template.  
7335             </summary>
7336         </member>
7337         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterParser(Microsoft.Diagnostics.Tracing.TraceEventParser)">
7338             <summary>
7339             It is expected that when a subclass of TraceEventParser is created, it calls this
7340             method on the source.  This allows the source to do any Parser-specific initialization.  
7341             </summary>
7342         </member>
7343         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.RegisterUnhandledEvent(System.Func{Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean})">
7344             <summary>
7345             Indicates that this callback should be called on any unhandled event.   The callback
7346             returns true if the lookup should be retried after calling this (that is there is
7347             the unhandled event was found).  
7348             </summary>
7349         </member>
7350         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.TaskNameForGuid(System.Guid)">
7351             <summary>
7352             Looks if any provider has registered an event with task with 'taskGuid'. Will return null if
7353             there is no registered event.
7354             </summary>
7355         </member>
7356         <member name="M:Microsoft.Diagnostics.Tracing.ITraceParserServices.ProviderNameForGuid(System.Guid)">
7357             <summary>
7358             Looks if any provider has registered with the given GUID OR has registered any task that matches
7359             the GUID. Will return null if there is no registered event.
7360             </summary>
7361         </member>
7362         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventParser">
7363             <summary>
7364             TraceEventParser Represents a class that knows how to decode particular set of events (typically
7365             all the events of a single ETW provider).  It is expected that subclasses of TraceEventParser 
7366             have a constructor that takes a TraceEventSource as an argument that 'attaches' th parser 
7367             to the TraceEventSource.  TraceEventParsers break into two groups.
7368             <para>
7369             * Those that work on a single provider, and thus the provider name is implicit in th parser.  This is the common case.
7370             The AddCallbackForEvent* methods are meant to be used for these TraceEventParsers</para>
7371             <para>
7372             * Those that work on multiple providers.  There are only a handful of these (DynamicTraceEventParser, ...). 
7373             The AddCallbackForProviderEvent* methods which take 'Provider' parameters are meant to be used for these TraceEventParsers
7374             </para>
7375             <para>
7376             In addition to the AddCallback* methods on TraceEventParser, there are also Observe* extension methods that
7377             provide callbacks using the IObservable style.  
7378             </para>
7379             </summary>
7380         </member>
7381         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.Source">
7382             <summary>
7383             Get the source this TraceEventParser is attached to. 
7384             </summary>
7385         </member>
7386         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventParser.All">
7387             <summary>
7388             Subscribe to all the events this parser can parse.  It is shorthand for AddCallback{TraceEvent}(value)/RemoveCallback(value)
7389             </summary>
7390         </member>
7391         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvent``1(System.String,System.Action{``0})">
7392             <summary>
7393             A shortcut that adds 'callback' in the provider associated with this parser (ProvderName) and an event name 'eventName'.  'eventName'
7394             can be null in which case any event that matches 'Action{T}' will call the callback.    
7395             'eventName is of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'.   
7396             <para>
7397             The callback alone is used as the subscription id for unregistration, so the callback delegate should be unique (by delegate comparison)
7398             </para>
7399             </summary>
7400         </member>
7401         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Action{``0})">
7402             <summary>
7403             Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and 
7404             whose eventName will pass 'eventNameFilter'.    
7405             </summary>
7406         </member>
7407         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Predicate{System.String},System.Action{``0})">
7408             <summary>
7409             Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and 
7410             whose eventName will pass 'eventNameFilter'.    The eventNameFilter parameter can be null, in which case all events that are compatible 
7411             with T will be selected. 
7412             
7413             eventNames passed to the filer are of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'.  
7414             </summary>
7415         </member>
7416         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForEvents``1(System.Predicate{System.String},System.Object,System.Action{``0})">
7417             <summary>
7418             Causes 'callback' to be called for any event in the provider associated with this parser (ProviderName) whose type is compatible with T and 
7419             whose eventName will pass 'eventNameFilter'.    The eventNameFilter parameter can be null, in which case all events that are compatible 
7420             with T will be selected.  
7421             <para>
7422             A 'subscriptionID' can be passed and this value along with the callback can be used
7423             to uniquely identify subscription to remove using the 'RemoveCallback' API.   If null is passed, then only the identity of the callback can
7424             be used to identify the subscription to remove.  
7425             
7426             eventNames passed to the filer are of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'. 
7427             </para>        
7428             </summary>
7429         </member>
7430         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvent(System.String,System.String,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7431             <summary>
7432             A shortcut that adds 'callback' for the event in 'providerName' and an event name 'eventName'
7433             The callback alone is used as the subscription id for unregistration, so the callback delegate should be unique (by delegate comparison)
7434             
7435             eventName is of the of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'. 
7436             
7437             </summary>
7438         </member>
7439         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvents(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7440             <summary>
7441             Cause 'callback' to be called for any event that this parser recognizes for which the function 'eventsToObserve'
7442             returns 'AcceptEvent'.   The 'eventsToObserve is given both the provider name (first) and the event name and can return
7443             'AcceptEvent' 'RejectEvent' or 'RejectProvider' (in which case it may not be called again for that provider).  
7444             eventsToObserver can be null in which case all events that match the parser recognizes are selected. 
7445             
7446             eventNames passed to the filer are of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'. 
7447             
7448             <para>
7449             Thus this method works for parsers that parse more than one provider (e.g. DynamicTraceEventParser).   
7450             </para>
7451             </summary>
7452         </member>
7453         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.AddCallbackForProviderEvents(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Object,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7454             <summary>
7455             Cause 'callback' to be called for any event that this parser recognizes for which the function 'eventsToObserve'
7456             returns 'AcceptEvent'.   The 'eventsToObserve is given both the provider name (first) and the event name and can return
7457             'AcceptEvent' 'RejectEvent' or 'RejectProvider' (in which case it may not be called again for that provider).  
7458             eventsToObserver can be null in which case all events that match the parser recognizes are selected. 
7459             
7460             eventNames passed to the filer are of the form 'TaskName/OpcodeName'   if the event has a non-trivial opcode, otherwise it is 'TaskName'.         /// 
7461             <para>
7462             Thus this method works for parsers that parse more than one provider (e.g. DynamicTraceEventParser).   
7463             </para><para>
7464             A subscriptionID can optionally be passed.  This is used (along with the callback identity) to identify this to the 'RemoveCallback' If you
7465             don't need to remove the callback or you will do it in bulk, you don't need this parameter.  
7466             </para>
7467             </summary>
7468         </member>
7469         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.RemoveCallback``1(System.Action{``0},System.Object)">
7470             <summary>
7471             Remove all subscriptions added with 'AddCallback' (any overload), that is compatible with T, has a callback 'callback' and subscriptionId 'subscriptionId' 
7472             where 'subscriptionId' was the value that was optionally passed to 'AddCallback' to provide exactly this disambiguation.  
7473             <para>
7474             'callback' or 'subscriptionId' can be null, in which case it acts as a wild card.  Thus RemoveCallback{TraceEvent}(null, null) will remove all callbacks 
7475             that were registered through this parser.  
7476             </para>
7477             </summary>
7478         </member>
7479         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.IsStatic">
7480             <summary>
7481             A static TraceEventParser is a parser where the set of events that can be subscribed to (and their payload fields) are known at 
7482             compile time.  There are very few dynamic TraceEventParsers (DynamicTraceEventParser, RegisteredTraceEventParser and WPPTraceEventParser)
7483             </summary>
7484         </member>
7485         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.#ctor(Microsoft.Diagnostics.Tracing.TraceEventSource,System.Boolean)">
7486             <summary>
7487             All TraceEventParsers invoke this constructor.  If 'dontRegister' is true it is not registered with the source. 
7488             </summary>
7489         </member>
7490         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.GetProviderName">
7491             <summary>
7492             Normally a TraceEvent parser knows how to parse only one provider.   If this is true
7493             ProviderName returns the name of this provider.  If the parser knows how to parse 
7494             more than one provider, this property returns null.     
7495             </summary>
7496         </member>
7497         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventParser.StateObject">
7498             <summary>
7499             If the parser needs to persist data along with the events we put it in a separate object.   
7500             This object and then implement serialization functionality that allows it to be persisted (this is for ETLX support).  
7501             </summary>
7502         </member>
7503         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.EnumerateTemplates(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Action{Microsoft.Diagnostics.Tracing.TraceEvent})">
7504             <summary>
7505             Returns a list of all templates currently existing (new ones can come in, but OnNewEventDefintion must be called 
7506             whenever that happens.   Note that the returned templates MUST be cloned and do not have their source or parser state
7507             fields set.  These must be set as part of subscription (after you know if you care about them or not).  
7508             
7509             eventsToObserver is given the provider name and event name and those events that return AcceptEvent will
7510             have the 'callback' function called on that template.   eventsToObserver can be null which mean all events.  
7511             
7512             The returned template IS READ ONLY!   If you need a read-write copy (typical), clone it first.   
7513             </summary>
7514         </member>
7515         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.OnNewEventDefintion(Microsoft.Diagnostics.Tracing.TraceEvent,System.Boolean)">
7516             <summary>
7517             If the parser can change over time (it can add new definitions),  It needs to support this interface.  See EnumerateDynamicTemplates for details.
7518             This function should be called any time a new event is now parsable by the parser.   If it is guaranteed that the particular event is 
7519             definitely being ADDED (it never existed in the past), then you can set 'mayHaveExistedBefore' to false and save some time.  
7520              
7521             It returns false if there are no definitions for that particular Provider (and thus you can skip callback if desired).  
7522             </summary>
7523         </member>
7524         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.Subscribe(Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest,Microsoft.Diagnostics.Tracing.TraceEvent,System.Object,System.Boolean)">
7525             <summary>
7526             Given a subscription request, and a template that can now be parsed (and its state, which is just TraceEventParser.StateObj) 
7527             If subscription states that the template should be registered with the source, then do the registration.   
7528             
7529             if 'mayHaveExistedBefore' means that this template definition may have been seen before (DynamicTraceEventParsers do this as
7530             you may get newer versions dynamically registering themselves).   In that case this should be set.  If you can guaranteed that
7531             a particular template (provider-eventID pair) will only be subscribed at most once you can set this to false.  
7532             </summary>
7533         </member>
7534         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest">
7535             <summary>
7536             Keeps track of a single 'AddCallback' request so it can be removed later.   It also handles lazy addition of events.  
7537             </summary>
7538         </member>
7539         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventParser.SubscriptionRequest.#ctor(System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse},System.Delegate,System.Object)">
7540             <summary>
7541             Create a subscription request.  'eventsToObserve takes a provider name (first) and a event name and returns a three valued EventFilterResponse
7542             value (accept, reject, reject provider)
7543             </summary>
7544         </member>
7545         <member name="F:Microsoft.Diagnostics.Tracing.TraceEventParser.source">
7546             <summary>
7547             The source that this parser is connected to.  
7548             </summary>
7549         </member>
7550         <member name="T:Microsoft.Diagnostics.Tracing.EventFilterResponse">
7551             <summary>
7552             EventFilterResponse is the set of responses  a user-defined filtering routine, might return.  This is used in the TraceEventParser.AddCallbackForProviderEvents method.  
7553             </summary>
7554         </member>
7555         <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.RejectEvent">
7556             <summary>
7557             Not an interesting event, but other events in the same provider may be
7558             </summary>
7559         </member>
7560         <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.RejectProvider">
7561             <summary>
7562             No event in the provider will be accepted
7563             </summary>
7564         </member>
7565         <member name="F:Microsoft.Diagnostics.Tracing.EventFilterResponse.AcceptEvent">
7566             <summary>
7567              An interesting event
7568             </summary>
7569         </member>
7570         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions">
7571             <summary>
7572             An options class for the TraceEventDispatcher
7573             </summary>
7574         </member>
7575         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions.StartTime">
7576             <summary>
7577             StartTime from which you want to start analyzing the events for file formats that support this.
7578             </summary>
7579         </member>
7580         <member name="P:Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions.EndTime">
7581             <summary>
7582             EndTime till when you want to analyze events for file formats that support this.
7583             </summary>
7584         </member>
7585         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventDispatcher">
7586             <summary>
7587             A TraceEventDispatcher is a TraceEventSource that supports a callback model for dispatching events.  
7588             </summary>
7589         </member>
7590         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.GetDispatcherFromFileName(System.String,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
7591             <summary>
7592             Obtains the correct TraceEventDispatcher for the given trace file name.
7593             </summary>
7594             <param name="traceFileName">A path to a trace file.</param>
7595             <returns>A TraceEventDispatcher for the given trace file.</returns>
7596         </member>
7597         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.UnhandledEvents">
7598             <summary>
7599             Subscribers to UnhandledEvent are called if no other hander has processed the event.   It is
7600             generally used in DEBUG builds to validate that events are getting to the source at all.  
7601             </summary>
7602         </member>
7603         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.AllEvents">
7604             <summary>
7605             Subscribers to EveryEvent are called on every event in the trace.   Normally you don't want
7606             to subscribe to this but rather use a TraceEvenParser (which knows how to decode the payloads)
7607             and subscribe to particular events through that.   For example Using TraceEventSource.Dynamic.All 
7608             or TraceEventSource.Dynamic.All is more likely to be what you are looking for.   AllEvents is only
7609             an event callback of last resort, that only gives you the 'raw' data (common fields but no
7610             payload).  
7611             <para>
7612             This is called AFTER any event-specific handlers.
7613             </para>
7614             </summary>
7615         </member>
7616         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.UnhandledEvent">
7617             <summary>
7618             Subscribers to UnhandledEvent are called if no other hander has processed the event.   It is
7619             generally used in DEBUG builds to validate that events are getting to the source at all.  
7620             </summary>
7621         </member>
7622         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.EveryEvent">
7623             <summary>
7624             Subscribers to EveryEvent are called on every event in the trace.   Normally you don't want
7625             to subscribe to this but rather use a TraceEvenParser and subscribe to particular events
7626             through that.   
7627             <para>
7628             This is called AFTER any event-specific handlers.
7629             </para>
7630             </summary>
7631         </member>
7632         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Process">
7633             <summary>
7634             Once a client has subscribed to the events of interest, calling Process actually causes
7635             the callbacks to happen.   
7636             <para>
7637             Subclasses implementing this method should call 'OnCompleted' 
7638             before returning.  
7639             </para>
7640             </summary>
7641             <returns>false If StopProcessing was called</returns>
7642         </member>
7643         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.StopProcessing">
7644             <summary>
7645             Calling StopProcessing in a callback when 'Process()' is running will indicate that processing
7646             should be stopped immediately and that the Process() method should return.  
7647             
7648             Note that this stop request will not be honored until the next event from the source.   Thus
7649             for real time sessions there is an indeterminate delay before the stop will complete.   
7650             If you need to force the stop you should instead call Dispose() on the session associated with 
7651             the real time session.  This will cause the source to be shut down and thus also stop processing
7652             (Process() will return) but is guaranteed to complete in a timely manner.  
7653             </summary>
7654         </member>
7655         <member name="E:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Completed">
7656             <summary>
7657             Subscribers of Completed will be called after processing is complete (right before TraceEventDispatcher.Process returns.    
7658             </summary>
7659         </member>
7660         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.AddDispatchHook(System.Action{Microsoft.Diagnostics.Tracing.TraceEvent,System.Action{Microsoft.Diagnostics.Tracing.TraceEvent}})">
7661             <summary>
7662             Wrap (or filter) the dispatch of every event from the TraceEventDispatcher stream.   
7663             Instead of calling the normal code it calls 'hook' with both the event to be dispatched
7664             and the method the would normally do the processing.    Thus the routine has 
7665             the option to call normal processing, surround it with things like a lock
7666             or skip it entirely.  This can be called more than once, in which case the last
7667             hook method gets called first (which may end up calling the second ...)
7668             
7669             For example,here is an example that uses AddDispatchHook to 
7670             take a lock is taken whenever dispatch work is being performed.  
7671             
7672             AddDispatchHook((anEvent, dispatcher) => { lock (this) { dispatcher(anEvent); } });
7673             </summary>
7674         </member>
7675         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.OnCompleted">
7676             <summary>
7677             Called when processing is complete.  You can call this more than once if your not sure if it has already been called.  
7678             however we do guard against races.  
7679             </summary>
7680         </member>
7681         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.DistinctCallbackCount">
7682             <summary>
7683              Number of different events that have callbacks associated with them 
7684             </summary>
7685         </member>
7686         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.CallbackCount">
7687             <summary>
7688             Total number of callbacks that are registered.  Even if they are for the same event.  
7689             </summary>
7690             <returns></returns>
7691         </member>
7692         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Dispatch(Microsoft.Diagnostics.Tracing.TraceEvent)">
7693             <summary>
7694             This is the routine that is called back when any event arrives.  Basically it looks up the GUID
7695             and the opcode associated with the event and finds right subclass of TraceEvent that
7696             knows how to decode the packet, and calls its virtual TraceEvent.Dispatch method.  Note
7697             that TraceEvent does NOT have a copy of the data, but rather just a pointer to it. 
7698             This data is ONLY valid during the callback. 
7699             </summary>
7700         </member>
7701         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Lookup(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
7702             <summary>
7703             Lookup up the event based on its ProviderID (GUID) and EventId (Classic use the TaskId and the
7704             Opcode field for lookup, but use these same fields (see ETWTraceEventSource.RawDispatchClassic)
7705             </summary>
7706         </member>
7707         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Dispose(System.Boolean)">
7708             <summary>
7709             Dispose pattern. 
7710             </summary>
7711         </member>
7712         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Finalize">
7713             <summary>
7714             Dispose pattern
7715             </summary>
7716         </member>
7717         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.Insert(Microsoft.Diagnostics.Tracing.TraceEvent)">
7718             <summary>
7719             Inserts 'template' into the hash table, using 'providerGuid' and and 'eventID' as the key. 
7720             For Vista ETW events 'providerGuid' must match the provider GUID and the 'eventID' the ID filed.
7721             For PreVist ETW events 'providerGuid must match the task GUID the 'eventID' is the Opcode
7722             </summary>
7723         </member>
7724         <member name="M:Microsoft.Diagnostics.Tracing.TraceEventDispatcher.GenTaskGuidFromProviderGuid(System.Guid,System.UInt16)">
7725             <summary>
7726             A helper for creating a set of related guids (knowing the providerGuid can can deduce the
7727             'taskNumber' member of this group.  All we do is add the taskNumber to GUID as a number.  
7728             </summary>
7729         </member>
7730         <member name="T:Microsoft.Diagnostics.Tracing.EmptyTraceData">
7731             <summary>
7732             TraceEventParsers can use this template to define the event for the trivial case where the event has no user-defined payload  
7733             <para>This is only useful to TraceEventParsers.</para>
7734             </summary>
7735         </member>
7736         <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.EmptyTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String)">
7737             <summary>
7738             Construct a TraceEvent template which has no payload fields with the given metadata and action
7739             </summary>
7740         </member>
7741         <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.ToXml(System.Text.StringBuilder)">
7742             <summary>
7743             implementation of TraceEvent Interface. 
7744             </summary>
7745         </member>
7746         <member name="P:Microsoft.Diagnostics.Tracing.EmptyTraceData.PayloadNames">
7747             <summary>
7748             implementation of TraceEvent Interface. 
7749             </summary>
7750         </member>
7751         <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.PayloadValue(System.Int32)">
7752             <summary>
7753             implementation of TraceEvent Interface. 
7754             </summary>
7755         </member>
7756         <member name="M:Microsoft.Diagnostics.Tracing.EmptyTraceData.Dispatch">
7757             <summary>
7758             Dispatches the event to the action associated with the template. 
7759             </summary>
7760         </member>
7761         <member name="P:Microsoft.Diagnostics.Tracing.EmptyTraceData.Target">
7762             <summary>
7763             override
7764             </summary>
7765         </member>
7766         <member name="T:Microsoft.Diagnostics.Tracing.StringTraceData">
7767             <summary>
7768             When the event has just a single string value associated with it, you can use this shared event
7769             template rather than making an event-specific class.
7770             </summary>
7771         </member>
7772         <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.Value">
7773             <summary>
7774             The value of the one string payload property.  
7775             </summary>
7776         </member>
7777         <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.#ctor(System.Action{Microsoft.Diagnostics.Tracing.StringTraceData},System.Int32,System.Int32,System.String,System.Guid,System.Int32,System.String,System.Guid,System.String,System.Boolean)">
7778             <summary>
7779             Construct a TraceEvent template which has one string payload field with the given metadata and action
7780             </summary>
7781         </member>
7782         <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.ToXml(System.Text.StringBuilder)">
7783             <summary>
7784             implementation of TraceEvent Interface. 
7785             </summary>
7786         </member>
7787         <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.PayloadNames">
7788             <summary>
7789             implementation of TraceEvent Interface. 
7790             </summary>
7791         </member>
7792         <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.PayloadValue(System.Int32)">
7793             <summary>
7794             implementation of TraceEvent Interface. 
7795             </summary>
7796         </member>
7797         <member name="M:Microsoft.Diagnostics.Tracing.StringTraceData.Dispatch">
7798             <summary>
7799             implementation of TraceEvent Interface. 
7800             </summary>
7801         </member>
7802         <member name="P:Microsoft.Diagnostics.Tracing.StringTraceData.Target">
7803             <summary>
7804             override
7805             </summary>
7806         </member>
7807         <member name="T:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent">
7808             <summary>
7809             UnhandledTraceEvent is a TraceEvent when is used when no manifest information is available for the event. 
7810             </summary>
7811         </member>
7812         <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.ToXml(System.Text.StringBuilder)">
7813             <summary>
7814             implementation of TraceEvent Interface. 
7815             </summary>
7816         </member>
7817         <member name="P:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PayloadNames">
7818             <summary>
7819             implementation of TraceEvent Interface. 
7820             </summary>
7821         </member>
7822         <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PayloadValue(System.Int32)">
7823             <summary>
7824             implementation of TraceEvent Interface. 
7825             </summary>
7826         </member>
7827         <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.Dispatch">
7828             <summary>
7829             implementation of TraceEvent Interface. 
7830             </summary>
7831         </member>
7832         <member name="P:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.Target">
7833             <summary>
7834             override
7835             </summary>
7836         </member>
7837         <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.ToString">
7838             <summary>
7839             implementation of TraceEvent Interface. 
7840             </summary>
7841         </member>
7842         <member name="M:Microsoft.Diagnostics.Tracing.UnhandledTraceEvent.PrepForCallback">
7843             <summary>
7844             There is some work needed to prepare the generic unhandledTraceEvent that we defer
7845             late (since we often don't care about unhandled events)  
7846             
7847             TODO this is probably not worht the complexity...
7848             </summary>
7849         </member>
7850         <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions">
7851             <summary>
7852             ObservableExtensions defines methods on TraceEventParser that implement the IObservable protocol for implementing callbacks.
7853             </summary>
7854         </member>
7855         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe``1(Microsoft.Diagnostics.Tracing.TraceEventParser,System.String)">
7856             <summary>
7857             Returns an IObjservable that observes all events that 'parser' knows about that  return a T.  If eventName is
7858             non-null, the event's name must match 'eventName', but if eventName is null, any event that returns a T is observed. 
7859             <para>
7860             This means that Observe{TraceEvent}(parser) will observe all events that the parser can parse.  
7861             
7862             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7863             referenced for as long as you like.  
7864             </para>
7865             </summary>
7866         </member>
7867         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe``1(Microsoft.Diagnostics.Tracing.TraceEventParser,System.Predicate{System.String})">
7868             <summary>
7869             Returns an IObjservable that observes all events that 'parser' knows about that return a T and whose event
7870             name matches the 'eventNameFilter' predicate.  
7871             
7872             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7873             referenced for as long as you like.   
7874             </summary>
7875         </member>
7876         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe(Microsoft.Diagnostics.Tracing.TraceEventParser,System.String,System.String)">
7877             <summary>
7878             Observe a particular event from a particular provider.   If eventName is null, it will return every event from the provider
7879              
7880             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7881             referenced for as long as you like.  
7882             </summary>
7883         </member>
7884         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.Observe(Microsoft.Diagnostics.Tracing.TraceEventParser,System.Func{System.String,System.String,Microsoft.Diagnostics.Tracing.EventFilterResponse})">
7885             <summary>
7886             Given a predicate 'eventToObserve' which takes the name of a provider (which may be of the form Provider(GUID)) (first) and 
7887             an event name (which may be of the form EventID(NUM)) and indicates which events to observe, return an IObservable
7888             that observes those events. 
7889             
7890             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7891             referenced for as long as you like.  . 
7892             </summary>
7893         </member>
7894         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.ObserveAll(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
7895             <summary>
7896             Returns an observable that observes all events from the event source 'source'
7897             
7898             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7899             referenced for as long as you like.  
7900             </summary>
7901         </member>
7902         <member name="M:Microsoft.Diagnostics.Tracing.ObservableExtensions.ObserveUnhandled(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
7903             <summary>
7904             Returns an observable that observes all events from the event source 'source' which are not handled by a callback connected to 'source'
7905             
7906             Note that unlike the methods on TraceEventParser, the TraceEvent object returned is already Cloned() and thus can be 
7907             referenced for as long as you like.  
7908             </summary>
7909         </member>
7910         <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions.TraceEventObservable`1">
7911             <summary>
7912             A TraceEventObservable is a helper class that implements the IObservable pattern for TraceEventDispatcher 
7913             (like ETWTraceEventDispatcher).  It is called from the TraceEventParser.Observe*{T} methods.  
7914             </summary>
7915             <typeparam name="T"></typeparam>
7916         </member>
7917         <member name="T:Microsoft.Diagnostics.Tracing.ObservableExtensions.TraceEventObservable`1.TraceEventSubscription">
7918             <summary>
7919             A TraceEventSubscription is helper class that hooks 'callback' and 'completedCallback' to the 'observable' and 
7920             unhooks them when 'Dispose' is called.  
7921             </summary>
7922         </member>
7923         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods">
7924             <summary>
7925             TraceEventNativeMethods contains the PINVOKE declarations needed
7926             to get at the Win32 TraceEvent infrastructure.  It is effectively
7927             a port of evntrace.h to C# declarations.  
7928             </summary>
7929         </member>
7930         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.TIME_ZONE_INFORMATION">
7931             <summary>
7932             Time zone info.  Used as one field of TRACE_EVENT_LOGFILE, below.
7933             Total struct size is 0xac.
7934             </summary>
7935         </member>
7936         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.WNODE_HEADER">
7937             <summary>
7938             EventTraceHeader structure used by EVENT_TRACE_PROPERTIES
7939             </summary>
7940         </member>
7941         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_PROPERTIES">
7942             <summary>
7943             EVENT_TRACE_PROPERTIES is a structure used by StartTrace, ControlTrace
7944             however it can not be used directly in the definition of these functions
7945             because extra information has to be hung off the end of the structure
7946             before being passed.  (LofFileNameOffset, LoggerNameOffset)
7947             </summary>
7948         </member>
7949         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_HEADER">
7950             <summary>
7951             EventTraceHeader and structure used to defined EVENT_TRACE (the main packet)
7952             I have simplified from the original struct definitions.  I have
7953             omitted alternate union-fields which we don't use.
7954             </summary>
7955         </member>
7956         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE">
7957             <summary>
7958             EVENT_TRACE is the structure that represents a single 'packet'
7959             of data repesenting a single event.  
7960             </summary>
7961         </member>
7962         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.TRACE_LOGFILE_HEADER">
7963             <summary>
7964             TRACE_LOGFILE_HEADER is a header used to define EVENT_TRACE_LOGFILEW.
7965             Total struct size is 0x110.
7966             </summary>
7967         </member>
7968         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_TRACE_LOGFILEW">
7969             <summary>
7970             EVENT_TRACE_LOGFILEW Main struct passed to OpenTrace() to be filled in.
7971             It represents the collection of ETW events as a whole.
7972             </summary>
7973         </member>
7974         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_HEADER">
7975             <summary>
7976             EventTraceHeader and structure used to define EVENT_TRACE_LOGFILE (the main packet on Vista and above)
7977             I have simplified from the original struct definitions.  I have
7978             omitted alternate union-fields which we don't use.
7979             </summary>
7980         </member>
7981         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.ETW_BUFFER_CONTEXT">
7982             <summary>
7983             Provides context information about the event
7984             </summary>
7985         </member>
7986         <member name="T:Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD">
7987             <summary>
7988             Defines the layout of an event that ETW delivers
7989             </summary>
7990         </member>
7991         <member name="T:Microsoft.Diagnostics.Tracing.ControllerCommand">
7992             <summary>
7993             Possible control commands (borrowed from EventSource)
7994             </summary>
7995         </member>
7996         <member name="F:Microsoft.Diagnostics.Tracing.ControllerCommand.Update">
7997             <summary>
7998             Standard 'update' command to send additional information to a provider
7999             </summary>
8000         </member>
8001         <member name="F:Microsoft.Diagnostics.Tracing.ControllerCommand.SendManifest">
8002             <summary>
8003             Instructs an EventSource-based provider to send its manifest
8004             </summary>
8005         </member>
8006         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventSession">
8007             <summary>
8008             A TraceEventSession represents a single ETW Tracing Session.   A session is and event sink that 
8009             can enable or disable event logging from event providers).    TraceEventSessions can log their
8010             events either to a file, or by issuing callbacks when events arrive (a so-called 'real time' 
8011             session).   
8012             <para>
8013             Session are MACHINE wide and unlike most OS resources the operating system does NOT reclaim 
8014             them when the process that created it dies.  By default TraceEventSession tries is best to
8015             do this reclamation, but it is possible that for 'orphan' session to accidentally survive
8016             if the process is ended abruptly (e.g. by the debugger or a user explicitly killing it).  It is 
8017             possible to turn off TraceEventSession automatic reclamation by setting the StopOnDispose 
8018             property to false (its default is true).  
8019             </para>
8020             <para> 
8021             Kernel events have additional restrictions.   In particular there is a special API (EnableKernelProvider).  
8022             Before Windows 8, there was a restriction that kernel events could only be enabled from a session 
8023             with a special name (see KernelTraceEventParser.KernelSessionName) and thus there could only be a single
8024             session that could log kernel events (and that session could not log non-kernel events).  These
8025             restrictions were dropped in windows 8. 
8026             </para>
8027             </summary>
8028         </member>
8029         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.#ctor(System.String,System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions)">
8030             <summary>
8031             Create a new logging session sending the output to a given file.  
8032             </summary>
8033             <param name="sessionName">
8034             The name of the session. Since session can exist beyond the lifetime of the process this name is
8035             used to refer to the session from other processes after it is created.   By default TraceEventSessions
8036             do their best to close down if the TraceEventSession dies (see StopOnDispose), however if StopOnDispose
8037             is set to false, the session can live on after process death, and you use the name to refer to it later.  
8038             </param>
8039             <param name="fileName">
8040             The output moduleFile (by convention .ETL) to put the event data.  If this is null, and CircularMB is set
8041             to something non-zero, then it will do an in-memory circular buffer.   You can get this buffer by 
8042             using the 'SetFileName()' method which dumps the data in the buffer.  
8043             </param>
8044             <param name="options">Additional flags that influence behavior.  Note that the 'Create' option is implied for file mode sessions. </param>
8045         </member>
8046         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.#ctor(System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions)">
8047             <summary>
8048             Open a logging session.   By default (if options is not specified) a new 'real time' session is created if
8049             the session already existed it is closed and reopened (thus orphans are cleaned up on next use).  By default
8050             sessions are closed on Dispose, but if the destructor does not run it can produce 'orphan' session that will
8051             live beyond the lifetime of the process.   You can use the StopOnDispose property to force sessions to live
8052             beyond the TraceEventSession that created them and use the TraceEventSessionOptions.Attach option to reattach
8053             to these sessions.
8054             </summary>
8055             <param name="sessionName"> The name of the session to open.  Should be unique across the machine.</param>
8056             <param name="options"> Construction options.  TraceEventSessionOptions.Attach indicates a desire to attach
8057             to an existing session. </param>
8058         </member>
8059         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetActiveSession(System.String)">
8060             <summary>
8061             Looks for an existing active session named 'sessionName; and returns the TraceEventSession associated with it if it exists. 
8062             Returns null if the session does not exist.   You can use the GetActiveSessionNames() to get a list of names to pass to this method. 
8063             </summary>
8064         </member>
8065         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.String,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions)">
8066             <summary>
8067             Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider name.  
8068             This API first checks if a published provider exists by that name, otherwise it 
8069             assumes it is an EventSouce and determines the provider Guid by hashing the name according to a
8070             well known algorithm.  Thus it will never return a failure for a incorrect spelling of the name.  
8071             </summary>
8072             <param name="providerName">
8073             The name of the provider.  It must either be registered with the operating system (logman query providers returns it)
8074             or it must be an EventSource (see GetEventSourceGuidFromName)</param>
8075             <param name="providerLevel">The verbosity to turn on</param>
8076             <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8077             low 32 bits are used by classic providers and passed as the 'flags' value.  Zero
8078             is a special value which is a provider defined default, which is usually 'everything'</param>
8079             <param name="options">Additional options for the provider (e.g. taking a stack trace), arguments ... </param>
8080             <returns>true if the session already existed and needed to be restarted.</returns>
8081         </member>
8082         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions)">
8083             <summary>
8084             Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider Guid.  
8085             </summary>
8086             <param name="providerGuid">
8087             The Guid that represents the event provider enable. </param>
8088             <param name="providerLevel">The verbosity to turn on</param>
8089             <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8090             low 32 bits are used by classic providers and passed as the 'flags' value.  Zero
8091             is a special value which is a provider defined default, which is usually 'everything'</param>
8092             <param name="options">Additional options for the provider (e.g. taking a stack trace), arguments ... </param>
8093             <returns>true if the session already existed and needed to be restarted.</returns>
8094         </member>
8095         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.String,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
8096             <summary>
8097             Enable a NON-KERNEL provider (see also EnableKernelProvider) which has a given provider name.  
8098             This API first checks if a published provider exists by that name, otherwise it 
8099             assumes it is an EventSouce and determines the provider Guid by hashing the name according to a
8100             well known algorithm.  Thus it will never return a failure for a incorrect spelling of the name.  
8101             </summary>
8102             <param name="providerName">
8103             The name of the provider.  It must either be registered with the operating system (logman query providers returns it)
8104             or it must be an EventSource (see GetEventSourceGuidFromName)</param>
8105             <param name="providerLevel">The verbosity to turn on</param>
8106             <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8107             low 32 bits are used by classic providers and passed as the 'flags' value.  Zero
8108             is a special value which is a provider defined default, which is usually 'everything'</param>
8109             <param name="options">Additional options for the provider (e.g. taking a stack trace)</param>
8110             <param name="values">This is set of key-value strings that are passed to the provider
8111             for provider-specific interpretation. Can be null if no additional args are needed.  
8112             If the special key-value pair 'Command'='SendManifest' is provided, then the 'SendManifest'
8113             command will be sent (which causes EventSources to re-dump their manifest to the ETW log.  </param>
8114             <returns>true if the session already existed and needed to be restarted.</returns>
8115         </member>
8116         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProvider(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,System.String}})">
8117             <summary>
8118             Enable a NON-KERNEL provider (see also EnableKernelProvider) represented by 'providerGuid'.
8119             </summary>
8120             <param name="providerGuid">
8121             The Guid that represents the event provider enable. </param>
8122             <param name="providerLevel">The verbosity to turn on</param>
8123             <param name="matchAnyKeywords">A bitvector representing the areas to turn on. Only the
8124             low 32 bits are used by classic providers and passed as the 'flags' value.  Zero
8125             is a special value which is a provider defined default, which is usually 'everything'</param>
8126             <param name="options">Additional options for the provider (e.g. taking a stack trace)</param>
8127             <param name="values">This is set of key-value strings that are passed to the provider
8128             for provider-specific interpretation. Can be null if no additional args are needed.  
8129             If the special key-value pair 'Command'='SendManifest' is provided, then the 'SendManifest'
8130             command will be sent (which causes EventSources to re-dump their manifest to the ETW log.  </param>
8131             <returns>true if the session already existed and needed to be restarted.</returns>
8132         </member>
8133         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProviderWithRawProviderData(System.Guid,Microsoft.Diagnostics.Tracing.TraceEventLevel,System.UInt64,Microsoft.Diagnostics.Tracing.Session.TraceEventOptions,System.Byte[],System.Int32)">
8134             <summary>
8135             Enable an ETW provider, passing a raw blob of data to the provider as a Filter specification.   
8136             
8137             Note that this routine is only provided to interact with old ETW providers that can interpret EVENT_FILTER_DESCRIPTOR data
8138             but did not conform to the key-value string conventions.   This allows this extra information to be passed to these old
8139             providers.   Ideally new providers follow the key-value convention and EnableProvider can be used.  
8140             </summary>
8141         </member>
8142         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MakeDictionary(System.String[])">
8143             <summary>
8144             Helper function that is useful when using EnableProvider with key value pairs. 
8145             Given a list of key-value pairs, create a dictionary of the keys mapping to the values.   
8146             </summary>
8147         </member>
8148         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableKernelProvider(Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords,Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords)">
8149             <summary>
8150             Enable the kernel provider for the session. Before windows 8 this session must be called 'NT Kernel Session'.   
8151             This API is OK to call from one thread while Process() is being run on another
8152             <param name="flags">Specifies the particular kernel events of interest</param>
8153             <param name="stackCapture">
8154             Specifies which events should have their stack traces captured when an event is logged</param>
8155             <returns>Returns true if the session existed before and was restarted (see TraceEventSession)</returns>
8156             </summary>
8157         </member>
8158         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableWindowsHeapProvider(System.Int32)">
8159             <summary>
8160             Turn on windows heap logging (stack for allocation) for a particular existing process.
8161             </summary>
8162         </member>
8163         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableWindowsHeapProvider(System.String)">
8164             <summary>
8165             Turn on windows heap logging for a particular EXE file name (just the file name, no directory, but it DOES include the .exe extension)
8166             This API is OK to call from one thread while Process() is being run on another
8167             </summary>
8168             <param name="exeFileName"></param>
8169         </member>
8170         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.DisableProvider(System.Guid)">
8171             <summary>
8172             Disables a provider with the given provider ID completely
8173             </summary>
8174         </member>
8175         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.DisableProvider(System.String)">
8176             <summary>
8177             Disables a provider with the given name completely
8178             </summary>
8179         </member>
8180         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Stop(System.Boolean)">
8181             <summary>
8182             Once started, event sessions will persist even after the process that created them dies.  They will also be
8183             implicitly stopped when the TraceEventSession is closed unless the StopOnDispose property is set to false.  
8184             This API is OK to call from one thread while Process() is being run on another
8185             </summary>
8186         </member>
8187         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Dispose">
8188             <summary>
8189             Close the session and clean up any resources associated with the session.     It is OK to call this more than once.  
8190             This API is OK to call from one thread while Process() is being run on another.   Calling Dispose is on 
8191             a real time session is the way you can force a real time session to stop in a timely manner.  
8192             </summary>
8193         </member>
8194         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Flush">
8195             <summary>
8196             Asks all providers to flush events to the session
8197             This API is OK to call from one thread while Process() is being run on another
8198             </summary>
8199         </member>
8200         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetFileName(System.String)">
8201             <summary>
8202             For either session create with a file name this method can be used to redirect the data to a
8203             new file (so the previous one can be uploaded or processed offline), 
8204             
8205             It can also be used for a in-memory circular buffer session (FileName == null and CircularMB != 0)
8206             but its semantics is that simply writes the snapshot to the file (and closes it).  It does not
8207             actually make the FileName property become non-null because it only flushes the data, it does
8208             not cause persistent redirection of the data stream.  (it is like it auto-reverts).  
8209             
8210             It is an error to call this on a real time session.  (FileName == null and CircularMB == 0)
8211             </summary>
8212             <param name="newName">The path to the file to write the data to.</param>
8213         </member>
8214         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CaptureStateOnSetFileName">
8215             <summary>
8216             If set, whenever a SetFileName is called (causing a new ETL file to be created), force 
8217             a capture state for every provider that is currently turned on.    This way the file
8218             will be self-contained (will contain all the capture state information needed to decode events)
8219             This setting is true by default.  
8220             </summary>
8221         </member>
8222         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CaptureState(System.Guid,System.UInt64,System.Int32,System.Object)">
8223             <summary>
8224             Sends the CAPTURE_STATE command to the provider.  This instructs the provider to log any events that are needed to
8225             reconstruct important state that was set up before the session started.  What is actually done is provider specific.  
8226             EventSources will re-dump their manifest on this command. 
8227             This API is OK to call from one thread while Process() is being run on another
8228             <para>
8229             This routine only works Win7 and above, since previous versions don't have this concept.   The providers also has 
8230             to support it.  
8231             </para>
8232             </summary>
8233             <param name="providerGuid">The GUID that identifies the provider to send the CaptureState command to</param>
8234             <param name="matchAnyKeywords">The Keywords to send as part of the command (can influence what is sent back)</param>
8235             <param name="filterType">if non-zero, this is passed along to the provider as type of the filter data.</param>
8236             <param name="data">If non-null this is either an int, or a byte array and is passed along as filter data.</param>
8237         </member>
8238         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EnableProviderTimeoutMSec">
8239             <summary>
8240             When you issue a EnableProvider command, on windows 7 and above it can be done synchronously (that is you know that because 
8241             the EnableProvider returned that the provider actually got the command).   However synchronous behavior means that
8242             you may wait forever.   This is the time EnableProvider waits until it gives up.   Setting this
8243             to 0 means asynchronous (fire and forget).   The default is 10000 (wait 10 seconds) 
8244             Before windows 7 EnableProvider is always asynchronous.  
8245             </summary>
8246         </member>
8247         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.StopOnDispose">
8248             <summary>
8249             If set then Stop() will be called automatically when this object is Disposed or Finalized by the GC.  
8250             This is true BY DEFAULT, so if you want your session to survive past the end of the process
8251             you must set this to false.  
8252             </summary>
8253         </member>
8254         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CircularBufferMB">
8255             <summary>
8256             Cause the log to be a circular buffer.  The buffer size (in MegaBytes) is the value of this property.
8257             Setting this to 0 will cause it to revert to non-circular mode.  
8258             The setter can only be called BEFORE any provider is enabled.  
8259             </summary>
8260         </member>
8261         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MultiFileMB">
8262             <summary>
8263             Cause the as a set of files with a given maximum size.   The file name must end in .ETL and the
8264             output is then a series of files of the form *NNN.ETL (That is it adds a number just before the
8265             .etl suffix).   If you make your file name *.user.etl then the output will be *.user1.etl, *.user2.etl ...
8266             And the MergeInPlace command below will merge them all nicely.  
8267             
8268             You can have more control over this by using a normal sequential file but use the SetFileName()
8269             method to redirect the data to new files as needed.    
8270             </summary>
8271         </member>
8272         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.BufferSizeMB">
8273             <summary>
8274             Sets the size of the buffer the operating system should reserve to avoid lost packets.   Starts out 
8275             as a very generous 64MB for files.  If events are lost, this can be increased, but keep in mind that
8276             no value will help if the average incoming rate is faster than the processing rate.  
8277             The setter can only be called BEFORE any provider is enabled.  
8278             </summary>
8279         </member>
8280         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.BufferQuantumKB">
8281             <summary>
8282             This is the unit in which data is flushed in Kilobytes.   By default it is 64 (KB).  
8283             By default a TraceEventSession will flush every second, and this amount of space will be transferred
8284             to the file.   Ideally it is smaller than the number data bytes you expect in a second from any
8285             particular processor.  It can't be less than 1K per processor on the machine.   However if you make 
8286             it less than 64 (K) you will limit the size of the event that the process can send 
8287             (they will simply be discarded).   
8288             </summary>
8289         </member>
8290         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CpuSampleIntervalMSec">
8291             <summary>
8292             The rate at which CPU samples are collected.  By default this is 1 (once a millisecond per CPU).
8293             There is a lower bound on this (typically .125 Msec)
8294             </summary>
8295         </member>
8296         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.StackCompression">
8297             <summary>
8298             Indicate that this session should use compress the stacks to save space.  
8299             Must be set before any providers are enabled.  Currently only works for kernel events.  
8300             </summary>
8301         </member>
8302         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SessionName">
8303             <summary>
8304             The name of the session that can be used by other threads to attach to the session. 
8305             </summary>
8306         </member>
8307         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.FileName">
8308             <summary>
8309             The name of the moduleFile that events are logged to.  Null means the session is real time
8310             or is a circular in-memory buffer.    See also SetFileName() method. 
8311             </summary>
8312         </member>
8313         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Source">
8314             <summary>
8315             If this is a real time session you can fetch the source associated with the session to start receiving events.  
8316             Currently does not work on file based sources (we expect you to wait until the file is complete).  
8317             </summary>
8318         </member>
8319         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsActive">
8320             <summary>
8321             Creating a TraceEventSession does not actually interact with the operating system until a
8322             provider is enabled. At that point the session is considered active (OS state that survives a
8323             process exit has been modified). IsActive returns true if the session is active. 
8324             
8325             </summary>
8326         </member>
8327         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.EventsLost">
8328             <summary>
8329             Returns the number of events that should have been delivered to this session but were lost 
8330             (typically because the incoming rate was too high).   This value is up-to-date for real time
8331             sessions.  
8332             </summary>
8333         </member>
8334         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsCircular">
8335             <summary>
8336             Returns true if the session is logging to a circular buffer.  This may be in-memory (FileName == null)
8337             or to a file (FileName != null)
8338             </summary>
8339         </member>
8340         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsRealTime">
8341             <summary>
8342             Returns true if the session is Real Time.  This means it is not to a file, and not circular.  
8343             </summary>
8344         </member>
8345         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsInMemoryCircular">
8346             <summary>
8347             Returns true if this is a in-memory circular buffer (it is circular without an output file).  
8348             Use SetFileName() to dump the in-memory buffer to a file.  
8349             </summary>
8350         </member>
8351         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetActiveSessionNames">
8352             <summary>
8353             ETW trace sessions survive process shutdown. Thus you can attach to existing active sessions.
8354             GetActiveSessionNames() returns a list of currently existing session names.  These can be passed
8355             to the TraceEventSession constructor to open it.   
8356             </summary>
8357             <returns>A enumeration of strings, each of which is a name of a session</returns>
8358         </member>
8359         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Merge(System.String[],System.String,Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions)">
8360             <summary>
8361             It is sometimes useful to merge the contents of several ETL files into a single 
8362             output ETL file.   This routine does that.  It also will attach additional 
8363             information that will allow correct file name and symbolic lookup if the 
8364             ETL file is used on a machine other than the one that the data was collected on.
8365             If you wish to transport the file to another machine you need to merge them, even 
8366             if you have only one file so that this extra information get incorporated.  
8367             </summary>
8368             <param name="inputETLFileNames">The input ETL files to merge</param>
8369             <param name="outputETLFileName">The output ETL file to produce.</param>
8370             <param name="options">Optional Additional options for the Merge (seeTraceEventMergeOptions) </param>
8371         </member>
8372         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.MergeInPlace(System.String,System.IO.TextWriter)">
8373             <summary>
8374             This variation of the Merge command takes the 'primary' etl file name (X.etl)
8375             and will merge in any files that match .clr*.etl .user*.etl. and .kernel.etl.  
8376             </summary>
8377         </member>
8378         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.IsElevated">
8379             <summary>
8380             Is the current process Elevated (allowed to turn on a ETW provider).   This is useful because
8381             you need to be elevated to enable providers on a TraceEventSession.  
8382             </summary>
8383         </member>
8384         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetDebugPrivilege">
8385             <summary>
8386             Set the Windows Debug Privilege.   Useful because some event providers require this privilege, and 
8387             and it must be enabled explicitly (even if the process is elevated). 
8388             </summary>
8389         </member>
8390         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.Finalize">
8391             <summary>
8392             The 'properties' field is only the header information.  There is 'tail' that is 
8393             required.  'ToUnmangedBuffer' fills in this tail properly. 
8394             </summary>
8395         </member>
8396         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ProviderNameToGuid">
8397             <summary>
8398             Returns a sorted dictionary of  names and Guids for every provider registered on the system.   
8399             </summary>
8400         </member>
8401         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ComputeEventIds(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_FILTER_DESCRIPTOR*,System.Byte*,System.Int32,System.Collections.Generic.IList{System.Int32},System.Boolean,System.Int32)">
8402             <summary>
8403             sets up the EVENT_FILTER_DESCRIPTOR descr to represent the Event Ids in 'eventIds'.   You are given the buffer 
8404             necessary for this (precomputed) for the EVENT_FILTER_EVENT_ID structure.   'enable' is true if this is to enable
8405             (otherwise disable) the events, and descrType indicates the descriptor type (either EVENT_FILTER_TYPE_EVENT_ID or
8406             EVENT_FILTER_TYPE_STACKWALK)
8407             </summary>
8408         </member>
8409         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.ComputeEventIdsBufferSize(System.Collections.Generic.IList{System.Int32})">
8410             <summary>
8411             Computes the number of bytes needed for the EVENT_FILTER_EVENT_ID structure to represent 'eventIds'
8412             return 0 if there is not need for the filter at all.  
8413             </summary>
8414         </member>
8415         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.CleanFilterDataForEtwSession">
8416             <summary>
8417             Cleans out all provider data associated with this session.  
8418             </summary>
8419         </member>
8420         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetFilterDataForEtwSession(System.String,System.Byte[],System.Boolean)">
8421             <summary>
8422             SetDataForSession sets the filter data for an ETW session by storing it in the registry.
8423             This is basically a work-around for the fact that filter data does not get transmitted to
8424             the provider if the provider is not alive at the time the controller issues the EnableProvider 
8425             call.   We store in the registry and EventSource looks there for it if it is not present.  
8426             
8427             Note that we support up to 'maxSession' etw sessions simultaneously active (having different 
8428             filter data).   The function return a sessionIndex that indicates which of the 'slots' 
8429             was used to store the data.   This routine also 'garbage collects' data for sessions that
8430             have died without cleaning up their filter data.  
8431             
8432             If 'data' is null, then it indicates that no data should be stored and the registry entry
8433             is removed.
8434             
8435             If 'allSesions' is true it means that you want 'old style' data filtering that affects all ETW sessions
8436             This is present only used for compatibilty 
8437             </summary>
8438             <returns>the session index that will be used for this session.  Returns -1 if an entry could not be found </returns>
8439         </member>
8440         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.SetStackTraceIds(Microsoft.Diagnostics.Tracing.Parsers.KernelTraceEventParser.Keywords,Microsoft.Diagnostics.Tracing.Extensions.STACK_TRACING_EVENT_ID*,System.Int32)">
8441             <summary>
8442             Given a mask of kernel flags, set the array stackTracingIds of size stackTracingIdsMax to match.
8443             It returns the number of entries in stackTracingIds that were filled in.
8444             </summary>
8445         </member>
8446         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventSession.GetProperties(System.Byte*)">
8447             <summary>
8448             Get a EVENT_TRACE_PROPERTIES structure suitable for passing the the ETW out of a 'buffer' which must be PropertiesSize bytes
8449             in size.
8450             </summary>
8451         </member>
8452         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions">
8453             <summary>
8454             Used in the TraceEventSession.Merge method 
8455             </summary>
8456         </member>
8457         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions.None">
8458             <summary>
8459             No special options 
8460             </summary>
8461         </member>
8462         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventMergeOptions.Compress">
8463             <summary>
8464             Compress the resulting file.  
8465             </summary>
8466         </member>
8467         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions">
8468             <summary>
8469             TraceEventProviderOptions represents all the optional arguments that can be passed to EnableProvider command.   
8470             </summary>
8471         </member>
8472         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.#ctor">
8473             <summary>
8474             Create new options object with no options set
8475             </summary>
8476         </member>
8477         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.#ctor(System.String[])">
8478             <summary>
8479             Create new options object with a set of given provider arguments key-value pairs.  There must be a even number
8480             of strings provided and each pair forms a key-value pair that is passed to the AddArgument() operator.   
8481             </summary>
8482         </member>
8483         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.Arguments">
8484             <summary>
8485             Arguments are a set of key-value strings that are passed uninterpreted to the EventSource.   These can be accessed
8486             from the EventSource's command callback.  
8487             </summary>
8488         </member>
8489         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.AddArgument(System.String,System.String)">
8490             <summary>
8491             As a convenience, the 'Arguments' property can be modified by calling AddArgument that adds another Key-Value pair
8492             to it.   If 'Arguments' is not a IDictionary, it is replaced with an IDictionary with the same key-value pairs before
8493             the new pair is added.  
8494             </summary>
8495         </member>
8496         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.RawArguments">
8497             <summary>
8498             For EventSources, you pass arguments to the EventSource by using key value pairs (this 'Arguments' property). 
8499             However other ETW providers may expect arguments using another convention.  RawArguments give a way of passing
8500             raw bytes to the provider as arguments.   This is only meant for compatibility with old providers.   Setting
8501             this property will cause the 'Arguments' property to be ignored.   
8502             </summary>
8503         </member>
8504         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.StacksEnabled">
8505             <summary>
8506             Setting StackEnabled to true will cause all events in the provider to collect stacks when event are fired. 
8507             </summary>
8508         </member>
8509         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.ProcessIDFilter">
8510             <summary>
8511             Setting ProcessIDFilter will limit the providers that receive the EnableCommand to those that match on of
8512             the given Process IDs.  
8513             </summary>
8514         </member>
8515         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.ProcessNameFilter">
8516             <summary>
8517             Setting ProcessNameFilter will limit the providers that receive the EnableCommand to those that match on of
8518             the given Process names (a process name is the name of the EXE without the PATH but WITH the extension).  
8519             </summary>
8520         </member>
8521         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDsToEnable">
8522             <summary>
8523             Setting EventIDs to Enable will enable a particular event of a provider by EventID (in addition to those 
8524             enabled by keywords). 
8525             </summary>
8526         </member>
8527         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDStacksToEnable">
8528             <summary>
8529             Setting EventIDs to Enable will enable the collection of stacks for  a event of a provider by EventID 
8530             (Has no effect if StacksEnabled is also set since that enable stacks for all events IDs)
8531             </summary>
8532         </member>
8533         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDsToDisable">
8534             <summary>
8535             Setting EventIDsToDisable to Enable will disable the event of a provider by EventID 
8536             This happens after keywords have been processed, so disabling overrides enabling.   
8537             </summary>
8538         </member>
8539         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.EventIDStacksToDisable">
8540             <summary>
8541             Setting EventIDs to Enable will disable the collection of stacks for a event of a provider by EventID 
8542             Has no effect unless StacksEnabled is also set (since otherwise stack collection is off).   
8543             </summary>
8544         </member>
8545         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.Clone">
8546             <summary>
8547             Make a deep copy of options and return it.  
8548             </summary>
8549             <returns></returns>
8550         </member>
8551         <member name="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.FilteringSupported">
8552             <summary>
8553             This return true on OS version beyond 8.1 (windows Version 6.3).   It means most of the
8554             per-event filtering is supported.  
8555             </summary>
8556         </member>
8557         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.s_IsEtwFilteringSupported">
8558             <summary>
8559             This is the backing field for the lazily-computed <see cref="P:Microsoft.Diagnostics.Tracing.Session.TraceEventProviderOptions.FilteringSupported"/> property.
8560             </summary>
8561         </member>
8562         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions">
8563             <summary>
8564             TraceEventSessionOptions indicates special handling when creating a TraceEventSession.
8565             </summary>
8566         </member>
8567         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.Create">
8568             <summary>
8569             Create a new session, stop and recreated it if it already exists.  This is the default.  
8570             </summary>
8571         </member>
8572         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.Attach">
8573             <summary>
8574             Attach to an existing session, fail if the session does NOT already exist.  
8575             </summary>
8576         </member>
8577         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventSessionOptions.NoRestartOnCreate">
8578             <summary>
8579             Normally if you create a session it will stop and restart it if it exists already.  Setting
8580             this flat will disable the 'stop and restart' behavior.   This is useful if only a single
8581             monitoring process is intended. 
8582             </summary>
8583         </member>
8584         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders">
8585             <summary>
8586             TraceEventProviders returns information about providers on the system.  
8587             </summary>
8588         </member>
8589         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderGuidByName(System.String)">
8590             <summary>
8591             Given the friendly name of a provider (e.g. Microsoft-Windows-DotNETRuntimeStress) return the
8592             GUID for the provider.   It does this by looking at all the PUBLISHED providers on the system
8593             (that is those registered with wevtutuil).   EventSources in particular do not register themselves
8594             in this way (see GetEventSourceGuidFromName).  Names are case insensitive.   
8595             It also checks to see if the name is an actual GUID and if so returns that.  
8596             Returns Guid.Empty on failure.   
8597             </summary>
8598         </member>
8599         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetEventSourceGuidFromName(System.String)">
8600             <summary>
8601             EventSources have a convention for converting its name to a GUID.  Use this convention to 
8602             convert 'name' to a GUID.   In this way you can get the provider GUID for a EventSource
8603             however it can't check for misspellings.   Names are case insensitive.  
8604             </summary>
8605         </member>
8606         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderName(System.Guid)">
8607             <summary>
8608             Finds the friendly name for 'providerGuid'  Returns the Guid as a string if can't be found.
8609             </summary>
8610         </member>
8611         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.MaybeAnEventSource(System.Guid)">
8612             <summary>
8613             Returns true if 'providerGuid' can be an eventSource.   If it says true, there is a 1/16 chance it is not.  
8614             However if it returns false, it is definitely not following EventSource Guid generation conventions.
8615             </summary>
8616         </member>
8617         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetPublishedProviders">
8618             <summary>
8619             Returns the Guid of every event provider that published its manifest on the machine.  This is the 
8620             same list that the 'logman query providers' command will generate.  It is pretty long (&gt; 1000 entries)
8621             <para>
8622             A event provider publishes a manifest by compiling its manifest into a special binary form and calling
8623             the wevtutil utility.   Typically EventSource do NOT publish their manifest but most operating
8624             system provider do publish their manifest.   
8625             </para>
8626             </summary>  
8627         </member>
8628         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetRegisteredOrEnabledProviders">
8629             <summary>
8630             Returns the GUID of all event provider that either has registered itself in a running process (that is
8631             it CAN be enabled) or that a session has enabled (even if no instances of the provider exist in any process).  
8632             <para>
8633             This is a relatively small list (less than 1000), unlike GetPublishedProviders. 
8634             </para>
8635             </summary>
8636         </member>
8637         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetRegisteredProvidersInProcess(System.Int32)">
8638             <summary>
8639             Returns a list of provider GUIDs that are registered in a process with 'processID'.   Useful for discovering
8640             what providers are available for enabling for a particular process.  
8641             </summary>
8642         </member>
8643         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.GetProviderKeywords(System.Guid)">
8644             <summary>
8645             Returns a description of the keywords a particular provider provides.  Only works if the provider has 
8646             published its manifest to the operating system.  
8647             Throws an exception if providerGuid is not found
8648             </summary>
8649         </member>
8650         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProviders.SessionInfosForProvider(System.Guid,System.Int32)">
8651             <summary>
8652             Returns a list of TRACE_ENABLE_INFO structures that tell about each session (what keywords and level they are
8653             set to, for the provider associated with 'providerGuid'.  If 'processId != 0, then only providers in that process
8654             are returned.  
8655             </summary>
8656         </member>
8657         <member name="T:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem">
8658             <summary>
8659             A list of these is returned by GetProviderKeywords
8660             </summary>
8661         </member>
8662         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Name">
8663             <summary>
8664             The name of the provider keyword. 
8665             </summary>
8666         </member>
8667         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Description">
8668             <summary>
8669             The description for the keyword for the provider 
8670             </summary>
8671         </member>
8672         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.Value">
8673             <summary>
8674             the value (bitvector) for the keyword.
8675             </summary>
8676         </member>
8677         <member name="M:Microsoft.Diagnostics.Tracing.Session.ProviderDataItem.ToString">
8678             <summary>
8679             and XML representation for the ProviderDataItem (for debugging)
8680             </summary>
8681         </member>
8682         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources">
8683             <summary>
8684             TraceEventProfileSources is the interface for the Windows processor CPU counter support
8685             (e.g. causing a stack to be taken every N dcache misses, or branch mispredicts etc)
8686             <para>
8687             Note that the interface to these is machine global (That is when you set these you 
8688             cause any session with the kernel PMCProfile keyword active to start emitting
8689             PMCCounterProf events for each ProfileSouce that is enabled.  
8690             </para>
8691             /// </summary>
8692         </member>
8693         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.GetInfo">
8694             <summary>
8695             Returns a dictionary of keyed by name of ProfileSourceInfo structures for all the CPU counters available on the machine. 
8696             </summary>
8697         </member>
8698         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.Set(System.Int32,System.Int32)">
8699             <summary>
8700             Sets a single Profile Source (CPU machine counters) that will be used if PMC (Precise Machine Counters)
8701             are turned on.   The profileSourceID is the ID field from the ProfileSourceInfo returned from 'GetInfo()'.
8702             and the profileSourceInterval is the interval between sampples (the number of events before a stack
8703             is recoreded.    If you need more that one (the OS allows up to 4 I think), use the variation of this
8704             routine that takes two int[].   Calling this will clear all Profiler sources previously set (it is NOT
8705             additive).  
8706             </summary>
8707         </member>
8708         <member name="M:Microsoft.Diagnostics.Tracing.Session.TraceEventProfileSources.Set(System.Int32[],System.Int32[])">
8709             <summary>
8710             Sets the Profile Sources (CPU machine counters) that will be used if PMC (Precise Machine Counters)
8711             are turned on.   Each CPU counter is given a id (the profileSourceID) and has an interval 
8712             (the number of counts you skip for each event you log).   You can get the human name for 
8713             all the supported CPU counters by calling GetProfileSourceInfo.  Then choose the ones you want
8714             and configure them here (the first array indicating the CPU counters to enable, and the second
8715             array indicating the interval.  The second array can be shorter then the first, in which case
8716             the existing interval is used (it persists and has a default on boot).  
8717             </summary>
8718         </member>
8719         <member name="T:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo">
8720             <summary>
8721             Returned by GetProfileSourceInfo, describing the CPU counter (ProfileSource) available on the machine. 
8722             </summary>
8723         </member>
8724         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.Name">
8725             <summary>
8726             Human readable name of the CPU performance counter (eg BranchInstructions, TotalIssues ...)
8727             </summary>
8728         </member>
8729         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.ID">
8730             <summary>
8731             The ID that can be passed to SetProfileSources
8732             </summary>
8733         </member>
8734         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.Interval">
8735             <summary>
8736             This many events are skipped for each sample that is actually recorded
8737             </summary>
8738         </member>
8739         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.MinInterval">
8740             <summary>
8741             The smallest Interval can be (typically 4K)
8742             </summary>
8743         </member>
8744         <member name="F:Microsoft.Diagnostics.Tracing.Session.ProfileSourceInfo.MaxInterval">
8745             <summary>
8746             The largest Interval can be (typically maxInt).
8747             </summary>
8748         </member>
8749         <member name="T:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions">
8750             <summary>
8751             These are options to EnableProvider
8752             </summary>
8753         </member>
8754         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions.None">
8755             <summary>
8756             No options
8757             </summary>
8758         </member>
8759         <member name="F:Microsoft.Diagnostics.Tracing.Session.TraceEventOptions.Stacks">
8760             <summary>
8761             Take a stack trace with the event
8762             </summary>
8763         </member>
8764         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog">
8765             <summary>
8766             The data model for an Event trace log (ETL) file is simply a stream of events.     More sophisticated 
8767             analysis typically needs a a richer data model then ETL files can provide, and this is the 
8768             motivation for the ETLX (Event Trace Log eXtended) file format.   In particular any 
8769             analysis that needs non-sequential access to the events or manipulates stack traces associated 
8770             with events needs the additional support that the ETLX format provides.   See the TraceEventProgrammers guide
8771             for more on the capabilities of ETLX.  
8772             <para>
8773             The TraceLog class is the programmatic representation of an ETLX file.   It represents the ETLX file as a whole.
8774             </para><para>
8775             ETLX files are typically created from ETL files using the TraceLog.OpenOrCreate method or more explicitly 
8776             by the TraceLog.CreateFromEventTraceLogFile. 
8777             </para>
8778             </summary>
8779         </member>
8780         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromEventTraceLogFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions,Microsoft.Diagnostics.Tracing.TraceEventDispatcherOptions)">
8781             <summary>
8782             Given the path to an ETW trace log file (ETL) file, create an ETLX file for the data. 
8783             <para>If etlxFilePath is null the output name is derived from etlFilePath by changing its file extension to .ETLX.</para>
8784             <returns>The name of the ETLX file that was generated.</returns>
8785             </summary>
8786         </member>
8787         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OpenOrConvert(System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8788             <summary>
8789             Open an ETLX or ETL file as a ETLX file. 
8790             <para>
8791             This routine assumes that you follow normal conventions of naming ETL files with the .ETL file extension 
8792             and ETLX files with the .ETLX file extension.  It further assumes the ETLX file for a given ETL file 
8793             should be in a file named the same as the ETL file with the file extension changed.  
8794             </para><para>
8795             etlOrEtlxFilePath can be either the name of the ETL or ETLX file.   If the ETLX file does not
8796             exist or if it older than the corresponding ETL file then the ETLX file is regenerated with
8797             the given options.   However if an up-to-date ETLX file exists the conversion step is skipped.  
8798             </para><para>
8799             Ultimately the ETLX file is opened and the resulting TraceLog instance is returned.
8800             </para>
8801             </summary>
8802         </member>
8803         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromTraceEventSession(Microsoft.Diagnostics.Tracing.Session.TraceEventSession)">
8804             <summary>
8805             From a TraceEventSession, create a real time TraceLog Event Source.   Like a ETWTraceEventSource a TraceLogEventSource
8806             will deliver events in real time.   However an TraceLogEventSource has an underlying Tracelog (which you can access with
8807             the .Log Property) which lets you get at aggregated information (Processes, threads, images loaded, and perhaps most
8808             importantly TraceEvent.CallStack() will work.  Thus you can get real time stacks from events).  
8809             
8810             Note that in order for native stacks to resolve symbolically, you need to have some Kernel events turned on (Image, and Process)
8811             and only windows 8 has a session that allows both kernel and user mode events simultaneously.   Thus this is most useful
8812             on Win 8 systems.   
8813             </summary>
8814         </member>
8815         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromLttngTextDataFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8816             <summary>
8817             Creates a ETLX file an Lttng Text file 'filePath'.    
8818             </summary>
8819         </member>
8820         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromEventPipeDataFile(System.String,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
8821             <summary>
8822             Creates a ETLX file an EventPipe 'filePath'.
8823             </summary>
8824         </member>
8825         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.#ctor(System.String)">
8826             <summary>
8827             Opens an existing Extended Trace Event log file (ETLX) file.  See also TraceLog.OpenOrCreate. 
8828             </summary>
8829         </member>
8830         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Events">
8831             <summary>
8832             All the events in the ETLX file. The returned TraceEvents instance supports IEnumerable so it can be used 
8833             in foreach statements, but it also supports other methods to further filter the evens before enumerating over them.  
8834             
8835             Note that the TraceEvent returned from this IEnumerable may only be used for one iteration of the foreach.
8836             (it is reused for the next event).  If you need more lifetime than that you must call Clone() (see 'Lifetime
8837             Constraints' in the programmers guide for more).  
8838             </summary>
8839         </member>
8840         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Processes">
8841             <summary>
8842             All the Processes that logged an event in the ETLX file.  The returned TraceProcesses instance supports IEnumerable so it can be used 
8843             in foreach statements, but it also supports other methods to select particular a particular process.  
8844             </summary>
8845         </member>
8846         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Threads">
8847             <summary>
8848             All the Threads that logged an event in the ETLX file.  The returned TraceThreads instance supports IEnumerable so it can be used 
8849             in foreach statements, but it also supports other methods to select particular thread.  
8850             </summary>
8851         </member>
8852         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ModuleFiles">
8853             <summary>
8854             All the module files (DLLs) that were loaded by some process in the ETLX file.  The returned TraceModuleFiles instance supports IEnumerable so it can be used 
8855             in foreach statements, but it also supports other methods to select particular module file.  
8856             </summary>  
8857         </member>
8858         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CallStacks">
8859             <summary>
8860             All the call stacks in the ETLX file.  Normally you don't enumerate over these, but use you use other methods on TraceCallStacks 
8861             information about code addresses using CallStackIndexes. 
8862             </summary>
8863         </member>
8864         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CodeAddresses">
8865             <summary>
8866             All the code addresses in the ETLX file.  Normally you don't enumerate over these, but use you use other methods on TraceCodeAddresses 
8867             information about code addresses using CodeAddressIndexes. 
8868             </summary>
8869         </member>
8870         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Stats">
8871             <summary>
8872             Summary statistics on the events in the ETX file.  
8873             </summary>
8874         </member>
8875         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackForEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
8876             <summary>
8877             If the event has a call stack associated with it, retrieve it.   Returns null if there is not call stack associated with the event.
8878             <para>If you are retrieving many call stacks consider using GetCallStackIndexForEvent, as it is more efficient.</para>
8879             </summary>
8880         </member>
8881         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
8882             <summary>
8883             If the event has a call stack associated with it, retrieve CallStackIndex.   Returns CallStackIndex.Invalid if there is not call stack associated with the event.
8884             </summary>
8885         </member>
8886         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MaxEventIndex">
8887             <summary>
8888             Events are given an Index (ID) that are unique across the whole TraceLog.   They are not guaranteed
8889             to be sequential, but they are guaranteed to be between 0 and MaxEventIndex.  Ids can be used to
8890             allow clients to associate additional information with event (with a side lookup table).   See
8891             TraceEvent.EventIndex and EventIndex for more 
8892             </summary>
8893         </member>
8894         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetEvent(Microsoft.Diagnostics.Tracing.EventIndex)">
8895             <summary>
8896             Given an eventIndex, get the event.  This is relatively expensive because we need to create a
8897             copy of the event that will not be reused by the TraceLog.   Ideally you would not use this API
8898             but rather use iterate over event using TraceEvents
8899             </summary>
8900         </member>
8901         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EventCount">
8902             <summary>
8903             The total number of events in the log.  
8904             </summary>
8905         </member>
8906         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Size">
8907             <summary>
8908             The size of the log file in bytes.
8909             </summary>
8910         </member>
8911         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EventsLost">
8912             <summary>
8913             override
8914             </summary>
8915         </member>
8916         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FilePath">
8917             <summary>
8918             The file path for the ETLX file associated with this TraceLog instance.  
8919             </summary>
8920         </member>
8921         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MachineName">
8922             <summary>
8923             The machine on which the log was collected.  Returns empty string if unknown. 
8924             </summary>
8925         </member>
8926         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OSName">
8927             <summary>
8928             The name of the Operating system.  Returns empty string if unknown.
8929             </summary>
8930         </member>
8931         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.OSBuild">
8932             <summary>
8933             The build number information for the OS.  Returns empty string if unknown.
8934             </summary>
8935         </member>
8936         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.BootTime">
8937             <summary>
8938             The time the machine was booted.   Returns DateTime.MinValue if it is unknown.  
8939             </summary>
8940         </member>
8941         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.UTCOffsetMinutes">
8942             <summary>
8943             This is the number of minutes between the local time where the data was collected and UTC time.  
8944             It is negative if your time zone is WEST of Greenwich.  This DOES take Daylights savings time into account
8945             but might be a daylight savings time transition happens inside the trace.  
8946             May be unknown, in which case it returns null.
8947             </summary>
8948         </member>
8949         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.HasPdbInfo">
8950             <summary>
8951             When an ETL file is 'merged', for every DLL in the trace information is added that allows the symbol
8952             information (PDBS) to be identified unambiguously on a symbol server.   This property returns true
8953             if the ETLX file was created from an ETL file with this added information.    
8954             </summary>
8955         </member>
8956         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.MemorySizeMeg">
8957             <summary>
8958             The size of the main memory (RAM) on the collection machine.  Will return 0 if memory size is unknown 
8959             </summary>
8960         </member>
8961         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.HasCallStacks">
8962             <summary>
8963             Are there any event in trace that has a call stack associated with it. 
8964             </summary>
8965         </member>
8966         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SampleProfileInterval">
8967             <summary>
8968             If Kernel CPU sampling events are turned on, CPU samples are taken at regular intervals (by default every MSec).
8969             <para>This property returns the time interval between samples.  
8970             </para><para>
8971             If the sampling interval was changed over the course of the trace, this property does not reflect that.  It
8972             returns the first value it had in the trace.  
8973             </para>
8974             </summary>
8975         </member>
8976         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CurrentMachineIsCollectionMachine">
8977             <summary>
8978             Returns true if the  machine running this code is the same as the machine where the trace data was collected.   
8979             <para>
8980             If this returns false, the path names references in the trace cannot be inspected (since they are on a different machine).  
8981             </para> 
8982             </summary>
8983         </member>
8984         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Truncated">
8985             <summary>
8986             There is a size limit for ETLX files.  Thus  it is possible that the data from the original ETL file was truncated.  
8987             This property returns true if this happened.  
8988             </summary>
8989         </member>
8990         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FirstTimeInversion">
8991             <summary>
8992             Returns the EvnetIndex (order in the file) of the first event that has a 
8993             timestamp smaller than its predecessor.  Returns Invalid if there are no time inversions. 
8994             </summary>
8995         </member>
8996         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Parsers">
8997             <summary>
8998             Returns all the TraceEventParsers associated with this log.  
8999             </summary>
9000         </member>
9001         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ToString">
9002             <summary>
9003             An XML fragment that gives useful summary information about the trace as a whole.
9004             </summary>
9005         </member>
9006         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.#ctor(Microsoft.Diagnostics.Tracing.Session.TraceEventSession)">
9007             <summary>
9008             Create a new real time session called 'sessionName' and connect a TraceLog to it and return that TraceLog.
9009             Functionality of TraceLog that does not depend on either remembering past EVENTS or require future 
9010             knowledge (e.g. stacks of kernel events), will 'just work'.  
9011             </summary>
9012         </member>
9013         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.RemoveAllButLastEntries``1(System.Collections.Generic.GrowableArray{``0}@,System.Int32)">
9014             <summary>
9015             Removes all but the last 'keepCount' entries in 'growableArray' by sliding them down. 
9016             </summary>
9017         </member>
9018         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.DispatchClonedEvent(Microsoft.Diagnostics.Tracing.TraceEvent)">
9019             <summary>
9020             Forwards an event that was saved (cloned) to the dispatcher associated with the real time source.  
9021             </summary>
9022         </member>
9023         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.FlushRealTimeEvents(System.Object)">
9024             <summary>
9025             Flushes any event that has waited around long enough 
9026             </summary>
9027         </member>
9028         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCodeAddressIndexAtEvent(System.UInt64,Microsoft.Diagnostics.Tracing.TraceEvent)">
9029             <summary>
9030             Given a process's virtual address 'address' and an event which acts as a 
9031             context (determines which process and what time in that process), return 
9032             a CodeAddressIndex (which represents a particular location in a particular
9033             method in a particular DLL). It is possible that different addresses will
9034             go to the same code address for the same address (in different contexts).
9035             This is because DLLS where loaded in different places in different processes.
9036             </summary>  
9037         </member>
9038         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCodeAddressAtEvent(System.UInt64,Microsoft.Diagnostics.Tracing.TraceEvent)">
9039             <summary>
9040             If an event has a field of type 'Address' the address can be converted to a symbolic value (a
9041             TraceCodeAddress) by calling this function.   C
9042             </summary>
9043         </member>
9044         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForEventIndex(Microsoft.Diagnostics.Tracing.EventIndex)">
9045             <summary>
9046             Given an EventIndex for an event, retrieve the call stack associated with it
9047             (that can be given to TraceCallStacks). Many events may not have associated
9048             call stack in which case CallSTackIndex.Invalid is returned.
9049             </summary>
9050         </member>
9051         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetCallStackIndexForCSwitchBlockingEventIndex(Microsoft.Diagnostics.Tracing.EventIndex)">
9052             <summary>
9053             Given a eventIndex for a CSWTICH event, return the call stack index for the thread
9054             that LOST the processor (the normal callStack is for the thread that GOT the CPU)
9055             </summary>
9056         </member>
9057         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CreateFromTraceEventSource(Microsoft.Diagnostics.Tracing.TraceEventDispatcher,System.String,Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
9058             <summary>
9059             Given a source of events 'source' generated a ETLX file representing these events from them. This
9060             file can then be opened with the TraceLog constructor. 'options' can be null.
9061             </summary>
9062         </member>
9063         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SetupCallbacks(Microsoft.Diagnostics.Tracing.TraceEventDispatcher)">
9064             <summary>
9065             SetupCallbacks installs all the needed callbacks for TraceLog Processing (stacks, process, thread, summaries etc)
9066             on the TraceEventSource rawEvents.   
9067             </summary>
9068         </member>
9069         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CopyRawEvents(Microsoft.Diagnostics.Tracing.TraceEventDispatcher,FastSerialization.IStreamWriter)">
9070             <summary>
9071              Copies the events from the 'rawEvents' dispatcher to the output stream 'IStreamWriter'.  It
9072              also creates auxiliary data structures associated with the raw events (eg, processes, threads,
9073              modules, address lookup maps...  Basically any information that needs to be determined by
9074              scanning over the events during TraceLog creation should hook in here.  
9075             </summary>
9076         </member>
9077         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AddAddressToCodeAddressMap(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt64)">
9078             <summary>
9079             This is a helper routine that adds the address 'address' in the event 'data' to the map from events
9080             to this list of addresses.  
9081             </summary>
9082         </member>
9083         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GenerateMemInfoRecordsPerProcess(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryProcessMemInfoTraceData,FastSerialization.IStreamWriter)">
9084             <summary>
9085             Special logic to form MemInfoWSTraceData.   We take the single event (which has 
9086             The working sets for every process in the system, an split them out into N events
9087             each of which has the processID for the event set properly, and only has the
9088             information for that process.    The first 3 processes in the list are -1, -2, and -3
9089             that have special meaning.
9090             </summary>
9091         </member>
9092         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.GetIncompleteStackForStackEvent(Microsoft.Diagnostics.Tracing.TraceEvent,System.Int64)">
9093             <summary>
9094             Given just the stack event and the timestamp for the event the stack event is to attach to, find
9095             the IncompleteStack for the event.   If the event to attach to cannot be this will return null
9096             but otherwise it will make an IncompleteStack entry if one does not already exist or it.   
9097             
9098             As part of allocating an Incomplete stack, it will increment the stack counts for target event.  
9099             </summary>
9100         </member>
9101         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EmitStackOnExitFromKernel(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack@,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack)">
9102             <summary>
9103             Do the processing necessary to attach the user mode stack 'userModeStack' to any of the stacks in listOfIncompleteKernelStacks.
9104             It then clears this list.   While doing this processing it will check to see if the target stack 'target' is in that list and
9105             it will return true if it was.   
9106             </summary>
9107         </member>
9108         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.EmitStackOnExitFromKernel(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack@,System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack)">
9109             <summary>
9110             Do the processing necessary to attach the user mode stack 'userModeStack' to any of the stacks in listOfIncompleteKernelStacks.
9111             It then clears this list.   While doing this processing it will check to see if the target stack 'target' is in that list and
9112             it will return true if it was.   
9113             </summary>
9114         </member>
9115         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.LogStackDefinition(Microsoft.Diagnostics.Tracing.Parsers.Kernel.StackWalkDefTraceData)">
9116             <summary>
9117             Called when we get a definition event (for either a user mode or kernel mode stack fragment). 
9118             </summary>
9119         </member>
9120         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack">
9121             <summary>
9122             Holds information about stacks associated with an event.  This is a transient structure.  We only need it 
9123             until all the information is collected for a particular event, at which point we can create a 
9124             CallStackIndex for the stack and eventsToStacks table.  
9125             </summary>
9126         </member>
9127         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.Clear">
9128             <summary>
9129             Clear clears entires that typically don't get set when we only have 1 frame fragment
9130             We can recycle the entries without setting these in that case.   
9131             </summary>
9132         </member>
9133         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.Initialize(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceThread,Microsoft.Diagnostics.Tracing.EventIndex)">
9134             <summary>
9135             Clear all entries that can potentially change every time.
9136             </summary>
9137         </member>
9138         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogKernelStackFragment(System.Void*,System.Int32,System.Int32,System.Int64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9139             <summary>
9140             Log the Kernel Stack fragment.  We simply remember all the frames (converted to CodeAddressIndexes).  
9141             </summary>
9142         </member>
9143         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogKernelStackFragment(System.UInt64,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9144             <summary>
9145             Log the kernel stack fragment.  Returns true if all the pieces of the stack fragment are collected
9146             (we don't have to log something on the thread).  
9147             </summary>
9148         </member>
9149         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.LogUserStackFragment(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9150             <summary>
9151             
9152             </summary>
9153         </member>
9154         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.EmitStackForEventIfReady(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9155             <summary>
9156             Determine if 'stackInfo' is complete and if so emit it to the 'eventsToStacks' array.  If 'force' is true 
9157             then force what information there is out even if it is not complete (there is nothing else coming). 
9158             
9159             Returns true if it was able to emit the stack
9160             </summary>
9161         </member>
9162         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.IsDead">
9163             <summary>
9164             returns true if the IncompleteStack is dead (just waiting to be reused).   
9165             </summary>
9166         </member>
9167         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.IncompleteStack.BlockingEventIndex">
9168             <summary>
9169             We track the stacks for when CSwitches block, this is the CSWITCH event where that blocking happened.  
9170             </summary>
9171         </member>
9172         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.CategorizeThread(Microsoft.Diagnostics.Tracing.TraceEvent,System.String,System.Boolean)">
9173             <summary>
9174             Put the thread that owns 'data' in to the category 'category.  
9175             </summary>
9176         </member>
9177         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.ProcessExtendedData(Microsoft.Diagnostics.Tracing.TraceEvent,System.UInt16,Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts)">
9178             <summary>
9179             Process any extended data (like Win7 style stack traces) associated with 'data'
9180             returns true if the event should be considered a bookkeeping event.  
9181             </summary>
9182         </member>
9183         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.Dispose(System.Boolean)">
9184             <summary>
9185             Dispose pattern
9186             </summary>
9187         </member>
9188         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.SeekToTimeOnPage(FastSerialization.PinnedStreamReader,System.Int64,System.Int32,System.Int32@,FastSerialization.StreamLabel[])">
9189             <summary>
9190             Advance 'reader' until it point at a event that occurs on or after 'timeQPC'.  on page
9191             'pageIndex'.  If 'positions' is non-null, fill in that array.  Also return the index in
9192             'positions' for the entry that was found.  
9193             </summary>
9194         </member>
9195         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AllocLookup">
9196             <summary>
9197             We need a TraceEventDispatcher in the Enumerators for TraceLog that know how to LOOKUP an event 
9198             We don't actually dispatch through it.  We do mutate the templates (to point a particular data
9199             record), but once we are done with it we can reuse this TraceEventDispatcher again an again
9200             (it is only concurrent access that is a problem).  Thus we have an Allocate and Free pattern
9201             to reuse them in the common case of sequential access.  
9202             </summary>
9203             <returns></returns>
9204         </member>
9205         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.cswitchBlockingEventsToStacks">
9206             <summary>
9207             The context switch event gives the stack of the thread GETTING the CPU, but it is also very useful
9208             to have this stack at the point of blocking.   cswitchBlockingEventsToStacks gives this stack.  
9209             </summary>
9210         </member>
9211         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo">
9212             <summary>
9213             We need to remember the the EventIndexes of the events that were 'just before' this event so we can
9214             associate eventToStack traces with the event that actually caused them.  PastEventInfo does this.  
9215             </summary>
9216         </member>
9217         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo.GetPreviousEventIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfoIndex,System.Int32,System.Boolean,Microsoft.Diagnostics.Tracing.EventIndex)">
9218             <summary>
9219             Returns the previous Event on the 'threadID'.  Events with -1 thread IDs are also always returned.   
9220             Returns PastEventInfoIndex.Invalid if there are not more events to consider.  
9221             </summary>
9222         </member>
9223         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.PastEventInfo.GetBestEventForQPC(System.Int64,System.Int32,System.Int32)">
9224             <summary>
9225             Find the event event on thread threadID to the given QPC timestamp.  If there is more than
9226             one event with the same QPC, we use thread and processor number to disambiguate.  
9227             </summary>
9228         </member>
9229         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLog.AddStackToEvent(Microsoft.Diagnostics.Tracing.EventIndex,Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
9230             <summary>
9231             Add a new entry that associates the stack 'stackIndex' with the event with index 'eventIndex'
9232             </summary>
9233         </member>
9234         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource">
9235             <summary>
9236             Represents a source for a TraceLog file (or real time stream).  It is basically a TraceEventDispatcher
9237             (TraceEventSource) but you can also get at the TraceLog for it as well.  
9238             </summary>
9239         </member>
9240         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.TraceLog">
9241             <summary>
9242             Returns the TraceLog associated with this TraceLogEventSource. 
9243             </summary>
9244         </member>
9245         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.CurrentEventIndex">
9246             <summary>
9247             Returns the event Index of the 'current' event (we post increment it so it is always one less)
9248             </summary>
9249         </member>
9250         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.Process">
9251             <summary>
9252             override
9253             </summary>
9254         </member>
9255         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.EventsLost">
9256             <summary>
9257             override
9258             </summary>
9259         </member>
9260         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogEventSource.Dispose(System.Boolean)">
9261             <summary>
9262             override
9263             </summary>
9264         </member>
9265         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats">
9266             <summary>
9267             TraceEventStats represents the summary statistics (counts) of all the events in the log.   
9268             </summary>
9269         </member>
9270         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.Count">
9271             <summary>
9272             The total number of distinct event types (there will be a TraceEventCounts for each distinct event Type)
9273             </summary>
9274         </member>
9275         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.ToString">
9276             <summary>
9277             An XML representation of the TraceEventStats (for Debugging)
9278             </summary>
9279         </member>
9280         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventStats.GetEventCounts(Microsoft.Diagnostics.Tracing.TraceEvent)">
9281             <summary>
9282             Given an event 'data' look up the statistics for events that type.  
9283             </summary>
9284         </member>
9285         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts">
9286             <summary>
9287             TraceEventCount holds number of events (Counts) and the number of events with call stacks associated with them (StackCounts) for a particular event type.   
9288             <para>It also has properties for looking up the event and provider names, but this information can only be complete if all the TraceEventParsers needed
9289             were associated with the TraceLog instance.  
9290             </para>
9291             </summary>
9292         </member>
9293         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ProviderName">
9294             <summary>
9295             Returns a provider name for events in this TraceEventCounts.   It may return a string with a GUID or even
9296             UnknownProvider for classic ETW if the event is unknown to the TraceLog.
9297             </summary>
9298         </member>
9299         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.EventName">
9300             <summary>
9301             Returns a name for events in this TraceEventCounts.   If the event is unknown to the Tracelog 
9302             it will return EventID(XXX) (for manifest based events) or Task(XXX)/Opcode(XXX) (for classic events)
9303             </summary>
9304         </member>
9305         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.PayloadNames">
9306             <summary>
9307             Returns the payload names associated with this Event type.   Returns null if the payload names are unknown.  
9308             </summary>
9309         </member>
9310         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.IsClassic">
9311             <summary>
9312             Returns true the provider associated with this TraceEventCouts is a classic (not manifest based) ETW provider.  
9313             </summary>
9314         </member>
9315         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ProviderGuid">
9316             <summary>
9317             Returns the provider GUID of the events in this TraceEventCounts.  Returns Guid.Empty if IsClassic
9318             </summary>
9319         </member>
9320         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.EventID">
9321             <summary>
9322             Returns the event ID of the events in this TraceEventCounts.  Returns TraceEventID.Illegal if IsClassic
9323             </summary>
9324         </member>
9325         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.TaskGuid">
9326             <summary>
9327             Returns the Task GUID of the events in this TraceEventCounts.  Returns Guid.Empty if not IsClassic
9328             </summary>
9329         </member>
9330         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.Opcode">
9331             <summary>
9332             Returns the Opcode of the events in the TraceEventCounts.  Returns TraceEventOpcode.Info if not IsClassic
9333             </summary>
9334         </member>
9335         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.AveragePayloadSize">
9336             <summary>
9337             Returns the average size of the event specific payload data (not the whole event) for all events in the TraceEventsCounts.  
9338             </summary>
9339         </member>
9340         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.Count">
9341             <summary>
9342             Returns the number of events in the TraceEventCounts.
9343             </summary>
9344         </member>
9345         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.StackCount">
9346             <summary>
9347             Returns the number of events in the TraceEventCounts that have stack traces associated with them.
9348             </summary>
9349         </member>
9350         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.FullName">
9351             <summary>
9352             Returns the full name of the event (ProviderName/EventName)
9353             </summary>
9354         </member>
9355         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.ToString">
9356             <summary>
9357             An XML representation  of the top level statistics of the TraceEventCounts. 
9358             </summary>
9359             <returns></returns>
9360         </member>
9361         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEventCounts.GetHashCode">
9362             <summary>
9363             GetHashCode
9364             </summary>
9365         </member>
9366         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents">
9367             <summary>
9368             A TraceEvents represents a list of TraceEvent instances.  It is IEnumerable&lt;TraceEvent&gt; but 
9369             also has additional useful ways of filtering the list.  
9370             
9371             Note that the TraceEvent returned from this IEnumerable may only be used for one iteration of the foreach.
9372             (it is reused for the next event).  If you need more lifetime than that you must call Clone() (see 'Lifetime
9373             Constraints' in the programmers guide for more).  
9374             </summary>
9375         </member>
9376         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.ByEventType``1">
9377             <summary>
9378             Returns a list of events in the TraceEvents that return a payload of type T.   Thus
9379             ByEventType &lt; TraceEvent &gt; returns all events.  
9380             </summary>
9381         </member>
9382         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.GetSource">
9383             <summary>
9384             Returns a TraceEventDispatcher (a push model object on which you can register
9385             callbacks for particular events) that will push all the vents in the TraceEvents.  
9386             
9387             Note that the TraceEvent returned from this callback may only be used for the duration of the callback.
9388             If you need more lifetime than that you must call Clone() (see 'Lifetime Constraints' in the programmers guide for more).  
9389             </summary>
9390         </member>
9391         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Backwards">
9392             <summary>
9393             Returns a new list which is the same as the TraceEvents but the events are
9394             delivered from last to first.  This allows you to search backwards in the
9395             event stream.  
9396             </summary>
9397         </member>
9398         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.FilterByTime(System.DateTime,System.DateTime)">
9399             <summary>
9400             Filter the events by time.  Both starTime and endTime are inclusive. 
9401             </summary>
9402         </member>
9403         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.FilterByTime(System.Double,System.Double)">
9404             <summary>
9405             Filter the events by time.  StartTimeRelativeMSec and endTimeRelativeMSec are relative to the SessionStartTime and are inclusive.  
9406             </summary>
9407         </member>
9408         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Filter(System.Predicate{Microsoft.Diagnostics.Tracing.TraceEvent})">
9409             <summary>
9410             Create new list of Events that has all the events in the current TraceEvents
9411             that pass the given predicate.  
9412             </summary>
9413         </member>
9414         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.Log">
9415             <summary>
9416             Returns the TraceLog associated with the events in the TraceEvents
9417             </summary>
9418         </member>
9419         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.StartTime">
9420             <summary>
9421             Returns a time that is guaranteed  to be before the first event in the TraceEvents list.  
9422             It is returned as DateTime
9423             </summary>
9424         </member>
9425         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.StartTimeRelativeMSec">
9426             <summary>
9427             Returns a time that is guaranteed to be before the first event in the TraceEvents list.  
9428             It is returned as floating point number of MSec since the start of the TraceLog
9429             </summary>
9430         </member>
9431         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.EndTime">
9432             <summary>
9433             Returns a time that is guaranteed to be after the last event in the TraceEvents list.  
9434             It is returned as DateTime
9435             </summary>
9436         </member>
9437         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceEvents.EndTimeRelativeMSec">
9438             <summary>
9439             Returns a time that is guaranteed to be after the last event in the TraceEvents list.  
9440             It is returned as floating point number of MSec since the start of the TraceLog
9441             </summary>
9442         </member>
9443         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex">
9444             <summary>
9445             Each process is given a unique index from 0 to TraceProcesses.Count-1 and unlike 
9446             the OS Process ID, is  unambiguous (The OS process ID can be reused after a
9447             process dies).  ProcessIndex represents this index.   By using an enum rather than an int
9448             it allows stronger typing and reduces the potential for errors.  
9449             <para>
9450             It is expected that users of this library might keep arrays of size TraceProcesses.Count to store
9451             additional data associated with a process in the trace.  
9452             </para>
9453             </summary>
9454         </member>
9455         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex.Invalid">
9456             <summary>
9457             Returned when no appropriate Process exists.  
9458             </summary>
9459         </member>
9460         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses">
9461             <summary>
9462             A TraceProcesses instance represents the list of processes in the Event log.  
9463             
9464             TraceProcesses are IEnumerable, and will return the processes in order of creation time.   
9465             </summary>
9466         </member>
9467         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Log">
9468             <summary>
9469             The log associated with this collection of processes. 
9470             </summary> 
9471         </member>
9472         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Count">
9473             <summary>
9474             The count of the number of TraceProcess instances in the TraceProcesses list. 
9475             </summary>
9476         </member>
9477         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.Item(Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex)">
9478             <summary>
9479             Each process that occurs in the log is given a unique index (which unlike the PID is unique), that
9480             ranges from 0 to Count - 1.   Return the TraceProcess for the given index.  
9481             </summary>
9482         </member>
9483         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.GetProcess(System.Int32,System.Double)">
9484             <summary>
9485             Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
9486             and whose process start time is less than 'timeRelativeMSec'. 
9487             <para>
9488             If 'timeRelativeMSec' is during the processes's lifetime this is guaranteed to be the correct process. 
9489             for the given process ID since process IDs are unique during the lifetime of the process.  
9490             </para><para>
9491             If timeRelativeMSec == TraceLog.SessionDuration this method will return the last process with 
9492             the given process ID, even if it had died during the trace.  
9493             </para>
9494             </summary>
9495         </member>
9496         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.LastProcessWithID(System.Int32)">
9497             <summary>
9498             Returns the last process in the log with the given process ID.  Useful when the logging session
9499             was stopped just after the processes completed (a common scenario).  
9500             </summary>
9501         </member>
9502         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.FirstProcessWithName(System.String,System.Double)">
9503             <summary>
9504             Find the first process in the trace that has the process name 'processName' and whose process
9505             start time is after the given point in time.  
9506             <para>A process's name is the file name of the EXE without the extension.</para>
9507             <para>Processes that began before the trace started have a start time of 0,  Thus 
9508             specifying 0 for the time will include processes that began before the trace started.  
9509             </para>
9510             </summary>
9511         </member>
9512         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.LastProcessWithName(System.String,System.Double)">
9513             <summary>
9514             Find the last process in the trace that has the process name 'processName' and whose process
9515             start time is after the given point in time.  
9516             <para>A process's name is the file name of the EXE without the extension.</para>
9517             <para>Processes that began before the trace started have a start time of 0,  Thus 
9518             specifying 0 for the time will include processes that began before the trace started.  
9519             </para>
9520             </summary>
9521         </member>
9522         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.ToString">
9523             <summary>
9524             An XML representation of the TraceEventProcesses (for debugging)
9525             </summary>
9526         </member>
9527         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceProcess}#GetEnumerator">
9528             <summary>
9529             Enumerate all the processes that occurred in the trace log, ordered by creation time.   
9530             </summary> 
9531         </member>
9532         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.GetProcess(System.Int32,System.Int64)">
9533             <summary>
9534             Given an OS process ID and a time, return the last TraceProcess that has the same process ID,
9535             and whose offset start time is less than 'timeQPC'. If 'timeQPC' is during the thread's lifetime this
9536             is guaranteed to be the correct process. Using timeQPC = TraceLog.sessionEndTimeQPC will return the
9537             last process with the given PID, even if it had died.
9538             </summary>
9539         </member>
9540         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcesses.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9541             <summary>
9542             TraceProcesses represents the entire ETL moduleFile log.   At the node level it is organized by threads.  
9543             
9544             The TraceProcesses also is where we put various caches that are independent of the process involved. 
9545             These include a cache for TraceModuleFile that represent native images that can be loaded into a
9546             process, as well as the process lookup tables and a cache that remembers the last calls to
9547             GetNameForAddress(). 
9548             </summary>
9549         </member>
9550         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess">
9551             <summary>
9552             A TraceProcess represents a process in the trace. 
9553             </summary>
9554         </member>
9555         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ProcessID">
9556             <summary>
9557             The OS process ID associated with the process. It is NOT unique across the whole log.  Use
9558             ProcessIndex for that. 
9559             </summary>
9560         </member>
9561         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ProcessIndex">
9562             <summary>
9563             The index into the logical array of TraceProcesses for this process. Unlike ProcessID (which
9564             may be reused after the process dies, the process index is unique in the log. 
9565             </summary>
9566         </member>
9567         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Name">
9568             <summary>
9569             This is a short name for the process.  It is the image file name without the path or suffix.  
9570             </summary>
9571         </member>
9572         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.CommandLine">
9573             <summary>
9574             The command line that started the process (may be empty string if unknown)
9575             </summary>
9576         </member>
9577         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ImageFileName">
9578             <summary>
9579             The path name of the EXE that started the process (may be empty string if unknown)
9580             </summary>
9581         </member>
9582         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.StartTime">
9583             <summary>
9584             The time when the process started.  Returns the time the trace started if the process existed when the trace started.  
9585             </summary>
9586         </member>
9587         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.StartTimeRelativeMsec">
9588             <summary>
9589             The time when the process started.  Returns the time the trace started if the process existed when the trace started.  
9590             Returned as the number of MSec from the beginning of the trace. 
9591             </summary>
9592         </member>
9593         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EndTime">
9594             <summary>
9595             The time when the process ended.  Returns the time the trace ended if the process existed when the trace ended.  
9596             Returned as a DateTime
9597             </summary>
9598         </member>
9599         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EndTimeRelativeMsec">
9600             <summary>
9601             The time when the process ended.  Returns the time the trace ended if the process existed when the trace ended. 
9602             Returned as the number of MSec from the beginning of the trace. 
9603             </summary>
9604         </member>
9605         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ParentID">
9606             <summary>
9607             The process ID of the parent process 
9608             </summary>
9609         </member>
9610         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Parent">
9611             <summary>
9612             The process that started this process.  Returns null if unknown    Unlike ParentID
9613             the chain of Parent's will never form a loop.   
9614             </summary>
9615         </member>
9616         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ExitStatus">
9617             <summary>
9618             If the process exited, the exit status of the process.  Otherwise null. 
9619             </summary>
9620         </member>
9621         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.CPUMSec">
9622             <summary>
9623             The amount of CPU time spent in this process based on the kernel CPU sampling events.   
9624             </summary>
9625         </member>
9626         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Is64Bit">
9627             <summary>
9628             Returns true if the process is a 64 bit process
9629             </summary>
9630         </member>
9631         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Log">
9632             <summary>
9633             The log file associated with the process. 
9634             </summary>
9635         </member>
9636         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.Threads">
9637             <summary>
9638             A list of all the threads that occurred in this process.  
9639             </summary> 
9640         </member>
9641         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.LoadedModules">
9642             <summary>
9643             Returns the list of modules that were loaded by the process.  The modules may be managed or
9644             native, and include native modules that were loaded event before the trace started.  
9645             </summary>
9646         </member>
9647         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EventsInProcess">
9648             <summary>
9649             Filters events to only those for a particular process. 
9650             </summary>
9651         </member>
9652         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.EventsDuringProcess">
9653             <summary>
9654             Filters events to only that occurred during the time the process was alive. 
9655             </summary>
9656             
9657         </member>
9658         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.ToString">
9659             <summary>
9660             An XML representation of the TraceEventProcess (for debugging)
9661             </summary>
9662         </member>
9663         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.SetParentForProcess(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess)">
9664             <summary>
9665             Sets the 'Parent' field for the process (based on the ParentID).   
9666             
9667             sentinel is internal to the implementation, external callers should always pass null. 
9668             TraceProcesses that have a parent==sentinel considered 'illegal' since it woudl form
9669             a loop in the parent chain, which we definately don't want.  
9670             </summary>
9671         </member>
9672         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.#ctor(System.Int32,Microsoft.Diagnostics.Tracing.Etlx.TraceLog,Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex)">
9673             <summary>
9674             Create a new TraceProcess.  It should only be done by log.CreateTraceProcess because
9675             only TraceLog is responsible for generating a new ProcessIndex which we need.   'processIndex'
9676             is a index that is unique for the whole log file (where as processID can be reused).  
9677             </summary>
9678         </member>
9679         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.codeAddressesInProcess">
9680             <summary>
9681             This table allows us to intern codeAddress so we only at most one distinct address per process.  
9682             </summary>
9683         </member>
9684         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.unresolvedCodeAddresses">
9685             <summary>
9686             We also keep track of those code addresses that are NOT yet resolved to at least a File (for JIT compiled 
9687             things this would be to a method 
9688             </summary>
9689         </member>
9690         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.MethodLookupInfo">
9691             <summary>
9692             This is all the information needed to remember about at JIT compiled method (used in the jitMethods variable)
9693             </summary>
9694         </member>
9695         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.jitMethods">
9696             <summary>
9697             This table has a entry for each JIT compiled method that remembers its range.   It is actually only needed
9698             for the real time case, as the non-real time case you resolve code addresses on method unload/rundown and thus
9699             don't need to remember the information.   This table is NOT persisted in the ETLX file since is only needed
9700             to convert raw addresses into TraceMethods.  
9701             
9702             It is a array of arrays to make insertion efficient.  Most of the time JIT methods will be added in 
9703             contiguous memory (thus will be in order), however from time to time things will 'jump around' to a new 
9704             segment.   By having a list of lists, (which are in order in both lists) you can efficiently (log(N)) search
9705             as well as insert.   
9706             </summary>
9707         </member>
9708         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceProcess.scheduledActivityIdToActivityIndex">
9709             <summary>
9710             Maps a newly scheduled "user" activity ID to the ActivityIndex of the
9711             Activity. This keeps track of currently created/scheduled activities
9712             that have not started yet, and for multi-trigger events, created/scheduled
9713             activities that have not conclusively "died" (e.g. by having their "user" 
9714             activity ID reused by another activity).
9715             </summary>
9716         </member>
9717         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex">
9718             <summary>
9719             Each thread is given a unique index from 0 to TraceThreads.Count-1 and unlike 
9720             the OS Thread ID, is  unambiguous (The OS thread ID can be reused after a
9721             thread dies).  ThreadIndex represents this index.   By using an enum rather than an int
9722             it allows stronger typing and reduces the potential for errors.  
9723             <para>
9724             It is expected that users of this library might keep arrays of size TraceThreads.Count to store
9725             additional data associated with a process in the trace.  
9726             </para>
9727             </summary>
9728         </member>
9729         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex.Invalid">
9730             <summary>
9731             Returned when no appropriate Thread exists.  
9732             </summary>
9733         </member>
9734         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads">
9735             <summary>
9736             A TraceThreads represents the list of threads in a process. 
9737             </summary>
9738         </member>
9739         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceThread}#GetEnumerator">
9740             <summary>
9741             Enumerate all the threads that occurred in the trace log. It does so in order of their thread
9742             offset events in the log.  
9743             </summary> 
9744         </member>
9745         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.Count">
9746             <summary>
9747             The count of the number of TraceThreads in the trace log. 
9748             </summary>
9749         </member>
9750         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.Item(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
9751             <summary>
9752             Each thread that occurs in the log is given a unique index (which unlike the PID is unique), that
9753             ranges from 0 to Count - 1.   Return the TraceThread for the given index.  
9754             </summary>
9755         </member>
9756         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.GetThread(System.Int32,System.Double)">
9757             <summary>
9758             Given an OS thread ID and a time, return the last TraceThread that has the same thread ID,
9759             and whose start time is less than 'timeRelativeMSec'. If 'timeRelativeMSec' is during the thread's lifetime this
9760             is guaranteed to be the correct thread. 
9761             </summary>
9762         </member>
9763         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.ToString">
9764             <summary>
9765             An XML representation of the TraceThreads (for debugging)
9766             </summary>
9767         </member>
9768         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.#ctor(Microsoft.Diagnostics.Tracing.Etlx.TraceLog)">
9769             <summary>
9770             TraceThreads   represents the collection of threads in a process. 
9771             
9772             </summary>
9773         </member>
9774         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThreads.GetOrCreateThread(System.Int32,System.Int64,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.Boolean)">
9775             <summary>
9776             Get the thread for threadID and timeQPC.   Create if necessary.  If 'isThreadCreateEvent' is true, 
9777             then force  the creation of a new thread EVEN if the thread exist since we KNOW it is a new thread 
9778             (and somehow we missed the threadEnd event).   Process is the process associated with the thread.  
9779             It can be null if you really don't know the process ID.  We will try to fill it in on another event
9780             where we DO know the process id (ThreadEnd event).     
9781             </summary>
9782         </member>
9783         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceThread">
9784             <summary>
9785             A TraceThread represents a thread of execution in a process.  
9786             </summary>
9787         </member>
9788         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadID">
9789             <summary>
9790             The OS process ID associated with the process. 
9791             </summary>
9792         </member>
9793         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadIndex">
9794             <summary>
9795             The index into the logical array of TraceThreads for this process.  Unlike ThreadId (which
9796             may be reused after the thread dies) the T index is unique over the log.  
9797             </summary>
9798         </member>
9799         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.Process">
9800             <summary>
9801             The process associated with the thread. 
9802             </summary>
9803         </member>
9804         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.StartTime">
9805             <summary>
9806             The time when the thread started.  Returns the time the trace started if the thread existed when the trace started.  
9807             Returned as a DateTime
9808             </summary>
9809         </member>
9810         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.StartTimeRelativeMSec">
9811             <summary>
9812             The time when the thread started.  Returns the time the trace started if the thread existed when the trace started.  
9813             Returned as the number of MSec from the beginning of the trace. 
9814             </summary>
9815         </member>
9816         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EndTime">
9817             <summary>
9818             The time when the thread ended.  Returns the time the trace ended if the thread existed when the trace ended.  
9819             Returned as a DateTime
9820             </summary>
9821         </member>
9822         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EndTimeRelativeMSec">
9823             <summary>
9824             The time when the thread ended.  Returns the time the trace ended if the thread existed when the trace ended. 
9825             Returned as the number of MSec from the beginning of the trace. 
9826             </summary>
9827         </member>
9828         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.CPUMSec">
9829             <summary>
9830             The amount of CPU time spent on this thread based on the kernel CPU sampling events.   
9831             </summary>
9832         </member>
9833         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EventsInThread">
9834             <summary>
9835             Filters events to only those for a particular thread. 
9836             </summary>
9837         </member>
9838         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.EventsDuringThread">
9839             <summary>
9840             Filters events to only those that occurred during the time a the thread was alive. 
9841             </summary>
9842         </member>
9843         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.GetActivityIndex(System.Double)">
9844             <summary>
9845             REturns the activity this thread was working on at the time instant 'relativeMsec' 
9846             </summary>
9847         </member>
9848         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.DefaultActivityIndex">
9849             <summary>
9850             Represents the "default" activity for the thread, the activity that no one has set
9851             </summary>
9852         </member>
9853         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ThreadInfo">
9854             <summary>
9855             ThreadInfo is a string that identifies the thread symbolically.   (e.g. .NET Threadpool, .NET GC)  It may return null if there is no useful symbolic name.  
9856             </summary>
9857         </member>
9858         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.VerboseThreadName">
9859             <summary>
9860             VerboseThreadName is a name for the thread including the ThreadInfo and the CPU time used.  
9861             </summary>
9862         </member>
9863         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.UserStackBase">
9864             <summary>
9865             The base of the thread's stack.  This is just past highest address in memory that is part of the stack
9866             (we don't really know the lower bound (userStackLimit is this lower bound at the time the thread was created
9867             which is not very useful).  
9868             </summary>
9869         </member>
9870         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.ToString">
9871             <summary>
9872             An XML representation of the TraceThread (for debugging)
9873             </summary>
9874         </member>
9875         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.#ctor(System.Int32,Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
9876             <summary>
9877             Create a new TraceProcess.  It should only be done by log.CreateTraceProcess because
9878             only TraceLog is responsible for generating a new ProcessIndex which we need.   'processIndex'
9879             is a index that is unique for the whole log file (where as processID can be reused).  
9880             </summary>
9881         </member>
9882         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.activityIds">
9883             <summary>
9884             This is a list of the activities (snippet of threads) that have run on this
9885             thread.   They are ordered by time so you can binary search for your activity based
9886             on timestamp.   
9887             </summary>
9888         </member>
9889         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceThread.lastBlockingCSwitchEventIndex">
9890             <summary>
9891             We want to have the stack for when CSwtichs BLOCK as well as when they unblock.
9892             this variable keeps track of the last blocking CSWITCH on this thread so that we can
9893             compute this.   It is only used during generation of a TraceLog file.  
9894             </summary>
9895         </member>
9896         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules">
9897             <summary>
9898             TraceLoadedModules represents the collection of modules (loaded DLLs or EXEs) in a 
9899             particular process.
9900             </summary>
9901         </member>
9902         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.Process">
9903             <summary>
9904             The process in which this Module is loaded.  
9905             </summary>
9906         </member>
9907         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetModuleContainingAddress(System.UInt64,System.Double)">
9908             <summary>
9909             Returns the module which was mapped into memory at at 'timeRelativeMSec' and includes the address 'address' 
9910             <para> Note that Jit compiled code is placed into memory that is not associated with the module and thus will not
9911             be found by this method.
9912             </para>
9913             </summary>
9914         </member>
9915         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetLoadedModule(System.String,System.Double)">
9916             <summary>
9917             Returns the module representing the unmanaged load of a particular fiele at a given time. 
9918             </summary>
9919         </member>
9920         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.ToString">
9921             <summary>
9922             An XML representation of the TraceLoadedModules (for debugging)
9923             </summary>
9924         </member>
9925         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetEnumerator">
9926             <summary>
9927             Returns all modules in the process.  Note that managed modules may appear twice 
9928             (once for the managed load and once for an unmanaged (LoadLibrary) load.  
9929             </summary>
9930         </member>
9931         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.GetLoadedModule(System.String,System.Int64)">
9932             <summary>
9933             This function will find the module associated with 'address' at 'timeQPC' however it will only
9934             find modules that are mapped in memory (module associated with JIT compiled methods will not be found).  
9935             </summary>
9936         </member>
9937         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.FindManagedModuleAndIndex(System.Int64,System.Int64,System.Int32@)">
9938             <summary>
9939             Finds the index and module for an a given managed module ID.  If not found, new module
9940             should be inserted at index + 1;
9941             </summary>
9942         </member>
9943         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModules.FindModuleAndIndexContainingAddress(System.UInt64,System.Int64,System.Int32@)">
9944             <summary>
9945             Finds the index and module for an address that lives within the image.  If the module
9946             did not match the new entry should go at index+1.   
9947             </summary>
9948         </member>
9949         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule">
9950             <summary>
9951             A TraceLoadedModule represents a module (DLL or EXE) that was loaded into a process.  It represents
9952             the time that this module was mapped into the processes address space.  
9953             </summary>
9954         </member>
9955         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ImageBase">
9956             <summary>
9957             The address where the DLL or EXE was loaded.   Will return 0 for managed modules without NGEN images.
9958             </summary>
9959         </member>
9960         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.LoadTime">
9961             <summary>
9962             The load time is the time the LoadLibrary was done if it was loaded from a file, otherwise is the
9963             time the CLR loaded the module.  Expressed as a DateTime
9964             </summary>
9965         </member>
9966         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.LoadTimeRelativeMSec">
9967             <summary>
9968             The load time is the time the LoadLibrary was done if it was loaded from a file, otherwise is the
9969             time the CLR loaded the module.  Expressed as as MSec from the beginning of the trace.  
9970             </summary>
9971         </member>
9972         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.UnloadTime">
9973             <summary>
9974             The load time is the time the FreeLibrary was done if it was unmanaged, otherwise is the
9975             time the CLR unloaded the module.  Expressed as a DateTime
9976             </summary>
9977         </member>
9978         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.UnloadTimeRelativeMSec">
9979             <summary>
9980             The load time is the time the FreeLibrary was done if it was unmanaged, otherwise is the
9981             time the CLR unloaded the module.  Expressed as MSec from the beginning of the trace. 
9982             </summary>
9983         </member>
9984         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.Process">
9985             <summary>
9986             The process that loaded this module
9987             </summary>
9988         </member>
9989         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ModuleID">
9990             <summary>
9991             An ID that uniquely identifies the module in within the process.  Works for both the managed and unmanaged case.  
9992             </summary>
9993         </member>
9994         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ModuleFile">
9995             <summary>
9996             If this managedModule was a file that was mapped into memory (eg LoadLibary), then ModuleFile points at
9997             it.  If a managed module does not have a file associated with it, this can be null.  
9998             </summary>
9999         </member>
10000         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FilePath">
10001             <summary>
10002             Shortcut for ModuleFile.FilePath, but returns the empty string if ModuleFile is null
10003             </summary>
10004         </member>
10005         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.Name">
10006             <summary>
10007             Shortcut for ModuleFile.Name, but returns the empty string if ModuleFile is null
10008             </summary>
10009         </member>
10010         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ManagedModule">
10011             <summary>
10012             Because .NET applications have AppDomains, a module that is loaded once from a process 
10013             perspective, might be loaded several times (once for each AppDomain) from a .NET perspective 
10014             <para> This property returns the loadedModule record for the first such managed module
10015             load associated with this load.   
10016             </para>
10017             </summary>
10018         </member>
10019         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.ToString">
10020             <summary>
10021             An XML representation of the TraceLoadedModule (used for debugging)
10022             </summary>
10023             <returns></returns>
10024         </member>
10025         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FastSerialization#IFastSerializable#ToStream(FastSerialization.Serializer)">
10026             <summary>
10027             See IFastSerializable.ToStream.
10028             </summary>
10029         </member>
10030         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLoadedModule.FastSerialization#IFastSerializable#FromStream(FastSerialization.Deserializer)">
10031             <summary>
10032             See IFastSerializable.FromStream.
10033             </summary>
10034         </member>
10035         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule">
10036             <summary>
10037             A TraceManagedModule represents the loading of a .NET module into .NET AppDomain.
10038             It represents the time that that module an be used in the AppDomain.
10039             </summary>
10040         </member>
10041         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.ModuleID">
10042             <summary>
10043             The module ID that the .NET Runtime uses to identify the file (module) associated with this managed module
10044             </summary>
10045         </member>
10046         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.AssemblyID">
10047             <summary>
10048             The Assembly ID that the .NET Runtime uses to identify the assembly associated with this managed module. 
10049             </summary>
10050         </member>
10051         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.IsAppDomainNeutral">
10052             <summary>
10053             Returns true if the managed module was loaded AppDOmain Neutral (its code can be shared by all appdomains in the process. 
10054             </summary>
10055         </member>
10056         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.NativeModule">
10057             <summary>
10058             If the managed module is an IL module that has an NGEN image, return it. 
10059             </summary>
10060         </member>
10061         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceManagedModule.ToString">
10062             <summary>
10063             An XML representation of the TraceManagedModule (used for debugging)
10064             </summary>
10065         </member>
10066         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex">
10067             <summary>
10068             CallStackIndex uniquely identifies a callstack within the log.  Valid values are between 0 and
10069             TraceCallStacks.Count-1. Thus, an array can be used to 'attach' data to a call stack.   
10070             </summary>
10071         </member>
10072         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex.Invalid">
10073             <summary>
10074             Returned when no appropriate CallStack exists.  
10075             </summary>
10076         </member>
10077         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks">
10078             <summary>
10079             Call stacks are so common in most traces, that having a .NET object (a TraceEventCallStack) for
10080             each one is often too expensive.   As optimization, TraceLog also assigns a call stack index
10081             to every call stack and this index uniquely identifies the call stack in a very light weight fashion.
10082             <para>
10083             To be useful, however you need to be able to ask questions about a call stack index without creating
10084             a TraceEventCallStack.   This is the primary purpose of a TraceCallStacks (accessible from TraceLog.CallStacks).   
10085             It has a set of 
10086             methods that take a CallStackIndex and return properties of the call stack (like its caller or 
10087             its code address).  
10088             </para>
10089             </summary>
10090         </member>
10091         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Count">
10092             <summary>
10093             Returns the count of call stack indexes (all Call Stack indexes are strictly less than this).   
10094             </summary>
10095         </member>
10096         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.CodeAddressIndex(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10097             <summary>
10098             Given a call stack index, return the code address index representing the top most frame associated with it
10099             </summary>
10100         </member>
10101         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Caller(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10102             <summary>
10103             Given a call stack index, look up the call stack  index for caller.  Returns CallStackIndex.Invalid at top of stack.  
10104             </summary>
10105         </member>
10106         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Depth(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10107             <summary>
10108             Given a call stack index, returns the number of callers for the call stack 
10109             </summary>
10110         </member>
10111         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Item(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10112             <summary>
10113             Given a call stack index, returns a TraceCallStack for it.  
10114             </summary>
10115         </member>
10116         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.CodeAddresses">
10117             <summary>
10118             Returns the TraceCodeAddresses instance that can resolve CodeAddressIndexes in the TraceLog 
10119             </summary>
10120         </member>
10121         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.ThreadIndex(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10122             <summary>
10123             Given a call stack index, returns the ThreadIndex which represents the thread for the call stack
10124             </summary>
10125         </member>
10126         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.Thread(Microsoft.Diagnostics.Tracing.Etlx.CallStackIndex)">
10127             <summary>
10128             Given a call stack index, returns the TraceThread which represents the thread for the call stack
10129             </summary>
10130         </member>
10131         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.ToString">
10132             <summary>
10133             An XML representation of the TraceCallStacks (used for debugging)
10134             </summary>
10135         </member>
10136         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.GetEnumerator">
10137             <summary>
10138             IEnumerable Support
10139             </summary>
10140         </member>
10141         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.SetSize(System.Int32)">
10142             <summary>
10143             Used to 'undo' the effects of adding a eventToStack that you no longer want.  This happens when we find
10144             out that a eventToStack is actually got more callers in it (when a eventToStack is split).  
10145             </summary>
10146             <param name="origSize"></param>
10147         </member>
10148         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStacks.GetRootForThread(Microsoft.Diagnostics.Tracing.Etlx.ThreadIndex)">
10149             <summary>
10150             Returns an index that represents the 'threads' of the stack.  It encodes the thread which owns this stack into this. 
10151             We encode this as -ThreadIndex - 2 (since -1 is the Invalid node)
10152             </summary>
10153         </member>
10154         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack">
10155             <summary>
10156             A TraceCallStack is a structure that represents a call stack as a linked list. Each TraceCallStack 
10157             contains two properties, the CodeAddress for the current frame, and the TraceCallStack of the
10158             caller of this frame.   The Caller property will return null at the thread start frame.  
10159             </summary>
10160         </member>
10161         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.CallStackIndex">
10162             <summary>
10163              Return the CallStackIndex that uniquely identifies this call stack in the TraceLog.  
10164             </summary>
10165         </member>
10166         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.CodeAddress">
10167             <summary>
10168             Returns the TraceCodeAddress for the current method frame in the linked list of frames.
10169             </summary>
10170         </member>
10171         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.Caller">
10172             <summary>
10173             The TraceCallStack for the caller of of the method represented by this call stack.  Returns null at the end of the list. 
10174             </summary>
10175         </member>
10176         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.Depth">
10177             <summary>
10178             The depth (count of callers) of this call stack.  
10179             </summary>
10180         </member>
10181         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.ToString">
10182             <summary>
10183             An XML representation of the TraceCallStack (used for debugging)
10184             </summary>
10185         </member>
10186         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCallStack.ToString(System.Text.StringBuilder)">
10187             <summary>
10188             Writes an XML representation of the TraceCallStack to the stringbuilder 'sb'
10189             </summary>
10190         </member>
10191         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex">
10192             <summary>
10193             CodeAddressIndex uniquely identifies a symbolic codeAddress within the log . 
10194             Valid values are between 0 and TraceCodeAddresses.Count. Thus, an array
10195             can be used to 'attach' data to a code address.
10196             </summary>
10197         </member>
10198         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex.Invalid">
10199             <summary>
10200             Returned when no appropriate Method exists.  
10201             </summary>
10202         </member>
10203         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses">
10204             <summary>
10205             Code addresses are so common in most traces, that having a .NET object (a TraceCodeAddress) for
10206             each one is often too expensive.   As optimization, TraceLog also assigns a code address index
10207             to every code address and this index uniquely identifies the code address in a very light weight fashion.
10208             <para>
10209             To be useful, however you need to be able to ask questions about a code address index without creating
10210             a TraceCodeAddress.   This is the primary purpose of a TraceCodeAddresses (accessible from TraceLog.CodeAddresses).   
10211             It has a set of 
10212             methods that take a CodeAddressIndex and return properties of the code address (like its method, address, and module file)
10213             </para>
10214             </summary>
10215         </member>
10216         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ChunkSize">
10217             <summary>
10218             Chunk size for <see cref="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.codeAddressObjects"/>
10219             </summary>
10220         </member>
10221         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Count">
10222             <summary>
10223             Returns the count of code address indexes (all code address indexes are strictly less than this).   
10224             </summary>
10225         </member>
10226         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Name(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10227             <summary>
10228             Given a code address index, return the name associated with it (the method name).  It will
10229             have the form MODULE!METHODNAME.   If the module name is unknown a ? is used, and if the
10230             method name is unknown a hexadecimal number is used as the method name.  
10231             </summary>
10232         </member>
10233         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Address(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10234             <summary>
10235             Given a code address index, returns the virtual address of the code in the process.  
10236             </summary>
10237         </member>
10238         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10239             <summary>
10240             Given a code address index, returns the index for the module file (representing the file's path) 
10241             </summary>
10242         </member>
10243         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.MethodIndex(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10244             <summary>
10245             Given a code address index, returns the index for the method associated with the code address (it may return MethodIndex.Invalid 
10246             if no method can be found). 
10247             </summary>
10248         </member>
10249         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFile(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10250             <summary>
10251             Given a code address index, returns the module file (the DLL paths) associated with it
10252             </summary>
10253         </member>
10254         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ILOffset(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10255             <summary>
10256             If the code address is associated with managed code, return the IL offset within the method.    If the method
10257             is unmanaged -1 is returned.   To determine the IL offset the PDB for the NGEN image (for NGENed code) or the
10258             correct .NET events (for JIT compiled code) must be present.   If this information is not present -1 is returned. 
10259             </summary>
10260         </member>
10261         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Item(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10262             <summary>
10263             Given a code address index, returns a TraceCodeAddress for it.
10264             </summary>
10265         </member>
10266         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.Methods">
10267             <summary>
10268             Returns the TraceMethods object that can look up information from MethodIndexes 
10269             </summary>
10270         </member>
10271         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ModuleFiles">
10272             <summary>
10273             Returns the TraceModuleFiles that can look up information about ModuleFileIndexes
10274             </summary>
10275         </member>
10276         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ManagedMethodRecordCount">
10277             <summary>
10278             Indicates the number of managed method records that were encountered.  This is useful to understand if symbolic information 'mostly works'.  
10279             </summary>
10280         </member>
10281         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.LookupSymbolsForModule(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile)">
10282             <summary>
10283             Initially CodeAddresses for unmanaged code will have no useful name.  Calling LookupSymbolsForModule 
10284             lets you resolve the symbols for a particular file so that the TraceCodeAddresses for that DLL
10285             will have Methods (useful names) associated with them.  
10286             </summary>
10287         </member>
10288         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetSourceLine(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10289             <summary>
10290             A TraceCodeAddress can contain a method name, but does not contain number information.   To 
10291             find line number information you must read the PDB again and fetch it.   This is what
10292             GetSoruceLine does.  
10293             <para> 
10294             Given a SymbolReader (which knows how to look up PDBs) and a code address index (which
10295             represent a particular point in execution), find a SourceLocation (which represents a
10296             particular line number in a particular source file associated with the code address.
10297             Returns null if anything goes wrong (and diagnostic information will be written to the
10298             log file associated with the SymbolReader.
10299             </para>
10300             </summary>
10301         </member>
10302         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.TotalCodeAddresses">
10303             <summary>
10304             The number of times a particular code address appears in the log.   Unlike TraceCodeAddresses.Count, which tries
10305             to share a code address as much as possible, TotalCodeAddresses counts the same code address in different 
10306             call stacks (and even if in the same stack) as distinct.    This makes TotalCodeAddresses a better measure of
10307             the 'popularity' of a particular address (which can factor into decisions about whether to call LookupSymbolsForModule)
10308             <para>
10309             The sum of ModuleFile.CodeAddressesInModule for all modules should sum to this number.
10310             </para>
10311             </summary>
10312         </member>
10313         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.UnsafePDBMatching">
10314             <summary>
10315             If set to true, will only use the name of the module and not the PDB GUID to confirm that a PDB is correct
10316             for a given DLL.   Setting this value is dangerous because it is easy for the PDB to be for a different
10317             version of the DLL and thus give inaccurate method names.   Nevertheless, if a log file has no PDB GUID
10318             information associated with it, unsafe PDB matching is the only way to get at least some symbolic information. 
10319             </summary>
10320         </member>
10321         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ToString">
10322             <summary>
10323             Returns an XML representation of the TraceCodeAddresses (for debugging)
10324             </summary>
10325         </member>
10326         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.NativeMap(Microsoft.Diagnostics.Tracing.Etlx.CodeAddressIndex)">
10327             <summary>
10328             We expose ILToNativeMap internally so we can do diagnostics.   
10329             </summary>
10330         </member>
10331         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetEnumerator">
10332             <summary>
10333             IEnumerable support.
10334             </summary>
10335         </member>
10336         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.AddMethod(Microsoft.Diagnostics.Tracing.Parsers.Clr.MethodLoadUnloadVerboseTraceData)">
10337             <summary>
10338             Called when JIT CLR Rundown events are processed. It will look if there is any
10339             address that falls into the range of the JIT compiled method and if so log the
10340             symbolic information (otherwise we simply ignore it)
10341             </summary>
10342         </member>
10343         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.AddMethod(Microsoft.Diagnostics.Tracing.Parsers.JScript.MethodLoadUnloadJSTraceData,System.Collections.Generic.Dictionary{Microsoft.Diagnostics.Tracing.Etlx.JavaScriptSourceKey,System.String})">
10344             <summary>
10345             Adds a JScript method 
10346             </summary>
10347         </member>
10348         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ForAllUnresolvedCodeAddressesInRange(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64,System.Int32,System.Boolean,Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ForAllCodeAddrAction)">
10349             <summary>
10350             Allows you to get a callback for each code address that is in the range from start to 
10351             start+length within the process 'process'.   If 'considerResolved' is true' then the address range
10352             is considered resolved and future calls to this routine will not find the addresses (since they are resolved).  
10353             </summary>
10354         </member>
10355         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetOrCreateCodeAddressIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64)">
10356             <summary>
10357             Gets the symbolic information entry for 'address' which can be any address.  If it falls in the
10358             range of a symbol, then that symbolic information is returned.  Regardless of whether symbolic
10359             information is found, however, an entry is created for it, so every unique address has an entry
10360             in this table.  
10361             </summary>
10362         </member>
10363         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ProcessForAddress(Microsoft.Diagnostics.Tracing.Etlx.TraceProcess,System.UInt64)">
10364             <summary>
10365             All processes might have kernel addresses in them, this returns the kernel process (process ID == 0) if 'address' is a kernel address.    
10366             </summary>
10367         </member>
10368         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.GetSortedCodeAddressIndexes">
10369             <summary>
10370             Sort from lowest address to highest address. 
10371             </summary>
10372         </member>
10373         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.LookupSymbols(Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions)">
10374             <summary>
10375             Do symbol resolution for all addresses in the log file. 
10376             </summary>
10377         </member>
10378         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.OpenPdbForModuleFile(Microsoft.Diagnostics.Symbols.SymbolReader,Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile)">
10379             <summary>
10380             Look up the SymbolModule (open PDB) for a given moduleFile.   Will generate NGEN pdbs as needed.  
10381             </summary>
10382         </member>
10383         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.TraceModuleUnchanged(Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile,System.IO.TextWriter)">
10384             <summary>
10385             Returns true if 'moduleFile' seems to be unchanged from the time the information about it
10386             was generated.  Logs messages to 'log' if it fails.  
10387             </summary>
10388         </member>
10389         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo">
10390             <summary>
10391             A CodeAddressInfo is the actual data stored in the ETLX file that represents a 
10392             TraceCodeAddress.     It knows its Address in the process and it knows the 
10393             TraceModuleFile (which knows its base address), so it also knows its relative
10394             address in the TraceModuleFile (which is what is needed to look up the value 
10395             in the PDB.  
10396             
10397             Note that by the time that the CodeAddressInfo is persisted in the ETLX file
10398             it no longer knows the process it originated from (thus separate processes 
10399             with the same address and same DLL file loaded at the same address can share
10400             the same CodeAddressInfo.  This is actually reasonably common, since OS tend
10401             to load at their preferred base address.  
10402             
10403             We also have to handle the managed case, in which case the CodeAddressInfo may
10404             also know about the TraceMethod or the ILMapIndex (which remembers both the
10405             method and the line numbers for managed code. 
10406             
10407             However when the CodeAddressInfo is first created, we don't know the TraceModuleFile
10408             so we also need to remember the Process
10409             
10410             </summary>
10411         </member>
10412         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetProcessIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10413             <summary>
10414             This is only valid until MethodIndex or ModuleFileIndex is set.   
10415             </summary>
10416         </member>
10417         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetMethodIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10418             <summary>
10419             Only for managed code.  
10420             </summary>
10421         </member>
10422         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.GetModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses)">
10423             <summary>
10424             Only for unmanaged code.   TODO, this can be folded into methodOrProcessIlMap index and save a DWORD.  
10425             since if the method or IlMap is present then you can get the ModuelFile index from there.  
10426             </summary>
10427         </member>
10428         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.CodeAddressInfo.InclusiveCount">
10429             <summary>
10430             This is a count of how many times this code address appears in any stack in the trace.  
10431             It is a measure of what popular the code address is (whether we should look up its symbols).  
10432             </summary>
10433         </member>
10434         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.FindAndRemove(System.Int64,Microsoft.Diagnostics.Tracing.Etlx.ProcessIndex,Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddresses.ILMapIndex@)">
10435             <summary>
10436             Find the ILToNativeMap for 'methodId' in process associated with 'processIndex' 
10437             and then remove it from the table (this is what you want to do when the method is unloaded)
10438             </summary>
10439         </member>
10440         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress">
10441              <summary>
10442              Conceptually a TraceCodeAddress represents a particular point of execution within a particular 
10443              line of code in some source code.    As a practical matter, they are represented two ways
10444              depending on whether the code is managed or not.
10445              <para>* For native code (or NGened code), it is represented as a virtual address along with the loaded native
10446              module that includes that address along with its load address.  A code address does NOT 
10447              know its process because they can be shared among all processes that load a particular module
10448              at a particular location.   These code addresses will not have methods associated with them
10449              unless symbols information (PDBS) are loaded for the module using the LookupSymbolsForModule.  
10450              </para>
10451              <para> * For JIT compiled managed code, the address in a process is eagerly resolved into a method, module
10452              and an IL offset and that is stored in the TraceCodeAddress.  
10453              </para>
10454             <para> Sometimes it is impossible to even determine the module associated with a virtual
10455             address in a process.   These are represented as simply the virtual address.  
10456             </para>
10457             <para>
10458             Because code addresses are so numerous, consider using CodeAddressIndex instead of TraceCodeAddress
10459             to represent a code address.   Methods on TraceLog.CodeAddresses can access all the information
10460             that would be in a TraceCodeAddress from a CodeAddressIndex without the overhead of creating
10461             a TraceCodeAddress object. 
10462             </para>
10463              </summary>
10464         </member>
10465         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.CodeAddressIndex">
10466             <summary>
10467             The CodeAddressIndex that uniquely identifies the same code address as this TraceCodeAddress
10468             </summary>
10469         </member>
10470         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.Address">
10471             <summary>
10472             The Virtual address of the code address in the process.  (Note that the process is unknown by the code address to allow for sharing)
10473             </summary>
10474         </member>
10475         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.FullMethodName">
10476             <summary>
10477             The full name (Namespace name.class name.method name) of the method associated with this code address.   
10478             Returns the empty string if no method is associated with the code address. 
10479             </summary>
10480         </member>
10481         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.Method">
10482             <summary>
10483             Returns the TraceMethod associated with this code address or null if there is none. 
10484             </summary>
10485         </member>
10486         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ILOffset">
10487             <summary>
10488             If the TraceCodeAddress is associated with managed code, return the IL offset within the method.    If the method
10489             is unmanaged -1 is returned.   To determine the IL offset the PDB for the NGEN image (for NGENed code) or the
10490             correct .NET events (for JIT compiled code) must be present.   If this information is not present -1 is returned. 
10491             </summary>
10492         </member>
10493         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.GetSourceLine(Microsoft.Diagnostics.Symbols.SymbolReader)">
10494             <summary>
10495             A TraceCodeAddress can contain a method name, but does not contain number information.   To 
10496             find line number information you must read the PDB again and fetch it.   This is what
10497             GetSoruceLine does.  
10498             <para> 
10499             Given a SymbolReader (which knows how to look up PDBs) find a SourceLocation (which represents a
10500             particular line number in a particular source file associated with the current TraceCodeAddress.
10501             Returns null if anything goes wrong (and diagnostic information will be written to the
10502             log file associated with the SymbolReader.
10503             </para>
10504             </summary>
10505         </member>
10506         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleFile">
10507             <summary>
10508             Returns the TraceModuleFile representing the DLL path associated with this code address (or null if not known)
10509             </summary>
10510         </member>
10511         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleName">
10512             <summary>
10513             ModuleName is the name of the file without path or extension. 
10514             </summary>
10515         </member>
10516         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ModuleFilePath">
10517             <summary>
10518             The full path name of the DLL associated with this code address.  Returns empty string if not known. 
10519             </summary>
10520         </member>
10521         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.CodeAddresses">
10522             <summary>
10523             The CodeAddresses container that this Code Address lives within
10524             </summary>
10525         </member>
10526         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ToString">
10527             <summary>
10528             An XML representation for the CodeAddress (for debugging)
10529             </summary>
10530         </member>
10531         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceCodeAddress.ToString(System.Text.StringBuilder)">
10532             <summary>
10533             Writes an XML representation for the CodeAddress to the stringbuilder sb
10534             </summary>
10535         </member>
10536         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.MethodIndex">
10537             <summary>
10538             MethodIndex uniquely identifies a method within the log.  Valid values are between 0 and
10539             TraceMethods.Count-1. Thus, an array can be used to 'attach' data to a method.
10540             </summary>
10541         </member>
10542         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.MethodIndex.Invalid">
10543             <summary>
10544             Returned when no appropriate Method exists.  
10545             </summary>
10546         </member>
10547         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods">
10548             <summary>
10549             Methods are so common in most traces, that having a .NET object (a TraceMethod) for
10550             each one is often too expensive.   As optimization, TraceLog also assigns a method index
10551             to every method and this index uniquely identifies the method in a very light weight fashion.
10552             <para>
10553             To be useful, however you need to be able to ask questions about a method index without creating
10554             a TraceMethod.   This is the primary purpose of a TraceMethods (accessible from TraceLog.CodeAddresses.Methods).   
10555             It has a set of 
10556             methods that take a MethodIndex and return properties of the method (like its name, and module file)
10557             </para>
10558             </summary>
10559         </member>
10560         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.Count">
10561             <summary>
10562             Returns the count of method indexes.  All MethodIndexes are strictly less than this. 
10563             </summary>
10564         </member>
10565         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodToken(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10566             <summary>
10567             Given a method index, if the method is managed return the IL meta data MethodToken (returns 0 for native code)
10568             </summary>
10569         </member>
10570         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodRva(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10571             <summary>
10572             Given a method index, return the Method's RVA (offset from the base of the DLL in memory)  (returns 0 for managed code)
10573             </summary>
10574         </member>
10575         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.MethodModuleFileIndex(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10576             <summary>
10577             Given a method index, return the index for the ModuleFile associated with the Method Index.  
10578             </summary>
10579         </member>
10580         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.FullMethodName(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10581             <summary>
10582             Given a method index, return the Full method name (Namespace.ClassName.MethodName) associated with the Method Index.  
10583             </summary>
10584         </member>
10585         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.Item(Microsoft.Diagnostics.Tracing.Etlx.MethodIndex)">
10586             <summary>
10587             Given a method index, return a TraceMethod that also represents the method.  
10588             </summary>
10589         </member>
10590         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.ToString">
10591             <summary>
10592             Returns an XML representation of the TraceMethods.
10593             </summary>
10594         </member>
10595         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethods.GetEnumerator">
10596             <summary>
10597             IEnumerable support
10598             </summary>
10599             <returns></returns>
10600         </member>
10601         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod">
10602             <summary>
10603             A TraceMethod represents the symbolic information for a particular method.   To maximizes haring a TraceMethod 
10604             has very little state, just the module and full method name.
10605             </summary>
10606         </member>
10607         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodIndex">
10608             <summary>
10609             Each Method in the TraceLog is given an index that uniquely identifies it.  This return this index for this TraceMethod
10610             </summary>
10611         </member>
10612         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.FullMethodName">
10613             <summary>
10614             The full name of the method (Namespace.ClassName.MethodName). 
10615             </summary>
10616         </member>
10617         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodToken">
10618             <summary>
10619             .Net runtime methods have a token (32 bit number) that uniquely identifies it in the meta data of the managed DLL.  
10620             This property returns this token. Returns 0 for unmanaged code or method not found. 
10621             </summary>
10622         </member>
10623         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodRva">
10624             <summary>
10625             For native code the RVA (relative virtual address, which is the offset from the base of the file in memory)
10626             for the method in the file. Returns 0 for managed code or method not found;
10627             </summary>
10628         </member>
10629         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodModuleFileIndex">
10630             <summary>
10631             Returns the index for the DLL ModuleFile (which represents its file path) associated with this method
10632             </summary>
10633         </member>
10634         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.MethodModuleFile">
10635             <summary>
10636             Returns the ModuleFile (which represents its file path) associated with this method
10637             </summary>
10638         </member>
10639         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.ToString">
10640             <summary>
10641             A XML representation of the TraceMethod. (Used for debugging)
10642             </summary>
10643             <returns></returns>
10644         </member>
10645         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.ToString(System.Text.StringBuilder)">
10646             <summary>
10647             Writes an XML representation of the TraceMethod to the stringbuilder 'sb'
10648             </summary>
10649             <param name="sb"></param>
10650             <returns></returns>
10651         </member>
10652         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceMethod.PrefixOptimizationTier(System.String,Microsoft.Diagnostics.Tracing.Parsers.Clr.OptimizationTier)">
10653             <summary>
10654             Returns a new string prefixed with the optimization tier if it would be useful. Typically used to adorn a method's
10655             name with the optimization tier of the specific code version of the method.
10656             </summary>
10657         </member>
10658         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex">
10659             <summary>
10660             A ModuleFileIndex represents a particular file path on the disk.   It is a number
10661             from 0 to MaxModuleFileIndex, which means that you can create a side array to hold
10662             information about module files.
10663             
10664             You can look up information about the ModuleFile from the ModuleFiles type.  
10665             </summary>
10666         </member>
10667         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex.Invalid">
10668             <summary>
10669             Returned when no appropriate ModuleFile exists.  
10670             </summary>
10671         </member>
10672         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles">
10673             <summary>
10674             TraceModuleFiles is the list of all the ModuleFiles in the trace.   It is an IEnumerable.
10675             </summary>
10676         </member>
10677         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Count">
10678             <summary>
10679             Each file is given an index for quick lookup.   Count is the
10680             maximum such index (thus you can create an array that is 1-1 with the
10681             files easily).  
10682             </summary>
10683         </member>
10684         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Item(Microsoft.Diagnostics.Tracing.Etlx.ModuleFileIndex)">
10685             <summary>
10686             Given a ModuleFileIndex, find the TraceModuleFile which also represents it
10687             </summary>
10688         </member>
10689         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.Log">
10690             <summary>
10691             Returns the TraceLog associated with this TraceModuleFiles
10692             </summary>
10693         </member>
10694         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.ToString">
10695             <summary>
10696             Returns an XML representation of the TraceModuleFiles
10697             </summary>
10698         </member>
10699         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.System#Collections#Generic#IEnumerable{Microsoft#Diagnostics#Tracing#Etlx#TraceModuleFile}#GetEnumerator">
10700             <summary>
10701             Enumerate all the files that occurred in the trace log.  
10702             </summary> 
10703         </member>
10704         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.GetOrCreateModuleFile(System.String,System.UInt64)">
10705             <summary>
10706             We cache information about a native image load in a TraceModuleFile.  Retrieve or create a new
10707             cache entry associated with 'nativePath' and 'moduleImageBase'.  'moduleImageBase' can be 0 for managed assemblies
10708             that were not loaded with LoadLibrary.  
10709             </summary>
10710         </member>
10711         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFiles.GetModuleFile(System.String,System.UInt64)">
10712             <summary>
10713             For a given file name, get the TraceModuleFile associated with it.  
10714             </summary>
10715         </member>
10716         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile">
10717             <summary>
10718             The TraceModuleFile represents a executable file that can be loaded into memory (either an EXE or a
10719             DLL).  It represents the path on disk as well as the location in memory where it loads (or
10720             its ModuleID if it is a managed module), but not the load or unload time or the process in which
10721             it was loaded (this allows them to be shared within the trace).   
10722             </summary>
10723         </member>
10724         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ModuleFileIndex">
10725             <summary>
10726             The ModuleFileIndex ID that uniquely identifies this module file.
10727             </summary>
10728         </member>
10729         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.FilePath">
10730             <summary>
10731             The moduleFile name associated with the moduleFile.  May be the empty string if the moduleFile has no moduleFile
10732             (dynamically generated).  For managed code, this is the IL moduleFile name.  
10733             </summary>
10734         </member>
10735         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.Name">
10736             <summary>
10737             This is the short name of the moduleFile (moduleFile name without extension). 
10738             </summary>
10739         </member>
10740         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageBase">
10741             <summary>
10742             Returns the address in memory where the dll was loaded.  
10743             </summary>
10744         </member>
10745         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageSize">
10746             <summary>
10747             Returns the size of the DLL when loaded in memory
10748             </summary>
10749         </member>
10750         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageEnd">
10751             <summary>
10752             Returns the address just past the memory the module uses. 
10753             </summary>
10754         </member>
10755         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbName">
10756             <summary>
10757             The name of the symbol file (PDB file) associated with the DLL
10758             </summary>
10759         </member>
10760         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbSignature">
10761             <summary>
10762             Returns the GUID that uniquely identifies the symbol file (PDB file) for this DLL
10763             </summary>
10764         </member>
10765         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.PdbAge">
10766             <summary>
10767             Returns the age (which is a small integer), that is also needed to look up the symbol file (PDB file) on a symbol server.  
10768             </summary>
10769         </member>
10770         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.FileVersion">
10771             <summary>
10772             Returns the file version string that is optionally embedded in the DLL's resources.   Returns the empty string if not present. 
10773             </summary>
10774         </member>
10775         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ProductName">
10776             <summary>
10777             Returns the product name  recorded in the file version information.     Returns empty string if not present
10778             </summary>
10779         </member>
10780         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ProductVersion">
10781             <summary>
10782             Returns a version string for the product as a whole (could include GIT source code hash).    Returns empty string if not present
10783             </summary>
10784         </member>
10785         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageChecksum">
10786             <summary>
10787             This is the checksum value in the PE header. Can be used to validate 
10788             that the file on disk is the same as the file from the trace.  
10789             </summary>
10790         </member>
10791         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ImageId">
10792             <summary>
10793             This used to be called TimeDateStamp, but linkers may not use it as a 
10794             timestamp anymore because they want deterministic builds.  It still is 
10795             useful as a unique ID for the image.  
10796             </summary>
10797         </member>
10798         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.IsReadyToRun">
10799             <summary>
10800             Tells if the module file is ReadyToRun (the has precompiled code for some managed methods)
10801             </summary>
10802         </member>
10803         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.GitCommitHash">
10804             <summary>
10805             If the Product Version fields has a GIT Commit Hash component, this returns it,  Otherwise it is empty.   
10806             </summary>
10807         </member>
10808         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.BuildTime">
10809             <summary>
10810             Returns the time the DLL was built as a DateTime.   Note that this may not
10811             work if the build system uses deterministic builds (in which case timestamps
10812             are not allowed.   We may not be able to tell if this is a bad timestamp
10813             but we include it because when it is timestamp it is useful.  
10814             </summary>
10815         </member>
10816         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.CodeAddressesInModule">
10817             <summary>
10818             The number of code addresses included in this module.  This is useful for determining if 
10819             this module is worth having its symbolic information looked up or not.   It is not 
10820             otherwise a particularly interesting metric.  
10821             <para>
10822             This number is defined as the number of appearances this module has in any stack 
10823             or any event with a code address (If the modules appears 5 times in a stack that
10824             counts as 5 even though it is just one event's stack).  
10825             </para>
10826             </summary>
10827         </member>
10828         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ManagedModule">
10829             <summary>
10830             If the module file was a managed native image, this is the IL file associated with it.  
10831             </summary>
10832         </member>
10833         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceModuleFile.ToString">
10834             <summary>
10835             Returns an XML representation of the TraceModuleFile (for debugging) 
10836             </summary>
10837         </member>
10838         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex">
10839             <summary>
10840             A ActivityIndex uniquely identifies an Activity in the log. Valid values are between
10841             0 and Activities.Count-1.
10842             </summary>
10843         </member>
10844         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.ActivityIndex.Invalid">
10845             <summary>
10846             valid activity indexes are non-negative integers
10847             </summary>
10848         </member>
10849         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity">
10850             <summary>
10851             Representation of an Activity. An activity can be thought of as a unit of execution associated with
10852             a task or workitem; it executes on one thread, and has a start and end time. An activity keeps track
10853             of its "creator" or "caller" -- which is the activity that scheduled it. Using the "creator" link a
10854             user can determine the chain of activities that led up to the current one.
10855             
10856             Given an event you can get the Activity for the event using the Activity() extension method.  
10857             </summary>
10858         </member>
10859         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind">
10860             <summary>
10861             Describes the kinds of known Activities (used for descriptive purposes alone)
10862             </summary>
10863         </member>
10864         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Invalid">
10865             <summary>Invalid</summary>
10866         </member>
10867         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Initial">
10868             <summary>
10869             Default activity on a thread (when the thread does not execute any code on
10870             behalf of anyone else)
10871             </summary>
10872         </member>
10873         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskScheduled">
10874             <summary>
10875             An activity that was initiated by a Task.Run
10876             </summary>
10877         </member>
10878         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskStarted">
10879             <summary>
10880             An activity that's a task, but for which we didn't see a "Scheduled" event
10881             </summary>
10882         </member>
10883         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.AwaitTaskScheduled">
10884             <summary>
10885             An activity that allows correlation between the antecedent and continuation 
10886             </summary>
10887         </member>
10888         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrThreadStart">
10889             <summary>A thread started with Thread.Start</summary>
10890         </member>
10891         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrThreadPool">
10892             <summary>Native CLR threadpool workitem</summary>
10893         </member>
10894         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.ClrIOThreadPool">
10895             <summary>Native CLR IO threadpool workitem</summary>
10896         </member>
10897         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxThreadPool">
10898             <summary>Managed threadpool workitem</summary>
10899         </member>
10900         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxTransfer">
10901             <summary>Generic managed thread transfer</summary>
10902         </member>
10903         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxAsyncIO">
10904             <summary>Managed async IO workitem</summary>
10905         </member>
10906         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxWinRTDispatch">
10907             <summary>WinRT Dispatched workitem</summary>
10908         </member>
10909         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.Implied">
10910             <summary>
10911             Used when we make up ones because we know that have to be there but we don't know enough to do more than that. 
10912             </summary>
10913         </member>
10914         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskWait">
10915             <summary>
10916             An activity that allows correlation between the antecedent and continuation 
10917             if have bit 5 set it means you auto-compete
10918             </summary>
10919         </member>
10920         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.TaskWaitSynchronous">
10921             <summary>
10922             Same as TaskWait, hwoever it auto-completes
10923             </summary>
10924         </member>
10925         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ActivityKind.FxTimer">
10926             <summary>
10927             Managed timer workitem
10928             </summary>
10929         </member>
10930         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Index">
10931             <summary>A trace-wide unique id identifying an activity</summary>
10932         </member>
10933         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Creator">
10934             <summary>The activity that initiated or caused the current one</summary>
10935         </member>
10936         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ID">
10937             <summary>
10938             This return an unique string 'name' for the activity.  It is a the Index followed by 
10939             a - followed by the TPL index (if available).  It is a bit nicer since it gives
10940             more information for debugging.  
10941             </summary>
10942         </member>
10943         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Path">
10944             <summary>
10945             Computes the creator path back to root. 
10946             </summary>
10947         </member>
10948         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Thread">
10949             <summary>The thread on which the activity is running</summary>
10950         </member>
10951         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.MultiTrigger">
10952             <summary>True if there may be multiple activities that were initiated by caller (e.g. managed Timers)</summary>
10953         </member>
10954         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.Name">
10955             <summary>A descriptive label for the activity
10956                 TODO: eliminate and use ToString()?
10957             </summary>
10958         </member>
10959         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.IsThreadActivity">
10960             <summary>
10961             A thread activity is the activity associate with an OS thread.   It is special because it may 
10962             have a region that is disjoint.  
10963             </summary>
10964         </member>
10965         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.StartTimeRelativeMSec">
10966             <summary>Time from beginning of trace (in msec) when activity started executing</summary>
10967         </member>
10968         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.EndTimeRelativeMSec">
10969             <summary>Time from beginning of trace (in msec) when activity completed execution.  Does not include children.</summary>
10970         </member>
10971         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationEventIndex">
10972             <summary>The event index of the TraceEvent instance that created/scheduled this activity</summary>
10973         </member>
10974         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationCallStackIndex">
10975             <summary>The call stack index of the TraceEvent instance that scheduled (caused the creation of) the activity</summary>
10976         </member>
10977         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.CreationTimeRelativeMSec">
10978             <summary>Time from beginning of trace (in msec) when activity was scheduled</summary>
10979         </member>
10980         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceActivity.ToString">
10981             <summary>
10982             To use mainly for debugging
10983             </summary>
10984         </member>
10985         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions">
10986             <summary>
10987             TraceLogOptions control the generation of a TraceLog (ETLX file) from an ETL file.  
10988             </summary>
10989         </member>
10990         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.#ctor">
10991             <summary>
10992             Creates a new object containing options for constructing a TraceLog file.  
10993             </summary>
10994         </member>
10995         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ShouldResolveSymbols">
10996             <summary>
10997             If non-null, this is a predicate that, given a file path to a dll, answers the question
10998             whether the PDB associated with that DLL be looked up and its symbolic information added
10999             to the TraceLog file as part of conversion.   Symbols can be looked up afterward when 
11000             the file is later opened, so the default (which is to look up no symbols during
11001             conversion) is typically OK. 
11002             </summary>
11003         </member>
11004         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.LocalSymbolsOnly">
11005             <summary>
11006             Resolving symbols from a symbol server can take a long time. If
11007             there is a DLL that always fails, it can be quite annoying because
11008             it will always cause delays, By specifying only local symbols it
11009             will only resolve the symbols if it can do so without the delay of network traffic. 
11010             Symbols that have been previously cached locally from a symbol
11011             server count as local symbols.
11012             </summary>
11013         </member>
11014         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.AlwaysResolveSymbols">
11015             <summary>
11016             By default symbols are only resolved if there are stacks associated with the trace. 
11017             Setting this option forces resolution even if there are no stacks. 
11018             </summary>
11019         </member>
11020         <member name="P:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ConversionLog">
11021             <summary>
11022             Writes status to this log.  Useful for debugging symbol issues.
11023             </summary>
11024         </member>
11025         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ConversionLogName">
11026             <summary>
11027             If ConversionLogName is set, it indicates that any messages associated with creating the TraceLog should be written here. 
11028             </summary>
11029         </member>
11030         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.KeepAllEvents">
11031             <summary>
11032             ETL files typically contain a large number of 'bookkeeping' event for resolving names of files, or methods or to indicate information
11033             about processes that existed when the trace was started (DCStart and DCStop events).   By default these events are stripped from
11034             the ETLX file because their information has already been used to do the bookkeeping as part of the conversion
11035             <para> 
11036             However sometimes it is useful to keep these events (typically for debugging TraceEvent itself) and setting this
11037             property to true will cause every event in the ETL file to be copied as an event to the ETLX file.  
11038             </para>
11039             </summary>
11040         </member>
11041         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.MaxEventCount">
11042             <summary>
11043             Sometimes ETL files are too big , and you just want to look at a fraction of it to speed things up
11044             (or to keep file size under control).  The MaxEventCount property allows that.   10M will produce a 3-4GB ETLX file.  
11045             1M is a good value to keep ETLX file size under control.  Note that that the conversion still scan the entire 
11046             original ETL file too look for bookkeeping events, however MaxEventCount events will be transfered to the ETLX 
11047             file as events.
11048             <para>
11049             The default is 10M because ETLX has a restriction of 4GB in size.  
11050             </para>
11051             </summary>
11052         </member>
11053         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.SkipMSec">
11054             <summary>
11055             If an ETL file has too many events for efficient processing the first part of the trace can be skipped by setting this
11056             property.   Any event which happens before 'SkipMSec' into the session will be filtered out.   This property is
11057             intended to be used along with the MaxEventCount property to carve out a arbitrary chunk of time from an ETL
11058             file as it is converted to an ETLX file.  
11059             </summary>
11060         </member>
11061         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.OnLostEvents">
11062             <summary>
11063             If this delegate is non-null, it is called if there are any lost events or if the file was truncated.
11064             It is passed a bool whether the ETLX file was truncated, as well as the number of lost events and the 
11065             total number of events in the ETLX file.  You can throw if you want to abort.  
11066             </summary>
11067         </member>
11068         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ExplicitManifestDir">
11069             <summary>
11070             If you have the manifests for particular providers, you can read them in explicitly by setting this directory.
11071              All files of the form *.manifest.xml will be read into the DynamicTraceEventParser's database before conversion
11072              starts.  
11073             </summary>
11074         </member>
11075         <member name="F:Microsoft.Diagnostics.Tracing.Etlx.TraceLogOptions.ContinueOnError">
11076             <summary>
11077             If errors occur during conversion, just assume the traced ended at that point and continue. 
11078             </summary>
11079         </member>
11080         <member name="T:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions">
11081             <summary>
11082             The TraceEvent instances returned during the processing of a TraceLog have additional capabilities that these extension methods can access.  
11083             </summary>
11084         </member>
11085         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Process(Microsoft.Diagnostics.Tracing.TraceEvent)">
11086             <summary>
11087             Finds the TraceProcess associated with a TraceEvent.
11088             Guaranteed to be non-null for non-real-time sessions if the process ID is != -1 
11089             </summary>
11090         </member>
11091         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Thread(Microsoft.Diagnostics.Tracing.TraceEvent)">
11092             <summary>
11093             Finds the TraceThread associated with a TraceEvent. 
11094             Guaranteed to be non-null for non-real-time sessions if the process ID is != -1 
11095             </summary>
11096         </member>
11097         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Log(Microsoft.Diagnostics.Tracing.TraceEvent)">
11098             <summary>
11099             Finds the TraceLog associated with a TraceEvent.  
11100             </summary>
11101         </member>
11102         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStack(Microsoft.Diagnostics.Tracing.TraceEvent)">
11103             <summary>
11104             Finds the TraceCallStack associated with a TraceEvent.   Returns null if the event does not have callstack.  
11105             </summary>
11106         </member>
11107         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStackIndex(Microsoft.Diagnostics.Tracing.TraceEvent)">
11108             <summary>
11109             Finds the CallStack index associated with a TraceEvent.   Returns Invalid if the event does not have callstack.  
11110             </summary>
11111         </member>
11112         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.BlockingStack(Microsoft.Diagnostics.Tracing.Parsers.Kernel.CSwitchTraceData)">
11113             <summary>
11114             Finds the CallStack index associated the blocking thread for CSwitch event
11115             </summary>
11116         </member>
11117         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.CallStacks(Microsoft.Diagnostics.Tracing.TraceEvent)">
11118             <summary>
11119             Finds the TraceCallStacks associated with a TraceEvent.  
11120             </summary>
11121         </member>
11122         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.Activity(Microsoft.Diagnostics.Tracing.TraceEvent)">
11123             <summary>
11124             Finds the Activity associated with a TraceEvent
11125             </summary>
11126         </member>
11127         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ActivityIndex(Microsoft.Diagnostics.Tracing.TraceEvent)">
11128             <summary>
11129             Finds the ActivityIndex associated with a TraceEvent
11130             </summary>
11131         </member>
11132         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ProgramCounterAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData)">
11133             <summary>
11134             For a PageFaultTraceData event, gets the TraceCodeAddress associated with the ProgramCounter address. 
11135             </summary>
11136         </member>
11137         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.ProgramCounterAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.MemoryPageFaultTraceData)">
11138             <summary>
11139             For a PageFaultTraceData event, gets the CodeAddressIndex associated with the ProgramCounter address. 
11140             </summary>
11141         </member>
11142         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData)">
11143             <summary>
11144             For a SampledProfileTraceData event, gets the TraceCodeAddress associated with the InstructionPointer address. 
11145             </summary>
11146         </member>
11147         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SampledProfileTraceData)">
11148             <summary>
11149             For a SampledProfileTraceData event, gets the CodeAddressIndex associated with the InstructionPointer address. 
11150             </summary>
11151         </member>
11152         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.SysCallAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.SysCallEnterTraceData)">
11153             <summary>
11154             For a SysCallEnterTraceData event, gets the CodeAddressIndex associated with the SysCallAddress address. 
11155             </summary>
11156         </member>
11157         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddress(Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData)">
11158             <summary>
11159             For a PMCCounterProfTraceData event, gets the TraceCodeAddress associated with the InstructionPointer address. 
11160             </summary>
11161         </member>
11162         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.IntructionPointerCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.PMCCounterProfTraceData)">
11163             <summary>
11164             For a PMCCounterProfTraceData event, gets the CodeAddressIndex associated with the InstructionPointer address. 
11165             </summary>
11166         </member>
11167         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.RoutineCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.ISRTraceData)">
11168             <summary>
11169             For a ISRTraceData event, gets the CodeAddressIndex associated with the Routine address. 
11170             </summary>
11171         </member>
11172         <member name="M:Microsoft.Diagnostics.Tracing.Etlx.TraceLogExtensions.RoutineCodeAddressIndex(Microsoft.Diagnostics.Tracing.Parsers.Kernel.DPCTraceData)">
11173             <summary>
11174             For a DPCTraceData event, gets the CodeAddressIndex associated with the Routine address. 
11175             </summary>
11176         </member>
11177         <member name="T:Microsoft.Diagnostics.Tracing.TraceLoggingEventId">
11178             <summary>
11179             TraceLoggingEvnetId is a class that manages assigning event IDs (small 64k numbers)
11180             to TraceLogging Style events (which don't have them).  Because TraceEvent uses EventIDs
11181             so fundamentally this deficiency is very problematic.   
11182             
11183             Arguably this should have been done by the ETW system itself.  
11184             
11185             You use it by calling TestForTraceLoggingEventAndFixupIfNeeded on eventRecords.  
11186             You also have to explicitly call 'Dispose' when you are done with this class.  
11187             </summary>
11188         </member>
11189         <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.TestForTraceLoggingEventAndFixupIfNeeded(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
11190             <summary>
11191             Checks to see if eventRecord has TraceLogging meta data associated with it (EVENT_HEADER_EXT_TYPE_EVENT_SCHEMA_TL)
11192             and if so updates EventHeader.Id to be an event ID unique to that provider/opcode/meta-data blob. 
11193             </summary>
11194         </member>
11195         <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.Dispose">
11196             <summary>
11197             cleans up native memory allocated by this routine.   
11198             </summary>
11199         </member>
11200         <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.TestForTraceLoggingEventAndFixupIfNeededHelper(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*)">
11201             <summary>
11202             Checks to see if this event has TraceLogging meta data associated with it (EVENT_HEADER_EXT_TYPE_EVENT_SCHEMA_TL)
11203             and if so updates EventHeader.Id to be an event ID unique to that provider/opcode/meta-data blob. 
11204             </summary>
11205         </member>
11206         <member name="M:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.GetEventIDForTraceLoggingEvent(Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_RECORD*,Microsoft.Diagnostics.Tracing.TraceEventNativeMethods.EVENT_HEADER_EXTENDED_DATA_ITEM*)">
11207             <summary>
11208             given that 'eventRecord' is a TraceLogging event (with meta-data 'metaData'), return a eventID that is unique
11209             to that provider/opcode/meta-data blob.  
11210             </summary>
11211         </member>
11212         <member name="T:Microsoft.Diagnostics.Tracing.TraceLoggingEventId.ProviderMetaDataKey">
11213             <summary>
11214             ProviderMetaDataKey is what we use to look up TraceLogging meta-data.  It is 
11215             basically just GUID (representing the provider) an opcode (start/stop) and 
11216             a blob (representing the TraceLogging meta-data for an event) that knows how to 
11217             compare itself so it can be a key to a hash table. 
11218             </summary>
11219         </member>
11220         <member name="T:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1">
11221             <summary>
11222             A HistoryDictionary is designed to look up 'handles' (pointer sized quantities), that might get reused
11223             over time (eg Process IDs, thread IDs).  Thus it takes a handle AND A TIME, and finds the value
11224             associated with that handle at that time.   
11225             </summary>
11226         </member>
11227         <member name="M:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1.Add(System.UInt64,System.Int64,`0,System.Boolean)">
11228             <summary>
11229             Adds the association that 'id' has the value 'value' from 'startTime100ns' ONWARD until
11230             it is supersede by the same id being added with a time that is after this.   Thus if
11231             I did Add(58, 1000, MyValue1), and add(58, 500, MyValue2) 'TryGetValue(58, 750, out val) will return
11232             MyValue2 (since that value is 'in force' between time 500 and 1000.   
11233             </summary>
11234         </member>
11235         <member name="M:Microsoft.Diagnostics.Tracing.Utilities.HistoryDictionary`1.Remove(System.UInt64)">
11236             <summary>
11237             Remove all entries associated with a given key (over all time).  
11238             </summary>
11239         </member>
11240         <member name="T:Microsoft.Diagnostics.Tracing.ZippedETLWriter">
11241             <summary>
11242             ZippedETLWriter is a helper class used to compress ETW data (ETL files)
11243             along with symbolic information (e.g. NGEN pdbs), as well as other optional
11244             metadata (e.g. collection log files), into a single archive ready for 
11245             transfer to another machine.   
11246             </summary>
11247         </member>
11248         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.#ctor(System.String,System.IO.TextWriter)">
11249             <summary>
11250             Declares the intent to write a new ZIP archive that will
11251             contain ETW file 'etlFilePath' in it as well as symbolic information (NGEN
11252             pdbs) and possibly other information.   log is a Text stream to send detailed
11253             information to.  
11254             <para>
11255             This routine assumes by default (unless Merge is set to false) that the ETL 
11256             file needs to be merged before it is archived.   It will also generate all
11257             the NGEN pdbs needed for the archive.   
11258             </para>
11259             <para>
11260             You must call the WriteArchive method before any operations actually happen. 
11261             Up to that point is is just remembering instructions for WriteArchive to
11262             follow.  
11263             </para>
11264             </summary>
11265         </member>
11266         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.ZipArchivePath">
11267             <summary>
11268             This is the name of the output archive.  By default is the same as the ETL file name 
11269             with a .zip' suffix added (thus it will typically be .etl.zip).  
11270             </summary>
11271         </member>
11272         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Log">
11273             <summary>
11274             If set this is where messages about progress and detailed error information goes.  
11275             While you dont; have to set this, it is a good idea to do so.  
11276             </summary>
11277         </member>
11278         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.AddFile(System.String,System.String)">
11279             <summary>
11280             By default ZippedETL file will zip the ETL file itself and the NGEN pdbs associated with it.
11281             You can add additional files to the archive by calling AddFile.   In specififed 'archivePath' 
11282             is the path in the archive and defaults to just the file name of the original file path.  
11283             </summary>
11284         </member>
11285         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.WriteArchive(System.IO.Compression.CompressionLevel)">
11286             <summary>
11287             Actually do the work specified by the ZippedETLWriter constructors and other methods.  
11288             </summary>
11289         </member>
11290         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.SymbolReader">
11291             <summary>
11292             This is the symbol reader that is used to generate the NGEN Pdbs as needed
11293             If it is not specififed one is created on the fly.  
11294             </summary>
11295         </member>
11296         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Merge">
11297             <summary>
11298             By default the ETL file is merged before being added to the archive.  If
11299             this is not necessary, you can set this to false.   
11300             </summary>
11301         </member>
11302         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.CompressETL">
11303             <summary>
11304             Uses a compressed format for the ETL file.   Normally off.  
11305             </summary>
11306         </member>
11307         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.NGenSymbolFiles">
11308             <summary>
11309             By default the symbol files (PDBs) are included in the ZIP file.   If this
11310             is not desired for whatever reason, this property can be set to false.  
11311             </summary>
11312         </member>
11313         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.LowPriority">
11314             <summary>
11315             Do the work at low priority so as to avoid impacting the system. 
11316             </summary>
11317         </member>
11318         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.Zip">
11319             <summary>
11320             Normally WriteArchive creates a ZIP archive.  However it is possible that you only wish
11321             to do the merging and NGEN symbol generation.   Setting this property to false
11322             will supress the final ZIP operation.  
11323             </summary>
11324         </member>
11325         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLWriter.DeleteInputFile">
11326             <summary>
11327             Normally if you ZIP you will delete the original ETL file.  Setting this to false overrides this.  
11328             </summary>
11329         </member>
11330         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLWriter.GetNGenPdbs(System.String,Microsoft.Diagnostics.Symbols.SymbolReader,System.IO.TextWriter)">
11331             <summary>
11332             Returns the list of path names to the NGEN pdbs for any NGEN image in 'etlFile' that has
11333             any samples in it.   
11334             </summary>
11335         </member>
11336         <member name="T:Microsoft.Diagnostics.Tracing.ZippedETLReader">
11337             <summary>
11338             ZippedETLReader is a helper class that unpacks the ZIP files generated
11339             by the ZippedETLWriter class.    It can be smart about placing the 
11340             symbolic information in these files on the SymbolReader's path so that
11341             symbolic lookup 'just works'.  
11342             </summary>
11343         </member>
11344         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLReader.#ctor(System.String,System.IO.TextWriter)">
11345             <summary>
11346             Declares the intent to unzip an .ETL.ZIP file that contain an compressed ETL file 
11347             (and NGEN pdbs) from the archive at 'zipFilePath'.   If present, messages about
11348             the unpacking go to 'log'.   Note that this unpacking only happens when the
11349             UnpackArchive() method is called.  
11350             </summary>
11351         </member>
11352         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.Log">
11353             <summary>
11354             If set messages about unpacking go here. 
11355             </summary>
11356         </member>
11357         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.EtlFileName">
11358             <summary>
11359             The name of the ETL file to extract (it is an error if there is not exactly 1).  
11360             If not present it is derived by changing the extension of the zip archive. 
11361             </summary>
11362         </member>
11363         <member name="P:Microsoft.Diagnostics.Tracing.ZippedETLReader.SymbolDirectory">
11364             <summary>
11365             Where to put the symbols.  
11366             </summary>
11367         </member>
11368         <member name="M:Microsoft.Diagnostics.Tracing.ZippedETLReader.UnpackArchive">
11369             <summary>
11370             After setting any properties to override default behavior, calling this method
11371             will actually do the unpacking.  
11372             </summary>
11373         </member>
11374         <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule">
11375             <summary>
11376             A NativeSymbolModule represents symbol information for a native code module.   
11377             NativeSymbolModules can potentially represent Managed modules (which is why it is a subclass of that interface).  
11378             
11379             NativeSymbolModule should just be the CONTRACT for Native Symbols (some subclass implements
11380             it for a particular format like Windows PDBs), however today because we have only one file format we
11381             simply implement Windows PDBS here.   This can be factored out of this class when we 
11382             support other formats (e.g. Dwarf).
11383             
11384             To implmente support for Windows PDBs we use the Debug Interface Access (DIA).  See 
11385             http://msdn.microsoft.com/library/x93ctkx8.aspx for more.   I have only exposed what
11386             I need, and the interface is quite large (and not super pretty).  
11387             </summary>
11388         </member>
11389         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetTypeForHeapAllocationSite(System.UInt32)">
11390             <summary>
11391             Returns the name of the type allocated for a given relative virtual address.
11392             Returns null if the given rva does not match a known heap allocation site.
11393             </summary>
11394         </member>
11395         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.FindNameForRva(System.UInt32)">
11396             <summary>
11397             Finds a (method) symbolic name for a given relative virtual address of some code.  
11398             Returns an empty string if a name could not be found. 
11399             </summary>
11400         </member>
11401         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.FindNameForRva(System.UInt32,System.UInt32@)">
11402             <summary>
11403             Finds a (method) symbolic name for a given relative virtual address of some code.  
11404             Returns an empty string if a name could not be found.  
11405             symbolStartRva is set to the start of the symbol start 
11406             </summary>
11407         </member>
11408         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForRva(System.UInt32)">
11409             <summary>
11410             Fetches the source location (line number and file), given the relative virtual address (RVA)
11411             of the location in the executable.  
11412             </summary>
11413         </member>
11414         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForRva(System.UInt32,System.String@,System.UInt32@,System.Int32@)">
11415             <summary>
11416             This overload of SourceLocationForRva like the one that takes only an RVA will return a source location
11417             if it can.   However this version has additional support for NGEN images.   In the case of NGEN images 
11418             for .NET V4.6.1 or later), the NGEN images can't convert all the way back to a source location, but they 
11419             can convert the RVA back to IL artifacts (ilAssemblyName, methodMetadataToken, iloffset).  THese can then
11420             be used to look up the source line using the IL PDB.  
11421             
11422             Thus if the return value from this is null, check to see if the ilAssemblyName is non-null, and if not 
11423             you can look up the source location using that information.  
11424             </summary>
11425         </member>
11426         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.SourceLocationForManagedCode(System.UInt32,System.Int32)">
11427             <summary>
11428             Managed code is shipped as IL, so RVA to NATIVE mapping can't be placed in the PDB. Instead
11429             what is placed in the PDB is a mapping from a method's meta-data token and IL offset to source
11430             line number.  Thus if you have a metadata token and IL offset, you can again get a source location
11431             </summary>
11432         </member>
11433         <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GlobalSymbol">
11434             <summary>
11435             The symbol representing the module as a whole.  All global symbols are children of this symbol 
11436             </summary>
11437         </member>
11438         <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.PdbGuid">
11439             <summary>
11440             The a unique identifier that is used to relate the DLL and its PDB.   
11441             </summary>
11442         </member>
11443         <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.PdbAge">
11444             <summary>
11445             Along with the PdbGuid, there is a small integer 
11446             call the age is also used to find the PDB (it represents the different 
11447             post link transformations the DLL has undergone).  
11448             </summary>
11449         </member>
11450         <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile">
11451             <summary>
11452             A source file represents a source file from a PDB.  This is not just a string
11453             because the file has a build time path, a checksum, and it needs to be 'smart'
11454             to copy down the file if requested.  
11455             
11456             TODO We don't need this subclass.   We can have SourceFile simply a container
11457             that holds the BuildTimePath, hashType and hashValue.    The lookup of the
11458             source can then be put on NativeSymbolModule and called from SourceFile generically.  
11459             This makes the different symbol files more simmilar and is a nice simplification.  
11460             </summary>
11461         </member>
11462         <member name="P:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.Url">
11463             <summary>
11464             If the source file is directly available on the web (that is there is a Url that 
11465             can be used to fetch it with HTTP Get), then return that Url.   If no such publishing 
11466             point exists this property will return null.   
11467             </summary>
11468         </member>
11469         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.GetSourceFromSrcServer">
11470              <summary>
11471              Try to fetch the source file associated with 'buildTimeFilePath' from the symbol server 
11472              information from the PDB from 'pdbPath'.   Will return a path to the returned file (uses 
11473              SourceCacheDirectory associated symbol reader for context where to put the file), 
11474              or null if unsuccessful.  
11475              
11476              There is a tool called pdbstr associated with srcsrv that basically does this.  
11477                  pdbstr -r -s:srcsrv -p:PDBPATH
11478              will dump it. 
11479             
11480              The basic flow is 
11481              
11482              There is a variables section and a files section
11483              
11484              The file section is a list of items separated by *.   The first is the path, the rest are up to you
11485              
11486              You form a command by using the SRCSRVTRG variable and substituting variables %var1 where var1 is the first item in the * separated list
11487              There are special operators %fnfile%(XXX), etc that manipulate the string XXX (get file name, translate \ to / ...
11488              
11489              If what is at the end is a valid URL it is looked up.   
11490              </summary>
11491         </member>
11492         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.GetSourceServerTargetAndCommand(System.String@,System.String@,System.String)">
11493             <summary>
11494             Parse the 'srcsrv' stream in a PDB file and return the target for SourceFile
11495             represented by the 'this' pointer.   This target is iether a ULR or a local file
11496             path.  
11497             
11498             You can dump the srcsrv stream using a tool called pdbstr 
11499                 pdbstr -r -s:srcsrv -p:PDBPATH
11500             
11501             The target in this stream is called SRCSRVTRG and there is another variable SRCSRVCMD
11502             which represents the command to run to fetch the soruce into SRCSRVTRG
11503             
11504             To form the target, the stream expect you to private a %targ% variable which is a directory
11505             prefix to tell where to put the source file being fetched.   If the source file is
11506             available via a URL this variable is not needed.  
11507             
11508              ********* This is a typical example of what is in a PDB with source server information. 
11509              SRCSRV: ini ------------------------------------------------
11510              VERSION=3
11511              INDEXVERSION=2
11512              VERCTRL=Team Foundation Server
11513              DATETIME=Thu Mar 10 16:15:55 2016
11514              SRCSRV: variables ------------------------------------------
11515              TFS_EXTRACT_CMD=tf.exe view /version:%var4% /noprompt "$%var3%" /server:%fnvar%(%var2%) /output:%srcsrvtrg%
11516              TFS_EXTRACT_TARGET=%targ%\%var2%%fnbksl%(%var3%)\%var4%\%fnfile%(%var1%)
11517              VSTFDEVDIV_DEVDIV2=http://vstfdevdiv.redmond.corp.microsoft.com:8080/DevDiv2
11518              SRCSRVVERCTRL=tfs
11519              SRCSRVERRDESC=access
11520              SRCSRVERRVAR=var2
11521              SRCSRVTRG=%TFS_extract_target%
11522              SRCSRVCMD=%TFS_extract_cmd%
11523              SRCSRV: source files ---------------------------------            ------
11524              f:\dd\externalapis\legacy\vctools\vc12\inc\cvconst.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/cvconst.h*1363200
11525              f:\dd\externalapis\legacy\vctools\vc12\inc\cvinfo.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/cvinfo.h*1363200
11526              f:\dd\externalapis\legacy\vctools\vc12\inc\vc\ammintrin.h*VSTFDEVDIV_DEVDIV2*/DevDiv/Fx/Rel/NetFxRel3Stage/externalapis/legacy/vctools/vc12/inc/vc/ammintrin.h*1363200
11527              SRCSRV: end ------------------------------------------------
11528              
11529              ********* And here is a more modern one where the source code is available via a URL.  
11530              SRCSRV: ini ------------------------------------------------
11531              VERSION=2
11532              INDEXVERSION=2
11533              VERCTRL=http
11534              SRCSRV: variables ------------------------------------------
11535              SRCSRVTRG=https://nuget.smbsrc.net/src/%fnfile%(%var1%)/%var2%/%fnfile%(%var1%)
11536              SRCSRVCMD=
11537              SRCSRVVERCTRL=http
11538              SRCSRV: source files ---------------------------------------
11539              c:\Users\rafalkrynski\Documents\Visual Studio 2012\Projects\DavidSymbolSourceTest\DavidSymbolSourceTest\Demo.cs*SQPvxWBMtvANyCp8Pd3OjoZEUgpKvjDVIY1WbaiFPMw=
11540              SRCSRV: end ------------------------------------------------
11541              
11542             </summary>
11543             <param name="target">returns the target source file path</param>
11544             <param name="command">returns the command to fetch the target source file</param>
11545             <param name="localDirectoryToPlaceSourceFiles">Specify the value for %targ% variable. This is the
11546             directory where source files can be fetched to.  Typically the returned file is under this directory
11547             If the value is null, %targ% variable be emtpy.  This assumes that the resulting file is something
11548             that does not need to be copied to the machine (either a URL or a file that already exists)</param>
11549         </member>
11550         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.MicrosoftPdbSourceFile.FindTfExe">
11551             <summary>
11552             Returns the location of the tf.exe executable or 
11553             </summary>
11554             <returns></returns>
11555         </member>
11556         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetSrcSrvStream">
11557             <summary>
11558             Gets the 'srcsvc' data stream from the PDB and return it in as a string.   Returns null if it is not present. 
11559             
11560             There is a tool called pdbstr associated with srcsrv that basically does this.  
11561                 pdbstr -r -s:srcsrv -p:PDBPATH
11562             will dump it. 
11563             </summary>
11564         </member>
11565         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetMergedAssembliesMap">
11566             <summary>
11567             For Project N modules it returns the list of pre merged IL assemblies and the corresponding mapping.
11568             </summary>
11569         </member>
11570         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetEmbeddedILImage">
11571             <summary>
11572             For ProjectN modules, gets the merged IL image embedded in the .PDB (only valid for single-file compilation)
11573             </summary>
11574         </member>
11575         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetPseudoAssembly">
11576             <summary>
11577             For ProjectN modules, gets the pseudo-assembly embedded in the .PDB, if there is one.
11578             </summary>
11579             <returns></returns>
11580         </member>
11581         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetFuncMDTokenMap">
11582             <summary>
11583             For ProjectN modules, gets the binary blob that describes the mapping from RVAs to methods.
11584             </summary>
11585         </member>
11586         <member name="M:Microsoft.Diagnostics.Symbols.NativeSymbolModule.GetTypeMDTokenMap">
11587             <summary>
11588             For ProjectN modules, gets the binary blob that describes the mapping from RVAs to types.
11589             </summary>
11590             <returns></returns>
11591         </member>
11592         <member name="T:Microsoft.Diagnostics.Symbols.NativeSymbolModule.HeapAllocationTypeInfo">
11593             <summary>
11594             This static class contains the GetTypeName method for retrieving the type name of 
11595             a heap allocation site. 
11596             
11597             See https://github.com/KirillOsenkov/Dia2Dump/blob/master/PrintSymbol.cpp for more details
11598             </summary>
11599         </member>
11600         <member name="T:Microsoft.Diagnostics.Symbols.Symbol">
11601             <summary>
11602             Represents a single symbol in a PDB file.  
11603             </summary>
11604         </member>
11605         <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Name">
11606             <summary>
11607             The name for the symbol 
11608             </summary>
11609         </member>
11610         <member name="P:Microsoft.Diagnostics.Symbols.Symbol.RVA">
11611             <summary>
11612             The relative virtual address (offset from the image base when loaded in memory) of the symbol
11613             </summary>
11614         </member>
11615         <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Length">
11616             <summary>
11617             The length of the memory that the symbol represents.  
11618             </summary>
11619         </member>
11620         <member name="P:Microsoft.Diagnostics.Symbols.Symbol.Id">
11621             <summary>
11622             A small integer identifier tat is unique for that symbol in the DLL. 
11623             </summary>
11624         </member>
11625         <member name="P:Microsoft.Diagnostics.Symbols.Symbol.UndecoratedName">
11626             <summary>
11627             Decorated names are names that most closely resemble the source code (have overloading).  
11628             However when the linker does not directly support all the expressiveness of the
11629             source language names are encoded to represent this.   This return this encoded name. 
11630             </summary>
11631         </member>
11632         <member name="M:Microsoft.Diagnostics.Symbols.Symbol.InSameSection(Microsoft.Diagnostics.Symbols.Symbol,Microsoft.Diagnostics.Symbols.Symbol)">
11633             <summary>
11634             Returns true if the two symbols live in the same linker section (e.g. text,  data ...)
11635             </summary>
11636         </member>
11637         <member name="M:Microsoft.Diagnostics.Symbols.Symbol.GetChildren">
11638             <summary>
11639             Returns the children of the symbol.  Will return null if there are no children.  
11640             </summary>
11641         </member>
11642         <member name="M:Microsoft.Diagnostics.Symbols.Symbol.GetChildren(Dia2Lib.SymTagEnum)">
11643             <summary>
11644             Returns the children of the symbol, with the given tag.  Will return null if there are no children.  
11645             </summary>
11646         </member>
11647         <member name="M:Microsoft.Diagnostics.Symbols.Symbol.CompareTo(Microsoft.Diagnostics.Symbols.Symbol)">
11648             <summary>
11649             Compares the symbol by their relative virtual address (RVA)
11650             </summary>
11651         </member>
11652         <member name="M:Microsoft.Diagnostics.Symbols.Symbol.ToString">
11653             <summary>
11654             override
11655             </summary>
11656         </member>
11657         <member name="T:Microsoft.Diagnostics.Symbols.SymbolPath">
11658             <summary>
11659             SymPath is a class that knows how to parse _NT_SYMBOL_PATH syntax.  
11660             </summary>
11661         </member>
11662         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.SymbolPathFromEnvironment">
11663             <summary>
11664             This allows you to set the _NT_SYMBOL_PATH as a from the windows environment.    
11665             </summary>
11666         </member>
11667         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.CleanSymbolPath">
11668             <summary>
11669             This 'cleans up' a symbol path.  In particular
11670             Empty ones are replaced with good defaults (symweb or msdl)
11671             All symbol server specs have local caches (%Temp%\SymbolCache if nothing else is specified).  
11672             
11673             Note that this routine does NOT update _NT_SYMBOL_PATH.  
11674             </summary>
11675         </member>
11676         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.MicrosoftSymbolServerPath">
11677             <summary>
11678             Returns the string representing a symbol path for the 'standard' Microsoft symbol servers.   
11679             This returns the public msdl.microsoft.com server if outside Microsoft.  
11680             </summary>
11681         </member>
11682         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.#ctor">
11683             <summary>
11684             Create an empty symbol path
11685             </summary>
11686         </member>
11687         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.#ctor(System.String)">
11688             <summary>
11689             Create a symbol that represents 'path' (the standard semicolon separated list of locations)
11690             </summary>
11691         </member>
11692         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPath.Elements">
11693             <summary>
11694             Returns the List of elements in the symbol path. 
11695             </summary>
11696         </member>
11697         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Add(System.String)">
11698             <summary>
11699             Append all the elements in the semicolon separated list, 'path', to the symbol path represented by 'this'. 
11700             returns the 'this' pointer
11701             </summary>
11702         </member>
11703         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Add(Microsoft.Diagnostics.Symbols.SymbolPathElement)">
11704             <summary>
11705             append a new symbol path element to the beginning of the symbol path represented by 'this'.
11706             returns the 'this' pointer
11707             </summary>
11708         </member>
11709         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Insert(System.String)">
11710             <summary>
11711             insert all the elements in the semicolon separated list, 'path' to the beginning of the symbol path represented by 'this'.
11712             returns the 'this' pointer
11713             </summary>
11714         </member>
11715         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.Insert(Microsoft.Diagnostics.Symbols.SymbolPathElement)">
11716             <summary>
11717             insert a new symbol path element to the beginning of the symbol path represented by 'this'.
11718             returns the 'this' pointer
11719             </summary>
11720         </member>
11721         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.DefaultSymbolCache(System.Boolean)">
11722             <summary>
11723             If you need to cache files locally, put them here.  It is defined
11724             to be the first local path of a SRV* qualification or %TEMP%\SymbolCache
11725             if not is present.
11726             </summary>
11727         </member>
11728         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.InsureHasCache(System.String)">
11729             <summary>
11730             People can use symbol servers without a local cache.  This is bad, add one if necessary. 
11731             </summary>
11732         </member>
11733         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.LocalOnly">
11734             <summary>
11735             Removes all references to remote paths.  This insures that network issues don't cause grief.  
11736             </summary>
11737         </member>
11738         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.CacheFirst">
11739             <summary>
11740             Create a new symbol path which first search all machine local locations (either explicit location or symbol server cache locations)
11741             followed by all non-local symbol server.   This produces better behavior (If you can find it locally it will be fast)
11742             </summary>
11743         </member>
11744         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ToString">
11745             <summary>
11746             Returns the string representation (semicolon separated) for the symbol path.  
11747             </summary>
11748             <returns></returns>
11749         </member>
11750         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ToXml(System.IO.TextWriter,System.String)">
11751             <summary>
11752             Writes an XML representation of the symbol path to 'writer'
11753             </summary>
11754         </member>
11755         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPath.ComputerNameExists(System.String,System.Int32)">
11756             <summary>
11757             Checks to see 'computerName' exists (there is a Domain Names Service (DNS) reply to it)
11758             This routine times out relative quickly (after 700 msec) if there is a problem reaching 
11759             the computer, and returns false.  
11760             </summary>
11761         </member>
11762         <member name="F:Microsoft.Diagnostics.Symbols.SymbolPath.s_MicrosoftSymbolServerPath">
11763             <summary>
11764             This is the backing field for the lazily-computed <see cref="P:Microsoft.Diagnostics.Symbols.SymbolPath.MicrosoftSymbolServerPath"/> property.
11765             </summary>
11766         </member>
11767         <member name="T:Microsoft.Diagnostics.Symbols.SymbolPathElement">
11768             <summary>
11769             SymPathElement represents the text between the semicolons in a symbol path.  It can be a symbol server specification or a simple directory path. 
11770             
11771             SymPathElement follows functional conventions.  After construction everything is read-only. 
11772             </summary>
11773         </member>
11774         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.IsSymServer">
11775             <summary>
11776             Returns true if this element of the symbol server path a symbol server specification
11777             </summary>
11778         </member>
11779         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.Cache">
11780             <summary>
11781             Returns the local cache for a symbol server specification.  returns null if not specified
11782             </summary>
11783         </member>
11784         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.Target">
11785             <summary>
11786             Returns location to look for symbols.  This is either a directory specification or an URL (for symbol servers)
11787             This can be null if it is not specified (for cache-only paths).  
11788             </summary>
11789         </member>
11790         <member name="P:Microsoft.Diagnostics.Symbols.SymbolPathElement.IsRemote">
11791             <summary>
11792             IsRemote returns true if it looks like the target is not on the local machine.
11793             </summary>
11794         </member>
11795         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.ToString">
11796             <summary>
11797             Returns the string repsentation for the symbol server path element (e.g. SRV*c:\temp*\\symbols\symbols)
11798             </summary>
11799         </member>
11800         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.Equals(System.Object)">
11801             <summary>
11802             Implements object interface
11803             </summary>
11804         </member>
11805         <member name="M:Microsoft.Diagnostics.Symbols.SymbolPathElement.GetHashCode">
11806             <summary>
11807             Implements object interface
11808             </summary>
11809         </member>
11810         <member name="T:Microsoft.Diagnostics.Symbols.SymbolReader">
11811             <summary>
11812             A symbol reader represents something that can FIND pdbs (either on a symbol server or via a symbol path)
11813             Its job is to find a full path a PDB.  Then you can use OpenSymbolFile to get a SymbolReaderModule and do more. 
11814             </summary>
11815         </member>
11816         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.#ctor(System.IO.TextWriter,System.String)">
11817             <summary>
11818             Opens a new SymbolReader.   All diagnostics messages about symbol lookup go to 'log'.  
11819             </summary>
11820         </member>
11821         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindSymbolFilePathForModule(System.String,System.Boolean)">
11822             <summary>
11823             Finds the symbol file for 'exeFilePath' that exists on the current machine (we open
11824             it to find the needed info).   Uses the SymbolReader.SymbolPath (including Symbol servers) to 
11825             look up the PDB, and will download the PDB to the local cache if necessary.   It will also
11826             generate NGEN pdbs into the local symbol cache unless SymbolReaderFlags.NoNGenPDB is set.   
11827             
11828             By default for NGEN images it returns the NGEN pdb.  However if 'ilPDB' is true it returns
11829             the IL PDB.  
11830             
11831             Returns null if the pdb can't be found.  
11832             </summary>
11833         </member>
11834         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindSymbolFilePath(System.String,System.Guid,System.Int32,System.String,System.String,System.Boolean)">
11835             <summary>
11836             Find the complete PDB path, given just the simple name (filename + pdb extension) as well as its 'signature', 
11837             which uniquely identifies it (on symbol servers).   Uses the SymbolReader.SymbolPath (including Symbol servers) to 
11838             look up the PDB, and will download the PDB to the local cache if necessary.  
11839             
11840             A Guid of Empty, means 'unknown' and will match the first PDB that matches simple name.  Thus it is unsafe. 
11841             
11842             Returns null if the PDB could  not be found
11843             </summary>
11844             <param name="pdbFileName">The name of the PDB file (we only use the file name part)</param>
11845             <param name="pdbIndexGuid">The GUID that is embedded in the DLL in the debug information that allows matching the DLL and the PDB</param>
11846             <param name="pdbIndexAge">Tools like BBT transform a DLL into another DLL (with the same GUID) the 'pdbAge' is a small integers
11847             that indicates how many transformations were done</param>
11848             <param name="dllFilePath">If you know the path to the DLL for this pdb add it here.  That way we can probe next to the DLL
11849             for the PDB file.</param>
11850             <param name="fileVersion">This is an optional string that identifies the file version (the 'Version' resource information.  
11851             It is used only to provided better error messages for the log.</param>
11852         </member>
11853         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.FindExecutableFilePath(System.String,System.Int32,System.Int32,System.Boolean)">
11854             <summary>
11855             This API looks up an executable file, by its build-timestamp and size (on a symbol server),  'fileName' should be 
11856             a simple name (no directory), and you need the buildTimeStamp and sizeOfImage that are found in the PE header.
11857             
11858             Returns null if it cannot find anything.  
11859             </summary>
11860         </member>
11861         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.OpenSymbolFile(System.String)">
11862             <summary>
11863             Given the path name to a particular PDB file, load it so that you can resolve symbols in it.  
11864             </summary>
11865             <param name="pdbFilePath">The name of the PDB file to open.</param>
11866             <returns>The SymbolReaderModule that represents the information in the symbol file (PDB)</returns>
11867         </member>
11868         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.OpenNativeSymbolFile(System.String)">
11869             <summary>
11870             Like OpenSymbolFile, which opens a PDB, but this version will fail (return null)
11871             if it is not WindowsSymbolModule.  It is a shortcut for OpenSymbolFile as NativeSymbolModule
11872             </summary>
11873         </member>
11874         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SymbolPath">
11875             <summary>
11876             The symbol path used to look up PDB symbol files.   Set when the reader is initialized.  
11877             </summary>
11878         </member>
11879         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SourcePath">
11880             <summary>
11881             The paths used to look up source files.  defaults to _NT_SOURCE_PATH.  
11882             </summary>
11883         </member>
11884         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SymbolCacheDirectory">
11885             <summary>
11886             Where symbols are downloaded if needed.   Derived from symbol path.  It is the first
11887             directory on the local machine in a SRV*DIR*LOC spec, and %TEMP%\SymbolCache otherwise.  
11888             </summary>
11889         </member>
11890         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.AuthorizationHeaderForSourceLink">
11891             <summary>
11892             Authorization header to be ued when making requests to source server (only for SourceLink)
11893             </summary>
11894         </member>
11895         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SourceCacheDirectory">
11896             <summary>
11897             The place where source is downloaded from a source server.  
11898             </summary>
11899         </member>
11900         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.Options">
11901             <summary>
11902             Is this symbol reader limited to just the local machine cache or not?
11903             </summary>
11904         </member>
11905         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.SecurityCheck">
11906             <summary>
11907             We call back on this when we find a PDB by probing in 'unsafe' locations (like next to the EXE or in the Built location)
11908             If this function returns true, we assume that it is OK to use the PDB.  
11909             </summary>
11910         </member>
11911         <member name="E:Microsoft.Diagnostics.Symbols.SymbolReader.OnSymbolFileFound">
11912             <summary>
11913             If set OnSymbolFileFound will be called when a PDB file is found.  
11914             It is passed the complete local file path, the PDB Guid (may be Guid.Empty) and PDB age.
11915             </summary>
11916         </member>
11917         <member name="P:Microsoft.Diagnostics.Symbols.SymbolReader.Log">
11918             <summary>
11919             A place to log additional messages 
11920             </summary>
11921         </member>
11922         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GenerateNGenSymbolsForModule(System.String,System.String)">
11923             <summary>
11924             Given a full filename path to an NGEN image, insure that there is an NGEN image for it
11925             in the symbol cache.  If one already exists, this method simply returns that.   If not
11926             it is generated and placed in the symbol cache.  When generating the PDB this routine
11927             attempt to resolve line numbers, which DOES require looking up the PDB for the IL image. 
11928             Thus routine may do network accesses (to download IL PDBs).  
11929             
11930             Note that FindSymbolFilePathForModule calls this, so normally you don't need to call 
11931             this method directly.  
11932             
11933             By default it places the PDB in the SymbolCacheDirectory using normal symbol server 
11934             cache conventions (PDBNAME\Guid-AGE\Name).   You can override this by specifying
11935             the outputDirectory parameter.  
11936             
11937             <returns>The full path name of the PDB generated for the NGEN image.</returns>
11938             </summary>
11939         </member>
11940         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.HandleNetCorePdbs(System.String,System.String)">
11941             <summary>
11942             Given a NGEN (or ReadyToRun) imge 'ngenImageFullPath' and the PDB path
11943             that we WANT it to generate generate the PDB.  Returns either pdbPath 
11944             on success or null on failure.  
11945             
11946             TODO can be removed when we properly publish the NGEN pdbs as part of build.  
11947             </summary>
11948         </member>
11949         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.Dispose">
11950             <summary>
11951              Called when you are done with the symbol reader.
11952              Closes all opened symbol files.
11953             </summary>
11954         </member>
11955         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.PdbMatches(System.String,System.Guid,System.Int32,System.Boolean)">
11956             <summary>
11957             Returns true if 'filePath' exists and is a PDB that has pdbGuid and pdbAge.  
11958             if pdbGuid == Guid.Empty, then the pdbGuid and pdbAge checks are skipped. 
11959             </summary>
11960         </member>
11961         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetPhysicalFileFromServer(System.String,System.String,System.String,System.Predicate{System.String})">
11962             <summary>
11963             Fetches a file from the server 'serverPath' with pdb signature path 'pdbSigPath' (concatinate them with a / or \ separator
11964             to form a complete URL or path name).   It will place the file in 'fullDestPath'   It will return true if successful
11965             If 'contentTypeFilter is present, this predicate is called with the URL content type (e.g. application/octet-stream)
11966             and if it returns false, it fails.   This insures that things that are the wrong content type (e.g. redirects to 
11967             some sort of login) fail cleanly.  
11968             
11969             You should probably be using GetFileFromServer
11970             </summary>
11971             <param name="serverPath">path to server (e.g. \\symbols\symbols or http://symweb) </param>
11972             <param name="pdbIndexPath">pdb path with signature (e.g clr.pdb/1E18F3E494DC464B943EA90F23E256432/clr.pdb)</param>
11973             <param name="fullDestPath">the full path of where to put the file locally </param>
11974             <param name="contentTypeFilter">if present this allows you to filter out urls that dont match this ContentType.</param>
11975         </member>
11976         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.BuildFullUri(System.String,System.String)">
11977             <summary>
11978             Build the full uri from server path and pdb index path
11979             </summary>
11980         </member>
11981         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.CopyStreamToFile(System.IO.Stream,System.String,System.String,System.Boolean@)">
11982             <summary>
11983             This just copies a stream to a file path with logging.  
11984             </summary>
11985         </member>
11986         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetFileFromServer(System.String,System.String,System.String)">
11987             <summary>
11988             Looks up 'fileIndexPath' on the server 'urlForServer' (concatenate to form complete URL) copying the file to 
11989             'targetPath' and returning targetPath name there (thus it is always a local file).  Unlike  GetPhysicalFileFromServer, 
11990             GetFileFromServer understands how to deal with compressed files and file.ptr (redirection).  
11991             </summary>
11992             <returns>targetPath or null if the file cannot be found.</returns>
11993         </member>
11994         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.GetClrDirectoryForNGenImage(System.String,System.IO.TextWriter,System.String@)">
11995             <summary>
11996             Deduce the path to where CLR.dll (and in particular NGEN.exe live for the NGEN image 'ngenImagepath')
11997             Returns null if it can't be found.  If the NGEN image is associated with a private runtime return 
11998             that value in 'privateVerStr'
11999             </summary>
12000         </member>
12001         <member name="M:Microsoft.Diagnostics.Symbols.SymbolReader.BypassSystem32FileRedirection(System.String)">
12002             <summary>
12003             We may be a 32 bit app which has File system redirection turned on
12004             Morph System32 to SysNative in that case to bypass file system redirection         
12005             </summary>
12006         </member>
12007         <member name="T:Microsoft.Diagnostics.Symbols.ManagedSymbolModule">
12008             <summary>
12009             A SymbolModule represents a file that contains symbolic information 
12010             (a Windows PDB or Portable PDB).  This is the interface that is independent 
12011             of what kind of symbolic file format you use.  Becase portable PDBs only
12012             support managed code, this shared interface is by necessity the interface
12013             for managed code only (currently only Windows PDBs support native code).  
12014             </summary>
12015         </member>
12016         <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.ExePath">
12017             <summary>
12018             This is the EXE associated with the Pdb.  It may be null or an invalid path.  It is used
12019             to help look up source code (it is implicitly part of the Source Path search) 
12020             </summary>
12021         </member>
12022         <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SymbolFilePath">
12023             <summary>
12024             The path name to the PDB itself.  Might be empty if the symbol information is in memory.  
12025             </summary>
12026         </member>
12027         <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.PdbGuid">
12028             <summary>
12029             The Guid that is used to uniquely identify the DLL-PDB pair (used for symbol servers)
12030             </summary>
12031         </member>
12032         <member name="P:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SymbolReader">
12033             <summary>
12034              Fetches the SymbolReader assoicated with this SymbolModule.  This is where shared
12035              attributes (like SourcePath, SymbolPath etc) are found.  
12036             </summary>
12037         </member>
12038         <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.SourceLocationForManagedCode(System.UInt32,System.Int32)">
12039             <summary>
12040             Given a method and an IL offset, return a source location (line number and file).   
12041             Returns null if it could not find it.  
12042             </summary>
12043         </member>
12044         <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.GetSourceLinkJson">
12045             <summary>
12046             If the symbol file format supports SourceLink JSON this routine should be overriden
12047             to return it.  
12048             </summary>
12049         </member>
12050         <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.GetUrlForFilePathUsingSourceLink(System.String)">
12051             <summary>
12052             Return a URL for 'buildTimeFilePath' using the source link mapping (that 'GetSourceLinkJson' fetched)
12053             Returns null if there is URL using the SourceLink 
12054             </summary>
12055             <param name="buildTimeFilePath"></param>
12056             <returns></returns>
12057         </member>
12058         <member name="M:Microsoft.Diagnostics.Symbols.ManagedSymbolModule.ParseSourceLinkJson(System.String)">
12059             <summary>
12060             Parses SourceLink information and returns a list of filepath -> url Prefix tuples.  
12061             </summary>  
12062         </member>
12063         <member name="T:Microsoft.Diagnostics.Symbols.SourceLocation">
12064             <summary>
12065             A SourceLocation represents a point in the source code.  That is the file and the line number.  
12066             </summary>
12067         </member>
12068         <member name="P:Microsoft.Diagnostics.Symbols.SourceLocation.SourceFile">
12069             <summary>
12070             The source file for the code
12071             </summary>
12072         </member>
12073         <member name="P:Microsoft.Diagnostics.Symbols.SourceLocation.LineNumber">
12074             <summary>
12075             The line number for the code.
12076             </summary>
12077         </member>
12078         <member name="T:Microsoft.Diagnostics.Symbols.SymbolReaderOptions">
12079             <summary>
12080             SymbolReaderFlags indicates preferences on how aggressively symbols should be looked up.  
12081             </summary>
12082         </member>
12083         <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.None">
12084             <summary>
12085             No options this is the common case, where you want to look up everything you can. 
12086             </summary>
12087         </member>
12088         <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.CacheOnly">
12089             <summary>
12090             Only fetch the PDB if it lives in the symbolCacheDirectory (is local an is generated).  
12091             This will generate NGEN pdbs unless the NoNGenPDBs flag is set. 
12092             </summary>
12093         </member>
12094         <member name="F:Microsoft.Diagnostics.Symbols.SymbolReaderOptions.NoNGenSymbolCreation">
12095             <summary>
12096             No NGEN PDB generation.  
12097             </summary>
12098         </member>
12099         <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.BuildTimeFilePath">
12100             <summary>
12101             The path of the file at the time the source file was built.   We also look here when looking for the source.  
12102             </summary>
12103         </member>
12104         <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.Url">
12105             <summary>
12106             If the source file is directly available on the web (that is there is a Url that 
12107             can be used to fetch it with HTTP Get), then return that Url.   If no such publishing 
12108             point exists this property will return null.   
12109             </summary>
12110         </member>
12111         <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.GetSourceFile(System.Boolean)">
12112             <summary>
12113             This may fetch things from the source server, and thus can be very slow, which is why it is not a property. 
12114             returns a path to the file on the local machine (often in some machine local cache). 
12115             If requireChecksumMatch == false then you can see if you have an exact match by calling ChecksumMatches
12116             (and if there is a checksum with HasChecksum). 
12117             </summary>
12118         </member>
12119         <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.HasChecksum">
12120             <summary>
12121             true if the PDB has a checksum for the data in the source file. 
12122             </summary>
12123         </member>
12124         <member name="P:Microsoft.Diagnostics.Symbols.SourceFile.ChecksumMatches">
12125             <summary>
12126             If GetSourceFile is called and 'requireChecksumMatch' == false then you can call this property to 
12127             determine if the checksum actually matched or not.   This will return true if the original
12128             PDB does not have a checksum (HasChecksum == false)
12129             </summary>; 
12130         </member>
12131         <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.GetSourceFromSrcServer">
12132             <summary>
12133             Look up the source from the source server.  Returns null if it can't find the source
12134             By default this simply uses the Url to look it up on the web.   If 'Url' returns null
12135             so does this.   
12136             </summary>
12137         </member>
12138         <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.ProbeForBestMatch(System.String)">
12139             <summary>
12140             Given 'fileName' which is a path to a file (which may  not exist), set 
12141             _filePath and _checksumMatches appropriately.    Namely _filePath should
12142             always be the 'best' candidate for the source file path (matching checksum
12143             wins, otherwise first existing file wins).  
12144             
12145             Returns true if we have a perfect match (no additional probing needed).  
12146             </summary>
12147         </member>
12148         <member name="M:Microsoft.Diagnostics.Symbols.SourceFile.ComputeChecksumMatch(System.String)">
12149             <summary>
12150             Returns true if 'filePath' matches the checksum OR we don't have a checkdum
12151             (thus if we pass what validity check we have).    
12152             </summary>
12153         </member>
12154         <member name="T:Microsoft.Diagnostics.Utilities.DirectoryUtilities">
12155             <summary>
12156             General purpose utilities dealing with archiveFile system directories. 
12157             </summary>
12158         </member>
12159         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Copy(System.String,System.String)">
12160             <summary>
12161             SafeCopy sourceDirectory to directoryToVersion recursively. The target directory does
12162             no need to exist
12163             </summary>
12164         </member>
12165         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Copy(System.String,System.String,System.IO.SearchOption)">
12166             <summary>
12167             SafeCopy all files from sourceDirectory to directoryToVersion.  If searchOptions == AllDirectories
12168             then the copy is recursive, otherwise it is just one level.  The target directory does not
12169             need to exist. 
12170             </summary>
12171         </member>
12172         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.Clean(System.String)">
12173             <summary>
12174             Clean is sort of a 'safe' recursive delete of a directory.  It either deletes the
12175             files or moves them to '*.deleting' names.  It deletes directories that are completely
12176             empty.  Thus it will do a recursive delete when that is possible.  There will only 
12177             be *.deleting files after this returns.  It returns the number of files and directories
12178             that could not be deleted.  
12179             </summary>
12180         </member>
12181         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.DeleteOldest(System.String,System.Int32)">
12182             <summary>
12183             Removes the oldest directories directly under 'directoryPath' so that 
12184             only 'numberToKeep' are left. 
12185             </summary>
12186             <param variable="directoryPath">Directory to removed old files from.</param>
12187             <param variable="numberToKeep">The number of files to keep.</param>
12188             <returns> true if there were no errors deleting files</returns>
12189         </member>
12190         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.GetFiles(System.String,System.String,System.IO.SearchOption)">
12191              <summary>
12192              DirectoryUtilities.GetFiles is basicaly the same as Directory.GetFiles 
12193              however it returns IEnumerator, which means that it lazy.  This is very important 
12194              for large directory trees.  A searchPattern can be specified (Windows wildcard conventions)
12195              that can be used to filter the set of archiveFile names returned. 
12196              
12197              Suggested Usage
12198              
12199                  foreach(string fileName in DirectoryUtilities.GetFiles("c:\", "*.txt")){
12200                      Console.WriteLine(fileName);
12201                  }
12202             
12203              </summary>
12204              <param variable="directoryPath">The base directory to enumerate</param>
12205              <param variable="searchPattern">A pattern to filter the names (windows filename wildcards * ?)</param>
12206              <param variable="searchOptions">Indicate if the search is recursive or not.  </param>
12207              <returns>The enumerator for all archiveFile names in the directory (recursively). </returns>
12208         </member>
12209         <member name="M:Microsoft.Diagnostics.Utilities.DirectoryUtilities.GetFiles(System.String,System.String)">
12210             <summary>
12211             Returns a lazy enumerable for every path in 'directoryName' that matchs 'searchPattern' (default is *)MO
12212             </summary>
12213         </member>
12214         <member name="T:Microsoft.Diagnostics.Utilities.FileUtilities">
12215             <summary>
12216             General purpose utilities dealing with archiveFile system files. 
12217             </summary>
12218         </member>
12219         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ReadAllLines(System.String)">
12220             <summary>
12221             GetLines works much like File.ReadAllLines, however instead of returning a
12222             array of lines, it returns a IEnumerable so that the archiveFile is not read all
12223             at once.  This allows 'foreach' syntax to be used on very large files.  
12224             
12225             Suggested Usage
12226             
12227                 foreach(string lineNumber in FileUtilities.GetLines("largeFile.txt")){
12228                     Console.WriteLine(lineNumber);
12229                 }
12230             </summary>
12231             <param variable="fileName">The base directory to enumerate.</param>
12232             <returns>The enumerator for all lines in the archiveFile.</returns>
12233         </member>
12234         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ExpandWildcards(System.String[],System.IO.SearchOption)">
12235             <summary>
12236             Given archiveFile specifications possibly with wildcards in them
12237             Returns an enumerator that returns each expanded archiveFile name in turn. 
12238             
12239             If searchOpt is AllDirectories it does a recursive match. 
12240             </summary>
12241         </member>
12242         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceDelete(System.String)">
12243             <summary>
12244             Delete works much like File.Delete, except that it will succeed if the
12245             archiveFile does not exist, and will rename the archiveFile so that even if the archiveFile 
12246             is locked the original archiveFile variable will be made available.  
12247             
12248             It renames the  archiveFile with a '[num].deleting'.  These files might be left 
12249             behind.  
12250             
12251             It returns true if it was completely successful.  If there is a *.deleting
12252             archiveFile left behind, it returns false. 
12253             </summary>
12254             <param variable="fileName">The variable of the archiveFile to delete</param>
12255         </member>
12256         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.TryDelete(System.String)">
12257             <summary>
12258             Try to delete 'fileName' catching any exception.  Returns true if successful.   It will delete read-only files.  
12259             </summary>  
12260         </member>
12261         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceCopy(System.String,System.String)">
12262             <summary>
12263             SafeCopy sourceFile to destinationFile.  If the destination exists
12264             used ForceDelete to get rid of it first.  
12265             </summary>
12266         </member>
12267         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.ForceMove(System.String,System.String)">
12268             <summary>
12269             Moves sourceFile to destinationFile.  If the destination exists
12270             used ForceDelete to get rid of it first.  
12271             </summary>
12272         </member>
12273         <member name="M:Microsoft.Diagnostics.Utilities.FileUtilities.Equals(System.String,System.String)">
12274             <summary>
12275             Returns true if the two file have exactly the same content (as a stream of bytes). 
12276             </summary>
12277         </member>
12278         <member name="T:Microsoft.Diagnostics.Utilities.PathUtil">
12279             <summary>
12280             Utilities associated with file name paths. 
12281             </summary>
12282         </member>
12283         <member name="M:Microsoft.Diagnostics.Utilities.PathUtil.PathRelativeTo(System.String,System.String)">
12284             <summary>
12285             Given a path and a superdirectory path relativeToDirectory compute the relative path (the path from) relativeToDirectory
12286             </summary>
12287         </member>
12288         <member name="T:Microsoft.Diagnostics.Utilities.StreamUtilities">
12289             <summary>
12290             General utilities associated with streams. 
12291             </summary>
12292         </member>
12293         <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyFromFile(System.String,System.IO.Stream)">
12294             <summary>
12295             Open the 'fromFilePath' and write its contents to 'toStream'
12296             </summary>
12297         </member>
12298         <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyToFile(System.IO.Stream,System.String)">
12299             <summary>
12300             Open the 'toFilePath' for writing and write the contents of 'fromStream' to it
12301             </summary>
12302         </member>
12303         <member name="M:Microsoft.Diagnostics.Utilities.StreamUtilities.CopyStream(System.IO.Stream,System.IO.Stream)">
12304             <summary>
12305             CopyStream simply copies 'fromStream' to 'toStream'
12306             </summary>
12307         </member>
12308         <member name="T:Microsoft.Diagnostics.Utilities.XmlUtilities">
12309             <summary>
12310             The important thing about these general utilities is that they have only dependencies on mscorlib and
12311             System (they can be used from anywhere).  
12312             </summary>
12313         </member>
12314         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.OpenXmlElement(System.String)">
12315             <summary>
12316             Given an XML element, remove the closing operator for it, so you can add new child elements to it by concatination. 
12317             </summary>
12318         </member>
12319         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlEscape(System.Object,System.Boolean)">
12320             <summary>
12321             Given an object 'obj' do ToString() on it, and then transform it so that all speical XML characters are escaped and return the result. 
12322             If 'quote' is true also surround the resulting object with double quotes.
12323             </summary>
12324         </member>
12325         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuote(System.Object)">
12326             <summary>
12327             A shortcut for XmlEscape(obj, true) (that is ToString the object, escape XML chars, and then surround with double quotes. 
12328             </summary>
12329         </member>
12330         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuote(System.Int32)">
12331             <summary>
12332             Create a doubly quoted string for the decimal integer value
12333             </summary>
12334         </member>
12335         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.UInt32)">
12336             <summary>
12337             Create a double quoted string for the hexidecimal value of 'value'
12338             </summary>
12339         </member>
12340         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.UInt64)">
12341             <summary>
12342             Create a double quoted string for the hexidecimal value of 'value'
12343             </summary>
12344         </member>
12345         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.Int32)">
12346             <summary>
12347             Create a double quoted string for the hexidecimal value of 'value'
12348             </summary>
12349         </member>
12350         <member name="M:Microsoft.Diagnostics.Utilities.XmlUtilities.XmlQuoteHex(System.Int64)">
12351             <summary>
12352             Create a double quoted string for the hexidecimal value of 'value'
12353             </summary>
12354         </member>
12355         <member name="T:System.Diagnostics.Tracing.ManifestEnvelope">
12356             <summary>
12357             Used to send the rawManifest into the event stream as a series of events.  
12358             </summary>
12359         </member>
12360         <member name="T:NativeDlls">
12361             <summary>
12362             Finds native DLLS next to the managed DLL that uses them.   
12363             </summary>
12364         </member>
12365         <member name="F:NativeDlls.UnknownLocation">
12366             <summary>
12367             ManifestModule.FullyQualifiedName returns this as file path if the assembly is loaded as byte array
12368             </summary>
12369         </member>
12370         <member name="M:NativeDlls.LoadNative(System.String)">
12371             <summary>
12372             Loads a native DLL with a filename-extension of 'simpleName' by adding the path of the currently executing assembly
12373             
12374             </summary>
12375             <param name="simpleName"></param>
12376         </member>
12377         <member name="P:NativeDlls.ProcessArchitectureDirectory">
12378             <summary>
12379             Gets the name of the directory containing compiled binaries (DLLs) which have the same architecture as the
12380             currently executing process.
12381             </summary>
12382         </member>
12383         <member name="F:NativeDlls.s_ProcessArchDirectory">
12384             <summary>
12385             This is the backing field for the lazily-computed <see cref="P:NativeDlls.ProcessArchitectureDirectory"/> property.
12386             </summary>
12387         </member>
12388         <member name="T:Diagnostics.Tracing.StackSources.AggregateStackSource">
12389             <summary>
12390             A StackSource that aggregates information from other StackSources into a single unified view.
12391             </summary>
12392             <remarks>
12393             Each StackSource has a name associated with it. The stacks for each StackSource will be grouped under
12394             a pseudo-frame named the same as the source name. Source names are specified on initialization.
12395             </remarks>
12396         </member>
12397         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.#ctor(System.Collections.Generic.IEnumerable{System.Collections.Generic.KeyValuePair{System.String,Microsoft.Diagnostics.Tracing.Stacks.StackSource}})">
12398             <summary>
12399             Initialize a new AggregateStackSource.
12400             </summary>
12401             <param name="sources">An IEnumerable of KeyValuePairs mapping source names to StackSources.</param>
12402         </member>
12403         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
12404             <summary>
12405             Enumerate samples with a callback function.
12406             </summary>
12407             <param name="callback">The function to call on each sample.</param>
12408         </member>
12409         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SamplesImmutable">
12410             <summary>
12411             override
12412             </summary>
12413         </member>
12414         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Boolean[])">
12415             <summary>
12416             Enumerate samples for a given set of scenarios with a callback function.
12417             </summary>
12418             <param name="callback">The function to call on each sample.</param>
12419             <param name="scenariosIncluded">An array of length ScenarioCount. If scenariosIncluded[i] == true, include scenario i.</param>
12420         </member>
12421         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ParallelForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample},System.Boolean[],System.Int32)">
12422             <summary>
12423             Override
12424             </summary>
12425         </member>
12426         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
12427             <summary>
12428             Look up a sample by index.
12429             </summary>
12430             <param name="sampleIndex">The index of the sample to look up.</param>
12431             <returns>
12432             The sample, if it can be found and all sub-sources support indexing; null otherwise.
12433             </returns>
12434         </member>
12435         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12436             <summary>
12437             Gets the index of the caller of a given call stack.
12438             </summary>
12439             <param name="callStackIndex">The call stack to look up.</param>
12440             <returns>The caller, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid"/> otherwise.</returns>
12441         </member>
12442         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12443             <summary>
12444             Get the frame index of a given call stack.
12445             </summary>
12446             <param name="callStackIndex">The call stack to look up.</param>
12447             <returns>The frame index of the call stack, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid"/> otherwise.</returns>
12448         </member>
12449         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12450             <summary>
12451             Gets the name of a frame.
12452             </summary>
12453             <param name="frameIndex">The frame to look up.</param>
12454             <param name="verboseName">Whether to include full module paths.</param>
12455             <returns>The name of the frame.</returns>
12456         </member>
12457         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.CallStackIndexLimit">
12458             <summary>
12459             The total number of call stacks in this source.
12460             </summary>
12461         </member>
12462         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.CallFrameIndexLimit">
12463             <summary>
12464             The total number of frames in this source.
12465             </summary>
12466         </member>
12467         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SampleIndexLimit">
12468             <summary>
12469             The total number of samples in this source.
12470             </summary>
12471         </member>
12472         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.ScenarioNames">
12473             <summary>
12474             The names for the scenarios.
12475             </summary>
12476         </member>
12477         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.SampleTimeRelativeMSecLimit">
12478             <summary>
12479             override
12480             </summary>
12481         </member>
12482         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.ScenarioCount">
12483             <summary>
12484             override
12485             </summary>
12486         </member>
12487         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.ConvertSample(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample,System.Int32)">
12488             <summary>
12489             Convert a StackSourceSample produced by a sub-source into one suitable for the aggregate source.
12490             </summary>
12491             <param name="input">The StackSourceSample to convert.</param>
12492             <param name="storage">A place to but the returned sampled (will become the return value).</param>
12493             <param name="sourceIdx">The index of the source from which the sample came.</param>
12494             <returns>The converted sample.</returns>
12495             <remarks>
12496             If ConvertSample is called again, all previous samples produced by ConvertSample may no longer be used.
12497             </remarks>
12498         </member>
12499         <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_sourceNames">
12500             <summary>
12501             Friendly names of sources.
12502             </summary>
12503             <remarks>
12504             Name 0 is the name of the pseudo-source, which should not be used.
12505             </remarks>
12506         </member>
12507         <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_sources">
12508             <summary>
12509             The list of sources.
12510             </summary>
12511             <remarks>
12512             Source 0 is the pseudo-source (identical to m_pseudo).
12513             </remarks>
12514         </member>
12515         <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.m_firstSampleTime">
12516             <summary>
12517             THis is the time of the first sample.  It lets us normalize the time in the sample to be relative to this.
12518             </summary>
12519         </member>
12520         <member name="T:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource">
12521             <summary>
12522             A StackSource to generate the pseudo-frames needed to group scenarios.
12523             </summary>
12524         </member>
12525         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.#ctor(System.String[])">
12526             <summary>
12527             Initialize a new PseudoStackSource.
12528             </summary>
12529             <param name="names">The names of the frames.</param>
12530         </member>
12531         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetStackForSource(System.Int32)">
12532             <summary>
12533             Gets the CallStackIndex of the call stack corresponding to a given source.
12534             </summary>
12535             <param name="sourceIdx">The index of the source to look up.</param>
12536             <returns>The StackSourceCallStackIndex of a stack under which to group all call stacks for that source.</returns>
12537         </member>
12538         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12539             <summary>
12540             Gets the index of the caller of a given call stack.
12541             </summary>
12542             <param name="callStackIndex">The call stack to look up.</param>
12543             <returns>The caller, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex.Invalid"/> otherwise.</returns>
12544         </member>
12545         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12546             <summary>
12547             Get the frame index of a given call stack.
12548             </summary>
12549             <param name="callStackIndex">The call stack to look up.</param>
12550             <returns>The frame index of the call stack, if it exists, <see cref="F:Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex.Invalid"/> otherwise.</returns>
12551         </member>
12552         <member name="M:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12553             <summary>
12554             Gets the name of a frame.
12555             </summary>
12556             <param name="frameIndex">The frame to look up.</param>
12557             <param name="verboseName">Whether to include full module paths.</param>
12558             <returns>The name of the frame.</returns>
12559         </member>
12560         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.CallStackIndexLimit">
12561             <summary>
12562             The total number of call stacks in this source.
12563             </summary>
12564         </member>
12565         <member name="P:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.CallFrameIndexLimit">
12566             <summary>
12567             The total number of frames in this source.
12568             </summary>
12569         </member>
12570         <member name="F:Diagnostics.Tracing.StackSources.AggregateStackSource.PseudoStackSource.names">
12571             <summary>
12572             The names of the frames that this source generates.
12573             </summary>
12574         </member>
12575         <member name="T:Diagnostics.Tracing.StackSources.IndexMapExtensions">
12576             <summary>
12577             Extension methods for type-safe IndexMap operations on StackSource*Index enums.
12578             </summary>
12579         </member>
12580         <member name="T:Diagnostics.Tracing.StackSources.FilterParams">
12581             <summary>
12582             This is just a class that holds data.  It does nothing except support an 'update' events 
12583             </summary>
12584         </member>
12585         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.#ctor">
12586             <summary>
12587             Constructs a Filter parameter class with all empty properties. 
12588             </summary>
12589         </member>
12590         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.#ctor(Diagnostics.Tracing.StackSources.FilterParams)">
12591             <summary>
12592             Create a Filter Parameters Structure form another one
12593             </summary>
12594             <param name="other"></param>
12595         </member>
12596         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.Set(Diagnostics.Tracing.StackSources.FilterParams)">
12597             <summary>
12598             Set a Filter Parameters Structure form another one
12599             </summary>
12600         </member>
12601         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.Name">
12602             <summary>
12603             Fetch Name 
12604             </summary>
12605         </member>
12606         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.StartTimeRelativeMSec">
12607             <summary>
12608             Fetch StartTimeRelativeMSec 
12609             </summary>
12610         </member>
12611         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.EndTimeRelativeMSec">
12612             <summary>
12613             Fetch EndTimeRelativeMSec 
12614             </summary>
12615         </member>
12616         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.MinInclusiveTimePercent">
12617             <summary>
12618             Fetch MinInclusiveTimePercent 
12619             </summary>
12620         </member>
12621         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.FoldRegExs">
12622             <summary>
12623             Fetch FoldRegExs 
12624             </summary>
12625         </member>
12626         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.IncludeRegExs">
12627             <summary>
12628             Fetch IncludeRegExs 
12629             </summary>
12630         </member>
12631         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.ExcludeRegExs">
12632             <summary>
12633             Fetch ExcludeRegExs 
12634             </summary>
12635         </member>
12636         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.GroupRegExs">
12637             <summary>
12638             Fetch GroupRegExs 
12639             </summary>
12640         </member>
12641         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.TypePriority">
12642             <summary>
12643             Fetch TypePriority 
12644             </summary>
12645         </member>
12646         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.ScenarioList">
12647             <summary>
12648             Fetch ScenarioList 
12649             </summary>
12650         </member>
12651         <member name="P:Diagnostics.Tracing.StackSources.FilterParams.Scenarios">
12652             <summary>
12653             Fetch Scenarios 
12654             </summary>
12655         </member>
12656         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.Equals(System.Object)">
12657             <summary>
12658              override
12659             </summary>
12660         </member>
12661         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.GetHashCode">
12662             <summary>
12663              override
12664             </summary>
12665         </member>
12666         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.EscapeRegEx(System.String)">
12667             <summary>
12668             TODO Document
12669             </summary>
12670         </member>
12671         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.WriteToXml(System.Xml.XmlWriter)">
12672             <summary>
12673             Write out the FilterParameters to XML 'writer'
12674             </summary>
12675         </member>
12676         <member name="M:Diagnostics.Tracing.StackSources.FilterParams.ToXml">
12677             <summary>
12678             Create an XML representation of FilterParams as a string
12679             </summary>
12680             <returns></returns>
12681         </member>
12682         <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource">
12683             <summary>
12684             A FilterStackSouce morphs one stack filters or groups the stacks of one stack source to form a new
12685             stack source.   It is very powerful mechanism.  
12686             </summary>
12687         </member>
12688         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.#ctor(Diagnostics.Tracing.StackSources.FilterParams,Microsoft.Diagnostics.Tracing.Stacks.StackSource,Microsoft.Diagnostics.Tracing.Stacks.ScalingPolicyKind)">
12689             <summary>
12690             Create a new FilterStackSource.   
12691             </summary>
12692             <param name="filterParams">Specifies how to filter or group the stacks</param>
12693             <param name="stackSource">The input source to morph</param>
12694             <param name="scalingPolicy">How to scale the data (as time or simply by size of data)</param>
12695         </member>
12696         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ForEach(System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSample})">
12697             <summary>
12698             Override
12699             </summary>
12700         </member>
12701         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetCallerIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12702             <summary>
12703             Override
12704             </summary>
12705         </member>
12706         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetNumberOfFoldedFrames(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12707             <summary>
12708             override
12709             </summary>
12710         </member>
12711         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex)">
12712             <summary>
12713             Override
12714             </summary>
12715         </member>
12716         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameName(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex,System.Boolean)">
12717             <summary>
12718             Override
12719             </summary>
12720         </member>
12721         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.SampleTimeRelativeMSecLimit">
12722             <summary>
12723             Override
12724             </summary>
12725         </member>
12726         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.ScenarioCount">
12727             <summary>
12728             Override
12729             </summary>
12730         </member>
12731         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.CallStackIndexLimit">
12732             <summary>
12733             Override
12734             </summary>
12735         </member>
12736         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.CallFrameIndexLimit">
12737             <summary>
12738             Override
12739             </summary>
12740         </member>
12741         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetSampleByIndex(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex)">
12742             <summary>
12743             Override
12744             </summary>
12745         </member>
12746         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.BaseStackSource">
12747             <summary>
12748             Override
12749             </summary>
12750         </member>
12751         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.IsGraphSource">
12752             <summary>
12753             Override
12754             </summary>
12755         </member>
12756         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetReferences(Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex,Microsoft.Diagnostics.Tracing.Stacks.RefDirection,System.Action{Microsoft.Diagnostics.Tracing.Stacks.StackSourceSampleIndex})">
12757             <summary>
12758             Override
12759             </summary>
12760         </member>
12761         <member name="P:Diagnostics.Tracing.StackSources.FilterStackSource.SampleIndexLimit">
12762             <summary>
12763             Override
12764             </summary>
12765         </member>
12766         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetStackInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
12767             <summary>
12768             Associated with every frame is a FrameInfo which is the computed answers associated with that frame name.  
12769             We cache these and so most of the time looking up frame information is just an array lookup.  
12770             
12771             FrameInfo contains information that is ONLY dependent on the frame name (not the stack it came from), so
12772             entry point groups and include patterns can not be completely processed at this point.   Never returns null. 
12773             </summary>
12774         </member>
12775         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GenerateStackInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceCallStackIndex,Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo,Microsoft.Diagnostics.Tracing.Stacks.RecursionGuard)">
12776             <summary>
12777             Generate the stack information for 'stack' and place it in stackInfoRet.  Only called by GetStackInfo.    
12778             </summary>
12779         </member>
12780         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.GetFrameInfo(Microsoft.Diagnostics.Tracing.Stacks.StackSourceFrameIndex)">
12781             <summary>
12782             Returns the frame information for frameIndex.   Never returns null.  
12783             </summary>
12784         </member>
12785         <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.GroupPattern">
12786             <summary>
12787             This is just the parsed form of a grouping specification Pat->GroupNameTemplate  (it has a pattern regular 
12788             expression and a group name that can have replacements)  It is a trivial class
12789             </summary>
12790         </member>
12791         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.GroupPattern.IsModuleEntry">
12792             <summary>
12793             Experimentally we are going to special case the module entry pattern.  
12794             </summary>
12795         </member>
12796         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ParseGroups(System.String)">
12797             <summary>
12798             Parses a string into the GroupPattern structure that allows it to executed (matched).  
12799             </summary>
12800         </member>
12801         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.FindGroupNameFromFrameName(System.String,System.Boolean@)">
12802             <summary>
12803             Given the name of a frame, look it up in the group patterns and morph it to its group name. 
12804             If the group that matches is a entryGroup then set 'isEntryGroup'.  Will return null if
12805             no group matches 'frameName'
12806             </summary>
12807         </member>
12808         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ParseRegExList(System.String)">
12809             <summary>
12810             Holds parsed information about patterns for groups includes, excludes or folds.  
12811             </summary>
12812         </member>
12813         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.IsMatch(System.Text.RegularExpressions.Regex[],System.String)">
12814             <summary>
12815             Returns the index in the 'pats' array of the first pattern that matches 'str'.   Returns -1 if no match. 
12816             </summary>
12817         </member>
12818         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.SameSet(System.Int32[],System.Int32[])">
12819             <summary>
12820             returns true if set1 and set1 (as returned from MatchSet) are identical 
12821             </summary>
12822         </member>
12823         <member name="M:Diagnostics.Tracing.StackSources.FilterStackSource.ToDotNetRegEx(System.String)">
12824             <summary>
12825             Convert a string from my regular expression format (where you only have * and {  } as grouping operators
12826             and convert them to .NET regular expressions string
12827             </summary>
12828         </member>
12829         <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.FrameInfo">
12830             <summary>
12831             FrameInfo is all the information we need to associate with an Frame ID (to figure out what group/pattern it belongs to) 
12832             This includes what group it belongs to, the include patterns it matches whether to discard or fold it.   It is
12833             all the processing we can do with JUST the frame ID.  
12834             
12835             Note that FrameInfo is reused by multiple stacks, which means that you should NOT update fields in it after initial creation.  
12836             </summary>
12837         </member>
12838         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.FrameInfo.GroupID">
12839             <summary>
12840             This is what we return to the Stack crawler, it encodes either that we should filter the sample,
12841             fold the frame, form a group, or the frameID that we have chosen to represent the group as a whole.  
12842             </summary>
12843         </member>
12844         <member name="T:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo">
12845             <summary>
12846             Represents all accumulated information about grouping for a particular stack.  Effectively this is the
12847             'result' of applying the grouping and filtering to a particular stack.   We cache the last 100 or so
12848             of these because stacks tend to reuse the parts of the stack close the root.     
12849             </summary>
12850         </member>
12851         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfo.IncPathsMatchedSoFar">
12852             <summary>
12853             The include patterns that have been matched by some frame in this stack.  (ultimately we need all bits set).
12854             Can be null, which means the empty set.  
12855             </summary>
12856         </member>
12857         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.MatchesNothing">
12858             <summary>
12859             Represents a frame that does not match any pattern.  Thus the default of simply returning the frame ID is appropriate
12860             </summary>
12861         </member>
12862         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.Discard">
12863             <summary>
12864             Represents a frame that should be discarded.  
12865             </summary>
12866         </member>
12867         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.Fold">
12868             <summary>
12869             Represents a frame that should be folded into its caller.  
12870             </summary>
12871         </member>
12872         <member name="F:Diagnostics.Tracing.StackSources.FilterStackSource.StackInfoCacheSize">
12873             <summary>
12874             We cache information about stacks we have previously seen so we can short-circuit work. 
12875             TODO make dynamic.   
12876             
12877             Note when this value is 4096 some memory profiles are VERY sluggish.  Don't make it too
12878             small unless it is adaptive.  
12879             </summary>
12880         </member>
12881         <member name="T:Utilities.IndexMap">
12882             <summary>
12883             A class that maps contiguous indices from various sources from and to a single range of contiguous indices.
12884             </summary>
12885             <remarks>
12886             This is useful for aggregating indices used, for instance, in the interface for StackSource (StackSourceCallStackIndex /
12887             StackSourceFrameIndex) in AggregateStackSource. This is an easy way, given the incoming StackSource*Index, to find the
12888             aggregated source to query, and the corresponding StackSource*Index to send to the source.
12889             </remarks>
12890             <example>
12891             With counts [3, 7, 5]:
12892                                 1 1 1 1 1  
12893             0 1 2 3 4 5 6 7 8 9 0 1 2 3 4  = Incoming index
12894             __0__ ______1______ ____2____  = Source number
12895             0 1 2|0 1 2 3 4 5 6|0 1 2 3 4  = Offset
12896             </example>
12897         </member>
12898         <member name="M:Utilities.IndexMap.#ctor(System.Collections.Generic.IEnumerable{System.Int32})">
12899             <summary>
12900             Initialize a new IndexMap with the specified counts.
12901             </summary>
12902             <param name="counts">A list mapping an index to its corresponding count.</param>
12903         </member>
12904         <member name="M:Utilities.IndexMap.SourceOf(System.Int32)">
12905             <summary>
12906             Find the source for an index.
12907             </summary>
12908             <param name="aggregate">The aggregate index to look up.</param>
12909             <returns>The source that <paramref name="aggregate"/> belongs to.</returns>
12910         </member>
12911         <member name="M:Utilities.IndexMap.OffsetOf(System.Int32,System.Int32)">
12912             <summary>
12913             Find the offset into a given source of a given aggregate index.
12914             </summary>
12915             <param name="aggregate">The aggregate index to look up.</param>
12916             <param name="source">The source to find the offset into.</param>
12917             <returns>The offset of <paramref name="aggregate"/> into <paramref name="source"/>.</returns>
12918         </member>
12919         <member name="M:Utilities.IndexMap.IndexOf(System.Int32,System.Int32)">
12920             <summary>
12921             Finds the index for a given source/offset pair.
12922             </summary>
12923             <param name="source">The source number of the item.</param>
12924             <param name="offset">The offset into the corresponding source for the item.</param>
12925             <returns>The index corresponding to the pair of <paramref name="source"/> and <paramref name="offset"/>.</returns>
12926         </member>
12927         <member name="P:Utilities.IndexMap.Count">
12928             <summary>
12929             The total number of indices in the map.
12930             </summary>
12931         </member>
12932         <member name="F:Utilities.IndexMap.m_lookup">
12933             <summary>
12934             The lookup table to convert indices to source/offset pairs.
12935             </summary>
12936             <remarks>
12937             This contains the cumulative count of indices that occurred before each source.
12938             The last element is the total number of indices (equal to m_range).
12939             </remarks>
12940         </member>
12941         <member name="F:Utilities.IndexMap.m_range">
12942             <summary>
12943             The total number of indices in the map.
12944             </summary>
12945         </member>
12946         <member name="F:Utilities.IndexMap.m_lastSourceLookedUp">
12947             <summary>
12948             We remember the last source we looked up and check there first very likely they are next to one another. 
12949             </summary>
12950         </member>
12951         <member name="T:Utilities.Cache`2">
12952             <summary>
12953             A finite cache based with a least recently used algorithm for replacement.   
12954             It is meant to be fast (fast as a hashtable), and space efficient (not much
12955             over the MaxEntry key-value pairs are stored.  (only 8 bytes per entry additional).  
12956             
12957             After reaching MaxEntry entries.  It uses a roughly least-recently used
12958             algorithm to pick a entry to recycle.    To stay efficient it only searches
12959             a finite time (up to 5 entries) for a entry that is older than 1/2 of the
12960             entries in the table.  
12961             
12962             It has the property that if you are in the maxEntries/2 most commonly fetched
12963             things, you very unlikely to be evicted once you are in the cache.   
12964             </summary>
12965         </member>
12966         <member name="M:Utilities.Cache`2.#ctor(System.Int32)">
12967             <summary>
12968             maxEntries currently is only set in the constructor.   Thus this is a finite sized cache
12969             but is otherwise very efficient.  Currently it uses ushorts internally so the number
12970             of entries is limited to 64K (it silently limits it if you give maxEntries > 64K).  
12971             </summary>
12972             <param name="maxEntries"></param>
12973         </member>
12974         <member name="M:Utilities.Cache`2.Get(`0)">
12975             <summary>
12976             Fetches the value from the cache with key 'key'.  Returns default(T) if not present
12977             </summary>
12978         </member>
12979         <member name="M:Utilities.Cache`2.TryGet(`0,`1@)">
12980             <summary>
12981             Fetches the value from the cache with key 'key'.  Returns false if not present.
12982             </summary>
12983         </member>
12984         <member name="M:Utilities.Cache`2.Add(`0,`1)">
12985             <summary>
12986             Adds 'key' with value 'value' to the cache. 
12987             </summary>
12988         </member>
12989         <member name="M:Utilities.Cache`2.Clear">
12990             <summary>
12991             Removes all entries in the cache.  
12992             </summary>
12993         </member>
12994         <member name="P:Utilities.Cache`2.MaxEntries">
12995             <summary>
12996             Sets the maxiumum number of key-value pairs the cache will keep.  (after that old ones are remvoed). 
12997             </summary>
12998         </member>
12999         <member name="F:Utilities.Cache`2.End">
13000             <summary>
13001             Represents a null pointer (end of a linked list)
13002             </summary>
13003         </member>
13004         <member name="T:Utilities.CommandOptions">
13005             <summary>
13006             CommandOptions is a helper class for the Command class.  It stores options
13007             that affect the behavior of the execution of ETWCommands and is passes as a 
13008             parameter to the constructor of a Command.  
13009             
13010             It is useful for these options be be on a separate class (rather than 
13011             on Command itself), because it is reasonably common to want to have a set
13012             of options passed to several commands, which is not easily possible otherwise. 
13013             </summary>
13014         </member>
13015         <member name="F:Utilities.CommandOptions.Infinite">
13016             <summary>
13017             Can be assigned to the Timeout Property to indicate infinite timeout. 
13018             </summary>
13019         </member>
13020         <member name="M:Utilities.CommandOptions.#ctor">
13021             <summary>
13022             CommanOptions holds a set of options that can be passed to the constructor
13023             to the Command Class as well as Command.Run*
13024             </summary>
13025         </member>
13026         <member name="M:Utilities.CommandOptions.Clone">
13027             <summary>
13028             Return a copy an existing set of command options
13029             </summary>
13030             <returns>The copy of the command options</returns>
13031         </member>
13032         <member name="P:Utilities.CommandOptions.NoThrow">
13033             <summary>
13034             Normally commands will throw if the subprocess returns a non-zero 
13035             exit code.  NoThrow suppresses this. 
13036             </summary>
13037         </member>
13038         <member name="M:Utilities.CommandOptions.AddNoThrow">
13039             <summary>
13040             Updates the NoThrow propery and returns the updated commandOptions.
13041             <returns>Updated command options</returns>
13042             </summary>
13043         </member>
13044         <member name="P:Utilities.CommandOptions.Start">
13045             <summary>
13046             ShortHand for UseShellExecute and NoWait
13047             </summary>
13048         </member>
13049         <member name="M:Utilities.CommandOptions.AddStart">
13050             <summary>
13051             Updates the Start propery and returns the updated commandOptions.
13052             </summary>
13053         </member>
13054         <member name="P:Utilities.CommandOptions.UseShellExecute">
13055             <summary>
13056             Normally commands are launched with CreateProcess.  However it is
13057             also possible use the Shell Start API.  This causes Command to look
13058             up the executable differently 
13059             </summary>
13060         </member>
13061         <member name="M:Utilities.CommandOptions.AddUseShellExecute">
13062             <summary>
13063             Updates the Start propery and returns the updated commandOptions.
13064             </summary>
13065         </member>
13066         <member name="P:Utilities.CommandOptions.NoWindow">
13067             <summary>
13068             Indicates that you want to hide any new window created.  
13069             </summary>
13070         </member>
13071         <member name="M:Utilities.CommandOptions.AddNoWindow">
13072             <summary>
13073             Updates the NoWindow propery and returns the updated commandOptions.
13074             </summary>
13075         </member>
13076         <member name="P:Utilities.CommandOptions.NoWait">
13077             <summary>
13078             Indicates that you want don't want to wait for the command to complete.
13079             </summary>
13080         </member>
13081         <member name="M:Utilities.CommandOptions.AddNoWait">
13082             <summary>
13083             Updates the NoWait propery and returns the updated commandOptions.
13084             </summary>
13085         </member>
13086         <member name="P:Utilities.CommandOptions.Elevate">
13087             <summary>
13088             Indicates that the command must run at elevated Windows privledges (causes a new command window)
13089             </summary>
13090         </member>
13091         <member name="M:Utilities.CommandOptions.AddElevate">
13092             <summary>
13093             Updates the Elevate propery and returns the updated commandOptions.
13094             </summary>
13095         </member>
13096         <member name="P:Utilities.CommandOptions.Timeout">
13097             <summary>
13098             By default commands have a 10 minute timeout (600,000 msec), If this
13099             is inappropriate, the Timeout property can change this.  Like all
13100             timouts in .NET, it is in units of milliseconds, and you can use
13101             CommandOptions.Infinite to indicate no timeout. 
13102             </summary>
13103         </member>
13104         <member name="M:Utilities.CommandOptions.AddTimeout(System.Int32)">
13105             <summary>
13106             Updates the Timeout propery and returns the updated commandOptions.
13107             CommandOptions.Infinite can be used for infinite
13108             </summary>
13109         </member>
13110         <member name="P:Utilities.CommandOptions.Input">
13111             <summary>
13112             Indicates the string will be sent to Console.In for the subprocess.  
13113             </summary>
13114         </member>
13115         <member name="M:Utilities.CommandOptions.AddInput(System.String)">
13116             <summary>
13117             Updates the Input propery and returns the updated commandOptions.
13118             </summary>
13119         </member>
13120         <member name="P:Utilities.CommandOptions.CurrentDirectory">
13121             <summary>
13122             Indicates the current directory the subProcess will have. 
13123             </summary>
13124         </member>
13125         <member name="M:Utilities.CommandOptions.AddCurrentDirectory(System.String)">
13126             <summary>
13127             Updates the CurrentDirectory propery and returns the updated commandOptions.
13128             </summary>
13129         </member>
13130         <member name="P:Utilities.CommandOptions.OutputFile">
13131             <summary>
13132             Indicates the standard output and error of the command should be redirected
13133             to a archiveFile rather than being stored in Memory in the 'Output' property of the
13134             command.
13135             </summary>
13136         </member>
13137         <member name="M:Utilities.CommandOptions.AddOutputFile(System.String)">
13138             <summary>
13139             Updates the OutputFile propery and returns the updated commandOptions.
13140             </summary>
13141         </member>
13142         <member name="P:Utilities.CommandOptions.OutputStream">
13143             <summary>
13144             Indicates the standard output and error of the command should be redirected
13145             to a a TextWriter rather than being stored in Memory in the 'Output' property 
13146             of the command.
13147             </summary>
13148         </member>
13149         <member name="M:Utilities.CommandOptions.AddOutputStream(System.IO.TextWriter)">
13150             <summary>
13151             Updates the OutputStream property and returns the updated commandOptions.
13152             </summary>
13153         </member>
13154         <member name="P:Utilities.CommandOptions.EnvironmentVariables">
13155             <summary>
13156             Gets the Environment variables that will be set in the subprocess that
13157             differ from current process's environment variables.  Any time a string
13158             of the form %VAR% is found in a value of a environment variable it is
13159             replaced with the value of the environment variable at the time the
13160             command is launched.  This is useful for example to update the PATH
13161             environment variable eg. "%PATH%;someNewPath"
13162             </summary>
13163         </member>
13164         <member name="M:Utilities.CommandOptions.AddEnvironmentVariable(System.String,System.String)">
13165             <summary>
13166             Adds the environment variable with the give value to the set of 
13167             environmetn variables to be passed to the sub-process and returns the 
13168             updated commandOptions.   Any time a string
13169             of the form %VAR% is found in a value of a environment variable it is
13170             replaced with the value of the environment variable at the time the
13171             command is launched.  This is useful for example to update the PATH
13172             environment variable eg. "%PATH%;someNewPath"
13173             </summary>
13174         </member>
13175         <member name="T:Utilities.Command">
13176             <summary>
13177             Command represents a running of a command lineNumber process.  It is basically
13178             a wrapper over System.Diagnostics.Process, which hides the complexitity
13179             of System.Diagnostics.Process, and knows how to capture output and otherwise
13180             makes calling commands very easy.
13181             </summary>
13182         </member>
13183         <member name="P:Utilities.Command.StartTime">
13184             <summary>
13185             The time the process started.  
13186             </summary>
13187         </member>
13188         <member name="P:Utilities.Command.HasExited">
13189             <summary>
13190             Returns true if the process has exited. 
13191             </summary>
13192         </member>
13193         <member name="P:Utilities.Command.ExitTime">
13194             <summary>
13195             The time the processed Exited.  (HasExited should be true before calling)
13196             </summary>
13197         </member>
13198         <member name="P:Utilities.Command.Duration">
13199             <summary>
13200             The duration of the command (HasExited should be true before calling)
13201             </summary>
13202         </member>
13203         <member name="P:Utilities.Command.Id">
13204             <summary>
13205             The operating system ID for the subprocess.  
13206             </summary>
13207         </member>
13208         <member name="P:Utilities.Command.ExitCode">
13209             <summary>
13210             The process exit code for the subprocess.  (HasExited should be true before calling)
13211             Often this does not need to be checked because Command.Run will throw an exception 
13212             if it is not zero.   However it is useful if the CommandOptions.NoThrow property 
13213             was set.  
13214             </summary>
13215         </member>
13216         <member name="P:Utilities.Command.Output">
13217             <summary>
13218             The standard output and standard error output from the command.  This
13219             is accumulated in real time so it can vary if the process is still running.
13220             
13221             This property is NOT available if the CommandOptions.OutputFile or CommandOptions.OutputStream
13222             is specified since the output is being redirected there.   If a large amount of output is 
13223             expected (> 1Meg), the Run.AddOutputStream(Stream) is recommended for retrieving it since
13224             the large string is never materialized at one time. 
13225             </summary>
13226         </member>
13227         <member name="P:Utilities.Command.Options">
13228             <summary>
13229             Returns that CommandOptions structure that holds all the options that affect
13230             the running of the command (like Timeout, Input ...)
13231             </summary>
13232         </member>
13233         <member name="M:Utilities.Command.RunToConsole(System.String,Utilities.CommandOptions)">
13234             <summary>
13235             Run 'commandLine', sending the output to the console, and wait for the command to complete.
13236             This simulates what batch filedo when executing their commands.  It is a bit more verbose
13237             by default, however 
13238             </summary>
13239             <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13240             <param variable="options">Additional qualifiers that control how the process is run</param>
13241             <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13242         </member>
13243         <member name="M:Utilities.Command.Run(System.String,Utilities.CommandOptions)">
13244             <summary>
13245             Run 'commandLine' as a subprocess and waits for the command to complete.
13246             Output is captured and placed in the 'Output' property of the returned Command 
13247             structure. 
13248             </summary>
13249             <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13250             <param variable="options">Additional qualifiers that control how the process is run</param>
13251             <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13252         </member>
13253         <member name="M:Utilities.Command.#ctor(System.String,Utilities.CommandOptions)">
13254             <summary>
13255             Launch a new command and returns the Command object that can be used to monitor
13256             the restult.  It does not wait for the command to complete, however you 
13257             can call 'Wait' to do that, or use the 'Run' or 'RunToConsole' methods. */
13258             </summary>
13259             <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13260             <param variable="options">Additional qualifiers that control how the process is run</param>
13261             <returns>A Command structure that can be queried to determine ExitCode, Output, etc.</returns>
13262         </member>
13263         <member name="M:Utilities.Command.#ctor(System.String)">
13264             <summary>
13265             Create a subprocess to run 'commandLine' with no special options. 
13266             <param variable="commandLine">The command lineNumber to run as a subprocess</param>
13267             </summary>
13268         </member>
13269         <member name="M:Utilities.Command.Wait">
13270             <summary>
13271             Wait for a started process to complete (HasExited will be true on return)
13272             </summary>
13273             <returns>Wait returns that 'this' pointer.</returns>
13274         </member>
13275         <member name="M:Utilities.Command.ThrowCommandFailure(System.String)">
13276             <summary>
13277             Throw a error if the command exited with a non-zero exit code
13278             printing useful diagnostic information along with the thrown message.
13279             This is useful when NoThrow is specified, and after post-processing
13280             you determine that the command really did fail, and an normal 
13281             Command.Run failure was the appropriate action.  
13282             </summary>
13283             <param name="message">An additional message to print in the throw (can be null)</param>
13284         </member>
13285         <member name="P:Utilities.Command.Process">
13286             <summary>
13287             Get the underlying process object.  Generally not used. 
13288             </summary>
13289         </member>
13290         <member name="M:Utilities.Command.Kill">
13291             <summary>
13292             Kill the process (and any child processses (recursively) associated with the 
13293             running command).   Note that it may not be able to kill everything it should
13294             if the child-parent' chain is broken by a child that creates a subprocess and
13295             then dies itself.   This is reasonably uncommon, however. 
13296             </summary>
13297         </member>
13298         <member name="M:Utilities.Command.Quote(System.String)">
13299             <summary>
13300             Put double quotes around 'str' if necessary (handles quotes quotes.  
13301             </summary>
13302         </member>
13303         <member name="M:Utilities.Command.FindOnPath(System.String)">
13304             <summary>
13305             Given a string 'commandExe' look for it on the path the way cmd.exe would.   
13306             Returns null if it was not found.   
13307             </summary>
13308         </member>
13309         <member name="T:Utilities.OperatingSystemVersion.RTL_OSVERSIONINFOEX">
13310             <summary>
13311             requiredOSVersion is a number that is the major version * 10 + minor.  Thus
13312                 Win 10 == 100
13313                 Win 8 == 62
13314                 Win 7 == 61
13315                 Vista == 60
13316             This returns true if true OS version is >= 'requiredOSVersion
13317             </summary>
13318         </member>
13319         <member name="T:Dia2Lib.DiaLoader">
13320             <summary>
13321             The DiaLoader class knows how to load the msdia140.dll (the Debug Access Interface) (see docs at
13322             http://msdn.microsoft.com/en-us/library/x93ctkx8.aspx), without it being registered as a COM object.
13323             Basically it just called the DllGetClassObject interface directly.
13324             
13325             It has one public method 'GetDiaSourceObject' which knows how to create a IDiaDataSource object. 
13326             From there you can do anything you need.  
13327             
13328             In order to get IDiaDataSource3 which includes'getStreamSize' API, you need to use the 
13329             vctools\langapi\idl\dia2_internal.idl file from devdiv to produce Dia2Lib.dll
13330             
13331             roughly what you need to do is 
13332                 copy vctools\langapi\idl\dia2_internal.idl .
13333                 copy vctools\langapi\idl\dia2.idl .
13334                 copy vctools\langapi\include\cvconst.h .
13335                 Change dia2.idl to include interface IDiaDataSource3 inside library Dia2Lib->importlib->coclass DiaSource
13336                 midl dia2_internal.idl /D CC_DP_CXX
13337                 tlbimp dia2_internal.tlb
13338                 REM result is Dia2Lib.dll 
13339             </summary>
13340         </member>
13341         <member name="M:Dia2Lib.DiaLoader.GetDiaSourceObject">
13342             <summary>
13343             Load the msdia100 dll and get a IDiaDataSource from it.  This is your gateway to PDB reading.   
13344             </summary>
13345         </member>
13346         <member name="F:Dia2Lib.DiaLoader.s_loadedNativeDll">
13347             <summary>
13348             Used to ensure the native library is loaded at least once prior to trying to use it. No protection is
13349             included to avoid multiple loads, but this is not a problem since we aren't trying to unload the library
13350             after use.
13351             </summary>
13352         </member>
13353         <member name="T:PEFile.PEFile">
13354             <summary>
13355             PEFile is a reader for the information in a Portable Exectable (PE) FILE.   This is what EXEs and DLLs are.  
13356             
13357             It can read both 32 and 64 bit PE files.  
13358             </summary>
13359         </member>
13360         <member name="M:PEFile.PEFile.#ctor(System.String)">
13361             <summary>
13362             Create a new PEFile header reader that inspects the 
13363             </summary>
13364         </member>
13365         <member name="P:PEFile.PEFile.Header">
13366             <summary>
13367             The Header for the PE file.  This contains the infor in a link /dump /headers 
13368             </summary>
13369         </member>
13370         <member name="M:PEFile.PEFile.GetPdbSignature(System.String@,System.Guid@,System.Int32@,System.Boolean)">
13371             <summary>
13372             Looks up the debug signature information in the EXE.   Returns true and sets the parameters if it is found. 
13373             
13374             If 'first' is true then the first entry is returned, otherwise (by default) the last entry is used 
13375             (this is what debuggers do today).   Thus NGEN images put the IL PDB last (which means debuggers 
13376             pick up that one), but we can set it to 'first' if we want the NGEN PDB.
13377             </summary>
13378         </member>
13379         <member name="M:PEFile.PEFile.GetFileVersionInfo">
13380             <summary>
13381             Gets the File Version Information that is stored as a resource in the PE file.  (This is what the
13382             version tab a file's property page is populated with).  
13383             </summary>
13384         </member>
13385         <member name="M:PEFile.PEFile.GetSxSManfest">
13386             <summary>
13387             For side by side dlls, the manifest that decribes the binding information is stored as the RT_MANIFEST resource, and it
13388             is an XML string.   This routine returns this.  
13389             </summary>
13390             <returns></returns>
13391         </member>
13392         <member name="P:PEFile.PEFile.HasPrecompiledManagedCode">
13393             <summary>
13394             Returns true if this is and NGEN or Ready-to-Run image (it has precompiled native code)
13395             </summary>
13396         </member>
13397         <member name="P:PEFile.PEFile.IsManagedReadyToRun">
13398             <summary>
13399             Returns true if file has a managed ready-to-run image.  
13400             </summary>
13401         </member>
13402         <member name="M:PEFile.PEFile.ReadyToRunVersion(System.Int16@,System.Int16@)">
13403             <summary>
13404             Gets the major and minor ready-to-run version.   returns true if ready-to-run. 
13405             </summary>
13406         </member>
13407         <member name="M:PEFile.PEFile.Dispose">
13408             <summary>
13409             Closes any file handles and cleans up resources.  
13410             </summary>
13411         </member>
13412         <member name="T:PEFile.PEHeader">
13413             <summary>
13414             A PEHeader is a reader of the data at the beginning of a PEFile.    If the header bytes of a 
13415             PEFile are read or mapped into memory, this class can parse it when given a poitner to it. 
13416             It can read both 32 and 64 bit PE files.  
13417             </summary>
13418         </member>
13419         <member name="M:PEFile.PEHeader.#ctor(System.Void*)">
13420             <summary>
13421             Returns a PEHeader for void* pointer in memory.  It does NO validity checking. 
13422             </summary>
13423         </member>
13424         <member name="P:PEFile.PEHeader.PEHeaderSize">
13425             <summary>
13426             The total s,ize of the header,  including section array of the the PE header.  
13427             </summary>
13428         </member>
13429         <member name="M:PEFile.PEHeader.VirtualAddressToRva(System.Void*)">
13430             <summary>
13431             Given a virtual address to data in a mapped PE file, return the relative virtual address (displacement from start of the image)
13432             </summary>
13433         </member>
13434         <member name="M:PEFile.PEHeader.RvaToVirtualAddress(System.Int32)">
13435             <summary>
13436             Given a relative virtual address (displacement from start of the image) return the virtual address to data in a mapped PE file
13437             </summary>
13438         </member>
13439         <member name="M:PEFile.PEHeader.RvaToFileOffset(System.Int32)">
13440             <summary>
13441             Given a relative virtual address (displacement from start of the image) return a offset in the file data for that data.  
13442             </summary>
13443         </member>
13444         <member name="P:PEFile.PEHeader.IsPE64">
13445             <summary>
13446             Returns true if this is PE file for a 64 bit architecture.  
13447             </summary>
13448         </member>
13449         <member name="P:PEFile.PEHeader.IsManaged">
13450             <summary>
13451             Returns true if this file contains managed code (might also contain native code). 
13452             </summary>
13453         </member>
13454         <member name="P:PEFile.PEHeader.Signature">
13455             <summary>   
13456             Returns the 'Signature' of the PE HEader PE\0\0 = 0x4550, used for sanity checking.  
13457             </summary>
13458         </member>
13459         <member name="P:PEFile.PEHeader.Machine">
13460             <summary>
13461             The machine this PE file is intended to run on 
13462             </summary>
13463         </member>
13464         <member name="P:PEFile.PEHeader.NumberOfSections">
13465             <summary>
13466             PE files have a number of sections that represent regions of memory with the access permisions.  This is the nubmer of such sections.  
13467             </summary>
13468         </member>
13469         <member name="P:PEFile.PEHeader.TimeDateStampSec">
13470             <summary>
13471             The the PE file was created represented as the number of seconds since Jan 1 1970 
13472             </summary>
13473         </member>
13474         <member name="P:PEFile.PEHeader.TimeDateStamp">
13475             <summary>
13476             The the PE file was created represented as a DateTime object
13477             </summary>
13478         </member>
13479         <member name="P:PEFile.PEHeader.PointerToSymbolTable">
13480             <summary>
13481             PointerToSymbolTable (see IMAGE_FILE_HEADER in PE File spec)
13482             </summary>
13483         </member>
13484         <member name="P:PEFile.PEHeader.NumberOfSymbols">
13485             <summary>
13486             NumberOfSymbols (see IMAGE_FILE_HEADER PE File spec)
13487             </summary>
13488         </member>
13489         <member name="P:PEFile.PEHeader.SizeOfOptionalHeader">
13490             <summary>
13491             SizeOfOptionalHeader (see IMAGE_FILE_HEADER PE File spec)
13492             </summary>
13493         </member>
13494         <member name="P:PEFile.PEHeader.Characteristics">
13495             <summary>
13496             Characteristics (see IMAGE_FILE_HEADER PE File spec)
13497             </summary>
13498         </member>
13499         <member name="P:PEFile.PEHeader.Magic">
13500             <summary>
13501             Magic (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13502             </summary>
13503         </member>
13504         <member name="P:PEFile.PEHeader.MajorLinkerVersion">
13505             <summary>
13506             MajorLinkerVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13507             </summary>
13508         </member>
13509         <member name="P:PEFile.PEHeader.MinorLinkerVersion">
13510             <summary>
13511             MinorLinkerVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13512             </summary>
13513         </member>
13514         <member name="P:PEFile.PEHeader.SizeOfCode">
13515             <summary>
13516             SizeOfCode (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13517             </summary>
13518         </member>
13519         <member name="P:PEFile.PEHeader.SizeOfInitializedData">
13520             <summary>
13521             SizeOfInitializedData (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13522             </summary>
13523         </member>
13524         <member name="P:PEFile.PEHeader.SizeOfUninitializedData">
13525             <summary>
13526             SizeOfUninitializedData (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13527             </summary>
13528         </member>
13529         <member name="P:PEFile.PEHeader.AddressOfEntryPoint">
13530             <summary>
13531             AddressOfEntryPoint (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13532             </summary>
13533         </member>
13534         <member name="P:PEFile.PEHeader.BaseOfCode">
13535             <summary>
13536             BaseOfCode (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13537             </summary>
13538         </member>
13539         <member name="P:PEFile.PEHeader.ImageBase">
13540             <summary>
13541             ImageBase (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13542             </summary>
13543         </member>
13544         <member name="P:PEFile.PEHeader.SectionAlignment">
13545             <summary>
13546             SectionAlignment (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13547             </summary>
13548         </member>
13549         <member name="P:PEFile.PEHeader.FileAlignment">
13550             <summary>
13551             FileAlignment (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13552             </summary>
13553         </member>
13554         <member name="P:PEFile.PEHeader.MajorOperatingSystemVersion">
13555             <summary>
13556             MajorOperatingSystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13557             </summary>
13558         </member>
13559         <member name="P:PEFile.PEHeader.MinorOperatingSystemVersion">
13560             <summary>
13561             MinorOperatingSystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13562             </summary>
13563         </member>
13564         <member name="P:PEFile.PEHeader.MajorImageVersion">
13565             <summary>
13566             MajorImageVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13567             </summary>
13568         </member>
13569         <member name="P:PEFile.PEHeader.MinorImageVersion">
13570             <summary>
13571             MinorImageVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13572             </summary>
13573         </member>
13574         <member name="P:PEFile.PEHeader.MajorSubsystemVersion">
13575             <summary>
13576             MajorSubsystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13577             </summary>
13578         </member>
13579         <member name="P:PEFile.PEHeader.MinorSubsystemVersion">
13580             <summary>
13581             MinorSubsystemVersion (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13582             </summary>
13583         </member>
13584         <member name="P:PEFile.PEHeader.Win32VersionValue">
13585             <summary>
13586             Win32VersionValue (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13587             </summary>
13588         </member>
13589         <member name="P:PEFile.PEHeader.SizeOfImage">
13590             <summary>
13591             SizeOfImage (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13592             </summary>
13593         </member>
13594         <member name="P:PEFile.PEHeader.SizeOfHeaders">
13595             <summary>
13596             SizeOfHeaders (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13597             </summary>
13598         </member>
13599         <member name="P:PEFile.PEHeader.CheckSum">
13600             <summary>
13601             CheckSum (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13602             </summary>
13603         </member>
13604         <member name="P:PEFile.PEHeader.Subsystem">
13605             <summary>
13606             Subsystem (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13607             </summary>
13608         </member>
13609         <member name="P:PEFile.PEHeader.DllCharacteristics">
13610             <summary>
13611             DllCharacteristics (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13612             </summary>
13613         </member>
13614         <member name="P:PEFile.PEHeader.SizeOfStackReserve">
13615             <summary>
13616             SizeOfStackReserve (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13617             </summary>
13618         </member>
13619         <member name="P:PEFile.PEHeader.SizeOfStackCommit">
13620             <summary>
13621             SizeOfStackCommit (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13622             </summary>
13623         </member>
13624         <member name="P:PEFile.PEHeader.SizeOfHeapReserve">
13625             <summary>
13626             SizeOfHeapReserve (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13627             </summary>
13628         </member>
13629         <member name="P:PEFile.PEHeader.SizeOfHeapCommit">
13630             <summary>
13631             SizeOfHeapCommit (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13632             </summary>
13633         </member>
13634         <member name="P:PEFile.PEHeader.LoaderFlags">
13635             <summary>
13636             LoaderFlags (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13637             </summary>
13638         </member>
13639         <member name="P:PEFile.PEHeader.NumberOfRvaAndSizes">
13640             <summary>
13641             NumberOfRvaAndSizes (see IMAGE_OPTIONAL_HEADER32 or IMAGE_OPTIONAL_HEADER64 in PE File spec)
13642             </summary>
13643         </member>
13644         <member name="M:PEFile.PEHeader.Directory(System.Int32)">
13645             <summary>
13646             Returns the data directory (virtual address an blob, of a data directory with index 'idx'.   14 are currently defined.
13647             </summary>
13648         </member>
13649         <member name="P:PEFile.PEHeader.ExportDirectory">
13650             <summary>
13651             Returns the data directory for DLL Exports see PE file spec for more
13652             </summary>
13653         </member>
13654         <member name="P:PEFile.PEHeader.ImportDirectory">
13655             <summary>
13656             Returns the data directory for DLL Imports see PE file spec for more
13657             </summary>
13658         </member>
13659         <member name="P:PEFile.PEHeader.ResourceDirectory">
13660             <summary>
13661             Returns the data directory for DLL Resources see PE file spec for more
13662             </summary>
13663         </member>
13664         <member name="P:PEFile.PEHeader.ExceptionDirectory">
13665             <summary>
13666             Returns the data directory for DLL Exceptions see PE file spec for more
13667             </summary>
13668         </member>
13669         <member name="P:PEFile.PEHeader.CertificatesDirectory">
13670             <summary>
13671             Returns the data directory for DLL securiy certificates (Authenticode) see PE file spec for more
13672             </summary>
13673         </member>
13674         <member name="P:PEFile.PEHeader.BaseRelocationDirectory">
13675             <summary>
13676             Returns the data directory Image Base Relocations (RELOCS) see PE file spec for more
13677             </summary>
13678         </member>
13679         <member name="P:PEFile.PEHeader.DebugDirectory">
13680             <summary>
13681             Returns the data directory for Debug information see PE file spec for more
13682             </summary>
13683         </member>
13684         <member name="P:PEFile.PEHeader.ArchitectureDirectory">
13685             <summary>
13686             Returns the data directory for DLL Exports see PE file spec for more
13687             </summary>
13688         </member>
13689         <member name="P:PEFile.PEHeader.GlobalPointerDirectory">
13690             <summary>
13691             Returns the data directory for GlobalPointer (IA64) see PE file spec for more
13692             </summary>
13693         </member>
13694         <member name="P:PEFile.PEHeader.ThreadStorageDirectory">
13695             <summary>
13696             Returns the data directory for THread local storage see PE file spec for more
13697             </summary>
13698         </member>
13699         <member name="P:PEFile.PEHeader.LoadConfigurationDirectory">
13700             <summary>
13701             Returns the data directory for Load Configuration see PE file spec for more
13702             </summary>
13703         </member>
13704         <member name="P:PEFile.PEHeader.BoundImportDirectory">
13705             <summary>
13706             Returns the data directory for Bound Imports see PE file spec for more
13707             </summary>
13708         </member>
13709         <member name="P:PEFile.PEHeader.ImportAddressTableDirectory">
13710             <summary>
13711             Returns the data directory for the DLL Import Address Table (IAT) see PE file spec for more
13712             </summary>
13713         </member>
13714         <member name="P:PEFile.PEHeader.DelayImportDirectory">
13715             <summary>
13716             Returns the data directory for Delayed Imports see PE file spec for more
13717             </summary>
13718         </member>
13719         <member name="P:PEFile.PEHeader.ComDescriptorDirectory">
13720             <summary>
13721              see PE file spec for more .NET Runtime infomration.  
13722             </summary>
13723         </member>
13724         <member name="T:PEFile.MachineType">
13725             <summary>
13726             The Machine types supported by the portable executable (PE) File format
13727             </summary>
13728         </member>
13729         <member name="F:PEFile.MachineType.Native">
13730             <summary>
13731             Unknown machine type
13732             </summary>
13733         </member>
13734         <member name="F:PEFile.MachineType.X86">
13735             <summary>
13736             Intel X86 CPU 
13737             </summary>
13738         </member>
13739         <member name="F:PEFile.MachineType.ia64">
13740             <summary>
13741             Intel IA64 
13742             </summary>
13743         </member>
13744         <member name="F:PEFile.MachineType.ARM">
13745             <summary>
13746             ARM 32 bit 
13747             </summary>
13748         </member>
13749         <member name="F:PEFile.MachineType.Amd64">
13750             <summary>
13751             Arm 64 bit 
13752             </summary>
13753         </member>
13754         <member name="T:PEFile.IMAGE_DATA_DIRECTORY">
13755             <summary>
13756             Represents a Portable Executable (PE) Data directory.  This is just a well known optional 'Blob' of memory (has a starting point and size)
13757             </summary>
13758         </member>
13759         <member name="F:PEFile.IMAGE_DATA_DIRECTORY.VirtualAddress">
13760             <summary>
13761             The start of the data blob when the file is mapped into memory
13762             </summary>
13763         </member>
13764         <member name="F:PEFile.IMAGE_DATA_DIRECTORY.Size">
13765             <summary>
13766             The length of the data blob.  
13767             </summary>
13768         </member>
13769         <member name="T:PEFile.FileVersionInfo">
13770             <summary>
13771             FileVersionInfo represents the extended version formation that is optionally placed in the PE file resource area. 
13772             </summary>
13773         </member>
13774         <member name="P:PEFile.FileVersionInfo.FileVersion">
13775             <summary>
13776             The verison string 
13777             </summary>
13778         </member>
13779         <member name="T:PEFile.PEBuffer">
13780             <summary>
13781             A PEBuffer represents a buffer (efficient) scanner of the 
13782             </summary>
13783         </member>
13784     </members>
13785 </doc>