TraceEvent ライブラリを使用してETW トレースをキャプチャしていますが、イベントを発生させたプロセスの名前を特定できません。
これが私がこれまでに持っているものです:
var session = new TraceEventSession(sessionName, null);
session.EnableProvider(MyEventSource.Log.Guid, TraceEventLevel.Informational,
options: TraceEventOptions.Stacks);
Task.Delay(1000).ContinueWith(t => session.Stop()); // for testing, deal with it (⌐■_■)
var src = new ETWTraceEventSource(sessionName, TraceEventSourceType.Session);
TraceLog.CreateFromSource(src, etlxFile, null);
var log = TraceLog.OpenOrConvert(etlxFile);
var process = log.Events.First().ProcessName;
// breakpoint
最後のブレークポイントにヒットすると、process
は""
. ProcessID
は適切な PID ですが、ログ内のプロセスから見つけた有用な情報はこれだけです。
プロセス名がログに記録されることを期待していました。何か間違ったことをしているのですか、それともこの API が私の OS (Windows 7) で利用できないのですか?