【问题标题】:How to get events in real-time using ETW (StartTrace etc.)?如何使用 ETW(StartTrace 等)实时获取事件?
【发布时间】:2017-11-28 10:50:59
【问题描述】:

在 Windows 事件跟踪中,StartTrace 接受 EVENT_TRACE_PROPERTIES 结构,该结构允许 FlushTimer 指定刷新未满缓冲区的频率。

问题是,FlushTimer 是一个代表 ULONG,但我希望它非常小,以便它几乎是瞬时的(毫秒级)。

我不知道 Process Monitor 如何实时获取 ETW 事件,但确实如此,所以肯定有办法做到这一点。

所以问题是:我如何才能实时接收实时事件?

【问题讨论】:

    标签: c winapi real-time etw


    【解决方案1】:

    ETW 不支持实时通知。即使是所谓的EVENT_TRACE_REAL_TIME_MODE 也不是真正实时的,正如文档中明确指出的那样。

    您问题的前提是错误的:Sysinternals Process Monitor 使用 ETW 来获取其同步类型的实时进程、线程、模块、文件和注册表事件。你有两个选择:

    1. 使用 ETW - 这不是 ProcMon 所做的 - 并以 ETW 为您提供的方式获取事件。
    2. 做 ProcMon 所做的事情 - 不消耗 ETW 事件 - 并同步获取事件,就像 ProcMon 获取它们一样。

    【讨论】:

      猜你喜欢
      • 2011-05-04
      • 1970-01-01
      • 2019-05-13
      • 2012-03-17
      • 1970-01-01
      • 2013-12-10
      • 1970-01-01
      • 1970-01-01
      • 2015-04-16
      相关资源
      最近更新 更多