1

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

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

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

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

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

4

1 回答 1

5

你看过 EventLogWatcher 类吗?

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

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

于 2012-11-15T05:30:45.547 回答