列出 ETW 提供程序的事件类

Posted

技术标签:

【中文标题】列出 ETW 提供程序的事件类【英文标题】:List event classes for ETW provider 【发布时间】:2015-06-30 04:36:47 【问题描述】:

我想在C 中为来自Microsoft-Windows-TCPIP 提供者的事件实现ETW 消费者。但是,我找不到此提供程序生成的事件类型。

我已经做了一些类似的工作来使用来自 Microsoft-Windows-Kernel-* 的事件(参见 NT Kernel Logger),但是从这个提供者发送的事件很好地记录在 MSDN 上(参见关于 Enable Flags 的文档) .

所以我想真正的问题是:如何将 ETW 提供程序链接到它生成的事件类型(我们在这里讨论 C 结构),反之亦然(如果可行的话)?

谢谢!

Edit 0:我不介意使用其他技术来查找有关课程的详细信息。例如,获取Registry 类的详细信息(对于 NT Kernel Logger),可以使用 powershell 并运行以下命令(请注意,您需要正确的命名空间,否则您将无法获得正确的类型):

$list = gwmi -namespace root\wmi -Class Registry* -list
foreach($element in $list) 
   ([wmiclass]$element).gettext("mof")

【问题讨论】:

【参考方案1】:

您是否尝试过调查TraceEvent?。它不在 C 语言中。它是托管代码。但这是收听 ETW 事件的好方法。

【讨论】:

很遗憾,我需要一个 C 解决方案。

以上是关于列出 ETW 提供程序的事件类的主要内容,如果未能解决你的问题,请参考以下文章

学习TraceLogging事件,使用ETW记录,并使用WPA捕获和分析跟踪

win7 PC 上的 ASP.NET ETW 提供程序丢失

如何查看 CLR ETW 事件

窗口 - 基于清单的 ETW 提供程序问题

安全漏洞一内核漏洞利用

ETW 提供者的频道名称