从Windows内核驱动程序调试消息?
我目前正在使用DbgPrint和DebugView,但这是观察司机行为的官方方式吗?有没有人知道内存日志文件是否以及在哪里被隐藏在Windows系统中(比如/ var / log和dmesg只有windows-ish?)
我个人目前正在使用Vista,但可能有一些标准或隐藏的日志记录方式,这些方法更老但仍然有效。
答案 0 :(得分:1)
/ var / log的等价物是事件日志,但你不能将它用于驱动程序,因为它太慢了。
答案 1 :(得分:1)
内核模式下有一个事件日志API。
请参阅IoAllocateErrorLogEntry和IoWriteErrorLogEntry。
我不知道他们是慢还是快。
您应该使用DbgPrint进行跟踪调用,并使用Windows kernel debugging tools中的WinDbg来调试驱动程序。 WinDbg是一个非常好的调试器,它可以帮助你。
PS:这不是以任何方式隐藏的。有关详细信息,请参阅WDK文档。
答案 2 :(得分:1)
使用WPP软件跟踪。请参阅"Tracing and Diagnosability for WDF Drivers"。
WPP基于Windows事件跟踪(ETW),这是一个内核级工具,可记录内核模式和用户模式进程的跟踪消息。
WPP与调试打印语句相比有一些优势:
对于最终用户的错误消息,请使用事件日志。