internal unsafe TraceEvent(Guid providerGuid, string providerName, EtwTraceNativeComponents.EVENT_RECORD *rawData) { this.providerGuid = providerGuid; this.providerName = providerName; this.eventRecord = rawData; this.userData = rawData->UserData; }
private unsafe void RawDispatch(EtwTraceNativeComponents.EVENT_RECORD *rawData) { IParser parser; this.parserCollection.TryGetValue(rawData->EventHeader.ProviderId, out parser); if (parser != null) { parser.Parse(rawData); } }
public unsafe void Parse(EtwTraceNativeComponents.EVENT_RECORD *rawData) { if (rawData->EventHeader.Opcode == 17) { GCPerHeapHistoryTraceEvent gcperHeapHistoryTraceEvent = new GCPerHeapHistoryTraceEvent(GCPrivateEventsParser.providerGuid, "Microsoft-Windows-DotNETRuntimePrivate", rawData); List <long[]> list; if (!this.processData.TryGetValue(rawData->EventHeader.ProcessId, out list)) { list = new List <long[]>(); this.processData.Add(rawData->EventHeader.ProcessId, list); } long[] array = new long[4]; for (Gens gens = Gens.Gen0; gens <= Gens.GenLargeObj; gens++) { long fragmentation = gcperHeapHistoryTraceEvent.GenData(gens).Fragmentation; array[(int)gens] = fragmentation; } list.Add(array); } }
internal unsafe GCPerHeapHistoryTraceEvent(Guid providerGuid, string providerName, EtwTraceNativeComponents.EVENT_RECORD *rawData) : base(providerGuid, providerName, rawData) { }