我正在使用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 在我的操作系统(Windows 7)上不可用?