[blog摘要]Exploring and Decoding ETW Providers using Event Log Channels

这是一篇摘要,原文在这里
Exploring and Decoding ETW Providers using Event Log Channels
(http://blogs.msdn.com/ntdebugging/archive/2009/09/08/exploring-and-decoding-etw-providers-using-event-log-channels.aspx)

这篇blog演示了一个使用ETW的例子,例子中笔者用ETW来trace IE.
trace IE对于现在的工作没太大的意义,不过里面的一些信息比较有用。比如:
Windows提供了很多的ETW providers,如何找到合适的来解决问题?
在Windows什么地方可以开启ETW log,什么地方可以查看log?
如何format/filter ETW log.

-----------------------我是分隔线,下面是笔记------------------------------------------
只是浏览了文章,并没有实际的操作。所以只记下一些关键的命令,以后遇到一些实际的问题,可以当作一些启发。

1.Windows内建了很多的ETW providers,许多software也注册了很多ETW providers.如何查询它们呢?
所有的providers
c:\>logman query providers
所有providers太多了,查查关键字
c:\>logman query providers | findstr /i "Internet"
查询特定process的providers(by pid)
c:\>logman query providers -pid 6200

2.默认大部分ETW providers是关闭的,如何开启他们?
简单的说就是在Event Viewer里面可以配置,原文中有图,比较直观。

3.开启了providers,如何抓log并且dump它们呢。
Event Viewer可以save All Events As..
wevtutil命令也可以。
tracerpt命令提供了更加强大复杂的功能。
最有还可以用PowerShell脚本来做更加的复杂的处理。

4.最后一个是我最想知道的,往往知道了一个providers的GUID,他提供了很多flag和level.但是无法知道flag和level的意义。
C:\>logman query providers "XXXx YYYYY ZZZZ"

-------------------------------分隔线,下面是题外话-------------------------------------
以前从来不知道windows自带的logman,都是一直使用更加专业的xperf.
我想xperf应该都有类似的功能,只不过是xperf的doc太长了,一直没有时间能够通读一遍。

原文地址:https://www.cnblogs.com/aoaoblogs/p/1602143.html