public void WriteEventBegin(EventMetadata metadata, RuntimeEventMetadata runtimeMetadata) { DateTime dt = DateTime.FromFileTime(runtimeMetadata.Timestamp); current = new EventData { Date = dt.ToShortDateString(), Time = dt.TimeOfDay, Process = runtimeMetadata.ProcessId, Thread = runtimeMetadata.ThreadId, metadata = metadata, }; stringWriter = new StringWriter(); writer = new JsonTextWriter(stringWriter); writer.WriteStartObject(); }
public void WriteEventBegin(EventMetadata metadata, RuntimeEventMetadata runtimeMetadata) { this.writer.WriteStartObject(); this.writer.WritePropertyName("Event"); this.writer.WriteStartObject(); this.writer.WritePropertyName("Timestamp"); this.writer.WriteValue(runtimeMetadata.Timestamp); this.writer.WritePropertyName("ProviderGuid"); this.writer.WriteValue(metadata.ProviderGuid); this.writer.WritePropertyName("Id"); this.writer.WriteValue(metadata.Id); this.writer.WritePropertyName("Version"); this.writer.WriteValue(metadata.Version); this.writer.WritePropertyName("ProcessId"); this.writer.WriteValue(runtimeMetadata.ProcessId); this.writer.WritePropertyName("ThreadId"); this.writer.WriteValue(runtimeMetadata.ThreadId); var activityId = runtimeMetadata.ActivityId; if (activityId != Guid.Empty) { this.writer.WritePropertyName("ActivityId"); this.writer.WriteValue(activityId); } var relatedActivityId = runtimeMetadata.RelatedActivityId; if (relatedActivityId != Guid.Empty) { this.writer.WritePropertyName("RelatedActivityId"); this.writer.WriteValue(relatedActivityId); } ulong matchId; var stacks = runtimeMetadata.GetStacks(out matchId); if (matchId != 0) { this.writer.WritePropertyName("StackMatchId"); this.writer.WriteValue(matchId); } if (stacks != null) { this.writer.WritePropertyName("Stacks"); this.writer.WriteStartArray(); for (int i = 0; i < stacks.Length; ++i) { this.writer.WriteValue(stacks[i]); } this.writer.WriteEndArray(); } this.writer.WritePropertyName("Name"); this.writer.WriteValue(metadata.Name); this.writer.WritePropertyName("Properties"); this.writer.WriteStartArray(); this.writer.WriteStartObject(); }
public void Parse <T>(EventRecordReader reader, T writer, EventMetadata[] metadataArray, RuntimeEventMetadata runtimeMetadata) where T : IEtwWriter { writer.WriteEventBegin(EventMetadata, runtimeMetadata); writer.WritePropertyBegin(ImageSize); writer.WriteUInt64(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(TimeDateStamp); writer.WriteUInt64(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(OrigFileName); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(FileDescription); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(FileVersion); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(BinFileVersion); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(VerLanguage); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(ProductName); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(CompanyName); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(ProductVersion); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(FileId); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WritePropertyBegin(ProgramId); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WriteEventEnd(); }
public void Parse <T>(EventRecordReader reader, T writer, EventMetadata[] metadataArray, RuntimeEventMetadata runtimeMetadata) where T : IEtwWriter { writer.WriteEventBegin(EventMetadata, runtimeMetadata); int pointerSize = (runtimeMetadata.Flags & Etw.EVENT_HEADER_FLAG_32_BIT_HEADER) != 0 ? 4 : 8; int numberOfStacks = (runtimeMetadata.UserDataLength - 16) / pointerSize; writer.WritePropertyBegin(EventTimeStampMetadata); writer.WriteUInt64(reader.ReadUInt64()); writer.WritePropertyEnd(); writer.WritePropertyBegin(StackProcessMetadata); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(StackThreadMetadata); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyBegin(StacksPropertyMetadata); writer.WriteArrayBegin(); for (int i = 0; i < numberOfStacks; ++i) { writer.WritePointer(reader.ReadPointer()); } writer.WriteArrayEnd(); writer.WritePropertyEnd(); writer.WriteEventEnd(); }
public void Parse <T>(EventRecordReader reader, T writer, EventMetadata[] metadataArray, RuntimeEventMetadata runtimeMetadata) where T : IEtwWriter { writer.WriteEventBegin(EventMetadata, runtimeMetadata); writer.WritePropertyBegin(ImageBase); writer.WriteUInt64(reader.ReadUInt64()); writer.WritePropertyEnd(); writer.WritePropertyBegin(ProcessId); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(GuidSig); writer.WriteGuid(reader.ReadGuid()); writer.WritePropertyEnd(); writer.WritePropertyBegin(Age); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(PdbFileName); writer.WriteAnsiString(reader.ReadAnsiString()); writer.WritePropertyEnd(); writer.WriteEventEnd(); }
public void Parse <T>(EventRecordReader reader, T writer, EventMetadata[] metadataArray, RuntimeEventMetadata runtimeMetadata) where T : IEtwWriter { writer.WriteEventBegin(EventMetadata, runtimeMetadata); writer.WritePropertyBegin(ImageBase); writer.WritePointer(reader.ReadPointer()); writer.WritePropertyEnd(); writer.WritePropertyBegin(ImageSize); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyEnd(); reader.ReadPointer(); writer.WritePropertyBegin(TimeDateStamp); writer.WriteUInt32(reader.ReadUInt32()); writer.WritePropertyEnd(); writer.WritePropertyBegin(OriginalFileName); writer.WriteUnicodeString(reader.ReadUnicodeString()); writer.WritePropertyEnd(); writer.WriteEventEnd(); }