【问题标题】:ETW Tracing in a Driver -- post-procedure驱动程序中的 ETW 跟踪 - 后处理
【发布时间】:2012-06-12 19:19:12
【问题描述】:

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

wevtutil im myManifest.xml

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

logman create trace myProviderName -o Log.etl -p "{myProviderGUID}" -f bincirc -max 1000

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

logman stop myProviderName

tracerpt Log000001.etl

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

所以我的问题是:我在上述过程中缺少一个步骤,还是我的跟踪代码有问题?

【问题讨论】:

    标签: c++ windows wdk etw


    【解决方案1】:

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

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

    1. 右键单击“我的电脑”并选择“管理”
    2. 单击性能 > 数据收集器集 > 用户定义 > myProvider
    3. 右键单击右侧窗格中的 myProvider,选择“属性”
    4. 根据我在清单中指定的内容设置关键字(任何)、关键字(全部)和级别
    5. 重新启动我的机器,并通过 logman 重新启用跟踪。

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

    【讨论】:

      猜你喜欢
      • 2010-12-22
      • 2012-08-29
      • 1970-01-01
      • 1970-01-01
      • 2019-02-25
      • 2019-04-24
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      相关资源
      最近更新 更多