【问题标题】:Windows Driver Loader?Windows 驱动程序加载器?
【发布时间】:2009-07-15 11:53:01
【问题描述】:

来自 Windows 内核驱动程序的调试消息?

我目前正在使用 DbgPrint 和 DebugView,但这是观察驱动程序行为的官方方式吗?有谁知道内核日志文件是否以及隐藏在 Windows 系统中的位置(例如 /var/log 和 dmesg only windows-ish?)

就我而言,我目前正在使用 Vista,但可能有一些标准或隐藏的日志记录方式,它更老但仍然有效。

【问题讨论】:

    标签: windows debugging logging driver


    【解决方案1】:

    在内核模式下有一个用于事件日志的 API。

    参见IoAllocateErrorLogEntryIoWriteErrorLogEntry

    我不知道它们是慢还是快。

    您应该使用 DbgPrint 进行跟踪调用,并使用来自Windows kernel debugging tools 的 WinDbg 来调试您的驱动程序。 WinDbg 是一个非常好的调试器,对你有很大帮助。

    PS:这并没有以任何方式隐藏。有关详细信息,请参阅 WDK 文档。

    【讨论】:

    • 知道要搜索的正确术语是成功的一半。谢谢。
    【解决方案2】:

    /var/log 的等价物是事件日志,但您不能将它用于驱动程序,因为那样太慢了。

    【讨论】:

      【解决方案3】:

      使用 WPP 软件跟踪。见"Tracing and Diagnosability for WDF Drivers"

      WPP 基于 Windows 事件跟踪 (ETW),这是一种内核级工具,可记录内核模式和用户模式进程的跟踪消息。

      与调试打印语句相比,WPP 有一些优势:

      • 也可以在发布版本中启用、禁用和过滤运行时
      • 时间戳、函数名称、行号等可以自动包含在每个条目中
      • 高性能
      • 可以在崩溃迷你转储中自动包含跟踪

      对于最终用户的错误消息,请使用事件日志。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-11-15
        • 1970-01-01
        • 2016-12-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-28
        • 1970-01-01
        相关资源
        最近更新 更多