Windows Driver Loader?

时间:2009-07-15 11:53:02

标签: windows debugging logging driver

从Windows内核驱动程序调试消息?

我目前正在使用DbgPrint和DebugView,但这是观察司机行为的官方方式吗?有没有人知道内存日志文件是否以及在哪里被隐藏在Windows系统中(比如/ var / log和dmesg只有windows-ish?)

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

内核模式下有一个事件日志API。

请参阅IoAllocateErrorLogEntryIoWriteErrorLogEntry

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

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

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

答案 2 :(得分:1)

使用WPP软件跟踪。请参阅"Tracing and Diagnosability for WDF Drivers"

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

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

  • 可以启用,禁用&过滤运行时,也在发布版本中
  • 时间戳,功能名称,行号等可以自动包含在每个条目中
  • 高性能
  • 跟踪可以自动包含在崩溃小型转储中

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