来自 Windows 内核驱动程序的调试消息?
我目前正在使用 DbgPrint 和 DebugView,但这是观察驱动程序行为的官方方式吗?有谁知道内核日志文件是否以及隐藏在 Windows 系统中的位置(例如 /var/log 和 dmesg only windows-ish?)
就我而言,我目前正在使用 Vista,但可能有一些标准或隐藏的日志记录方式更古老但仍然有效。
/var/log 的等价物是事件日志,但您不能将它用于驱动程序,因为这太慢了。
内核模式下的事件日志有一个 API。
请参阅IoAllocateErrorLogEntry和IoWriteErrorLogEntry。
我不知道他们是慢还是快。
您应该使用 DbgPrint 进行跟踪调用,并使用Windows 内核调试工具中的 WinDbg 来调试驱动程序。WinDbg 是一个非常好的调试器,它将极大地帮助您。
PS:这不是以任何方式隐藏的。有关详细信息,请参阅 WDK 文档。
使用 WPP 软件跟踪。请参阅“WDF 驱动程序的跟踪和诊断”。
WPP 基于 Windows 事件跟踪 (ETW),这是一种内核级工具,用于记录内核模式和用户模式进程的跟踪消息。
WPP 与调试打印语句相比有一些优点:
对于最终用户的错误消息,请使用事件日志。