1

我在驱动程序中有 ETW 跟踪;清单文件已正确创建,资源全部编译,等等。在目标机器上,我以管理员身份运行此命令:

wevtutil im myManifest.xml

我没有错误。然后,我运行(以管理员身份):

logman 创建跟踪 myProviderName -o Log.etl -p "{myProviderGUID}" -f bincirc -max 1000

没有错误。然后我等待足够的时间来执行一些跟踪,然后我运行这些命令(以管理员身份):

logman 停止 myProviderName

tracerpt Log000001.etl

现在我遇到的问题是生成的文件dumpfile.xml根本没有显示我的任何痕迹的记录。它显示了设置详细信息的基本结构,包括提供程序 GUID 等。

所以我的问题是:在上述过程中我是否缺少一个步骤,或者问题一定出在我的跟踪代码上?

4

1 回答 1

1

原来是有问题;虽然不是我的代码。我没有在清单中包含我的事件的操作码,因此,没有记录任何事件。

如果有人偶然发现这篇文章,它可能会帮助您注意,您的事件必须具有通道、级别、操作码和模板才能实现基本功能。此外,上述过程缺少一个步骤。我需要执行以下操作:

  1. 右键单击“我的电脑”并选择“管理”
  2. 单击性能 > 数据收集器集 > 用户定义 > myProvider
  3. 右键单击右侧窗格中的 myProvider,选择“属性”
  4. 根据我在manifest中指定的设置Keywords(Any)、Keywords(All)和Level
  5. 重新启动我的机器,并通过 logman 重新启用跟踪。

上面的过程(在问题+上面的补充部分)将创建一个日志会话并从生成的 ETL 文件中生成一个基本的可读日志输出。

于 2012-06-08T19:46:24.347 回答