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

Posted

技术标签:

【中文标题】窗口 - 基于清单的 ETW 提供程序问题【英文标题】:WIndows - manifest based ETW provider issue 【发布时间】:2013-05-29 15:32:11 【问题描述】:

我有一个 C/C++ 应用程序,我想在其中使用基于清单的 ETW 解决方案。我在使用打开生成的 *.etl 的工具(如 Windows 上的默认工具或任何其他工具)时遇到问题,因为我看不到我的事件的具体细节(清单中定义的模板)

如何将清单注册到系统并将其指定给知名的 ETW 消费者工具以显示该信息?

我做了http://www.codeproject.com/Articles/570690/Application-Analysis-with-Event-Tracing-for-Window中提到的事情

mc FirstETW.man //included generated *.rc in project
mc -um FirstETW.man //to generate C files that I've used in the ETW provider executable
rc FirstETW.rc // not sure of this .Already included the generated *.rc script from previous step in the visual studio project

还注册了清单:

wevtutil.exe im FirstETW.man  //installs the provider

有什么想法吗?

【问题讨论】:

【参考方案1】:

问题与以下事实有关,即在清单中指定的提供程序 messageFileName 与包含 ETW 消费者所需的资源(字符串)的实际二进制文件的位置不同(例如事件日志或其他工具) .

如果希望在事件查看器中看到日志,请确保在事件查看器中启用分析或调试通道类型的提供程序。

【讨论】:

以上是关于窗口 - 基于清单的 ETW 提供程序问题的主要内容,如果未能解决你的问题,请参考以下文章

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

列出 ETW 提供程序的事件类

如何使用来自 Microsoft-Windows-NDIS-PacketCapture 提供程序的实时 ETW 事件?

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

从多个进程和同一进程内注册相同的 ETW TraceLogging 提供程序 GUID

如何为 TraceLogging 提供者(内核)创建实时 etw 消费者?