public Tuple <DataTable, AsyncDataViewModelPreset> CreateTable( IEventInfoSource eventInfoSource, EventSymbolSource symbolSource = null) { var formatterPool = new ObjectPool <IMessageFormatter>(() => new NativeTdhFormatter(), 10); var info = new CrimsonEventsInfo(eventInfoSource, formatterPool, symbolSource); var table = new DataTable("Generic Events"); var templatePreset = new AsyncDataViewModelPreset(); AddColumn(table, templatePreset, timePointGeneratorPreset, DataColumn.Create(info.ProjectTimePoint)); AddColumn(table, templatePreset, timeAbsoluteGeneratorPreset, DataColumn.Create(info.ProjectTimeAbsolute)); AddColumn(table, templatePreset, timeRelativeGeneratorPreset, DataColumn.Create(info.ProjectTimeRelative)); AddColumn(table, templatePreset, providerIdPreset, DataColumn.Create(info.ProjectProviderId)); AddColumn(table, templatePreset, providerNamePreset, DataColumn.Create(info.ProjectProviderName)); AddColumn(table, templatePreset, idPreset, DataColumn.Create(info.ProjectId)); AddColumn(table, templatePreset, versionPreset, DataColumn.Create(info.ProjectVersion)); AddColumn(table, templatePreset, symbolPreset, DataColumn.Create(info.ProjectSymbol)); AddColumn(table, templatePreset, channelPreset, DataColumn.Create(info.ProjectChannel)); AddColumn(table, templatePreset, channelNamePreset, DataColumn.Create(info.ProjectChannelName)); AddColumn(table, templatePreset, taskPreset, DataColumn.Create(info.ProjectTask)); AddColumn(table, templatePreset, taskNamePreset, DataColumn.Create(info.ProjectTaskName)); AddColumn(table, templatePreset, opcodeOrTypePreset, DataColumn.Create(info.ProjectOpCode)); AddColumn(table, templatePreset, opcodeNamePreset, DataColumn.Create(info.ProjectOpCodeName)); AddColumn(table, templatePreset, levelPreset, DataColumn.Create(info.ProjectLevel)); AddColumn(table, templatePreset, levelNamePreset, DataColumn.Create(info.ProjectLevelName)); AddColumn(table, templatePreset, keywordPreset, DataColumn.Create(info.ProjectKeyword)); AddColumn(table, templatePreset, keywordNamePreset, DataColumn.Create(info.ProjectKeywordName)); AddColumn(table, templatePreset, processIdPreset, DataColumn.Create(info.ProjectProcessId)); AddColumn(table, templatePreset, threadIdPreset, DataColumn.Create(info.ProjectThreadId)); AddColumn(table, templatePreset, messagePreset, DataColumn.Create(info.ProjectMessage)); AddColumn(table, templatePreset, eventNamePreset, DataColumn.Create(info.ProjectEventName)); AddColumn(table, templatePreset, eventTypePreset, DataColumn.Create(info.ProjectEventType)); AddColumn(table, templatePreset, cpuPreset, DataColumn.Create(info.ProjectCpu)); AddColumn(table, templatePreset, userDataPreset, DataColumn.Create(info.ProjectUserData)); AddColumn(table, templatePreset, userDataLengthPreset, DataColumn.Create(info.ProjectUserDataLength)); AddColumn(table, templatePreset, activityIdPreset, DataColumn.Create(info.ProjectActivityId)); AddColumn(table, templatePreset, relatedActivityIdPreset, DataColumn.Create(info.ProjectRelatedActivityId)); AddColumn(table, templatePreset, userSecurityIdentifierPreset, DataColumn.Create(info.ProjectUserSecurityIdentifier)); AddColumn(table, templatePreset, sessionIdPreset, DataColumn.Create(info.ProjectSessionId)); AddColumn(table, templatePreset, eventKeyPreset, DataColumn.Create(info.ProjectEventKey)); AddColumn(table, templatePreset, decodingSourcePreset, DataColumn.Create(info.ProjectDecodingSource)); //AddColumn(table, templatePreset, modernProcessDataPreset, DataColumn.Create<object>()); //AddColumn(table, templatePreset, processNamePreset, DataColumn.Create<string>()); //AddColumn(table, templatePreset, stackTopPreset, DataColumn.Create<object>()); //AddColumn(table, templatePreset, threadStartModulePreset, DataColumn.Create<string>()); //AddColumn(table, templatePreset, threadStartFunctionPreset, DataColumn.Create<string>()); return(Tuple.Create(table, templatePreset)); }
public CrimsonEventsInfo( IEventInfoSource eventInfoSource, ObjectPool <IMessageFormatter> messageFormatterPool, IEventSymbolSource eventSymbolSource) { this.eventInfoSource = eventInfoSource; this.messageFormatterPool = messageFormatterPool; this.eventSymbolSource = eventSymbolSource; // Standard Windows system opcodes taken from winmeta.xml in the // Windows SDK winmetaOpcodeNames = new Dictionary <int, SafeBstrHandle> { { 0, SafeBstrHandle.Create("win:Info") }, { 1, SafeBstrHandle.Create("win:Start") }, { 2, SafeBstrHandle.Create("win:Stop") }, { 3, SafeBstrHandle.Create("win:DC_Start") }, { 4, SafeBstrHandle.Create("win:DC_Stop") }, { 5, SafeBstrHandle.Create("win:Extension") }, { 6, SafeBstrHandle.Create("win:Reply") }, { 7, SafeBstrHandle.Create("win:Resume") }, { 8, SafeBstrHandle.Create("win:Suspend") }, { 9, SafeBstrHandle.Create("win:Send") }, { 240, SafeBstrHandle.Create("win:Receive") }, { 241, SafeBstrHandle.Create("win:ReservedOpcode241") }, { 242, SafeBstrHandle.Create("win:ReservedOpcode242") }, { 243, SafeBstrHandle.Create("win:ReservedOpcode243") }, { 244, SafeBstrHandle.Create("win:ReservedOpcode244") }, { 245, SafeBstrHandle.Create("win:ReservedOpcode245") }, { 246, SafeBstrHandle.Create("win:ReservedOpcode246") }, { 247, SafeBstrHandle.Create("win:ReservedOpcode247") }, { 248, SafeBstrHandle.Create("win:ReservedOpcode248") }, { 249, SafeBstrHandle.Create("win:ReservedOpcode249") }, { 250, SafeBstrHandle.Create("win:ReservedOpcode250") }, { 251, SafeBstrHandle.Create("win:ReservedOpcode251") }, { 252, SafeBstrHandle.Create("win:ReservedOpcode252") }, { 253, SafeBstrHandle.Create("win:ReservedOpcode253") }, { 254, SafeBstrHandle.Create("win:ReservedOpcode254") }, { 255, SafeBstrHandle.Create("win:ReservedOpcode255") } }; }