《Windows驱动开发技术详解》一书中,介绍了一种“Windows驱动程序日志打印和查看的方法”,具体就是:在需要打印日志的地方,调用“KdPrint”函数,该函数类似标准C的printf(print file)函数。然后用“DebugView.exe”软件查看日志。
一、引入
事实上,微软也提供了一个日志打印和日志查看机制,它可以查看指定的驱动文件的日志,并根据“Level”和“Flag”进行日志过滤,也可以保存成文件。这套机制就是“WPP”和“TraceView.exe”。
随便打开一份微软提供的驱动示例代码,如:PLX9x5x,都会看到它里面有WPP。
在WDF框架中,有一个“trace.h”头文件,在驱动的入口函数中,会用到
<span style="font-size:14px;"> //
// Initialize WDF WPP tracing.
//
WPP_INIT_TRACING( DriverObject, RegistryPath );
//
// TraceEvents function is mapped to DoTraceMessage provided by
// WPP by using a directive in the sources file.
//
TraceEvents(TRACE_LEVEL_INFORMATION, DBG_INIT,
"Pci9656 Sample - Driver Framework Edition.");</span>