C# - 订阅ETW活动频道?

时间:2012-11-15 05:14:45

标签: c# events subscription subscribe etw

我可以使用C#的EventLogReader来检索特定操作通道中记录的所有ETW事件,使用与此页面上的示例类似的代码:

http://msdn.microsoft.com/en-us/library/bb671197(v=vs.90).aspx

我需要做的就是修改logname字符串,而不是指向我感兴趣的操作通道(例如“Microsoft-Windows-RemoteAssistance / Operational”),然后我会看到输出到控制台的所有事件。

但是,我必须继续轮询/检查频道以查看是否有任何新事件,这并不理想。每当新事件记录到频道时,我希望找到一种订阅(或以其他方式接收回调/通知)的方法。我确信必须有一种方法可以在回调中接收事件,但我在MSDN上找不到任何明显的东西。

有谁知道如何从C#中做到这一点?

1 个答案:

答案 0 :(得分:5)

您是否看过EventLogWatcher类?

http://msdn.microsoft.com/en-us/library/system.diagnostics.eventing.reader.eventlogwatcher(v=vs.90).aspx

允许您指定条件,并在满足时引发EventRecordWritten事件。