我无法使DbgView.exe在我的Windows10 64位v2004虚拟机上正常工作。如果使用KdPrint,该程序不会从驱动程序捕获任何内核消息,但在DbgPrint上运行良好。我已经尝试了"bcdedit /debug on",在注册表编辑器中添加了"Debug Print Filter“,并重新启动,启用了详细的内核输出。我也在我的主机上尝试过,同样的结果。它是一个非常简单的驱动程序,只需加载和卸载,从Windows内核编程一书中复制而来。
这是可行的
DbgPrint("Driver initialized.\n");这不是
KdPrint(("Driver initialized.\n"));任何帮助都将不胜感激!
发布于 2020-08-06 01:34:37
跳转到KdPrint,你会看到预处理的魔力:
#if DBG
#define KdPrint(_x_) DbgPrint _x_
#define KdPrintEx(_x_) DbgPrintEx _x_
#define vKdPrintEx(_x_) vDbgPrintEx _x_
#define vKdPrintExWithPrefix(_x_) vDbgPrintExWithPrefix _x_
#define KdBreakPoint() DbgBreakPoint()
#define KdBreakPointWithStatus(s) DbgBreakPointWithStatus(s)
#else
#define KdPrint(_x_)
#define KdPrintEx(_x_)
#define vKdPrintEx(_x_)
#define vKdPrintExWithPrefix(_x_)
#define KdBreakPoint()
#define KdBreakPointWithStatus(s)
#endif // DBG wudfwdm这意味着如果您使用Release配置进行编译(不会定义DBG宏),KdPrint不会发生任何事情。
所以这不是DbgView的问题。
发布于 2021-11-25 23:20:30
即使使用调试编译的驱动程序,winPE上的dbgView 4.90 (dbgview64.exe)也不会打印KdPrint,除非您同时单击Capture,Capture Kernel和Capture,Enable Verbose Kernel Output。
https://stackoverflow.com/questions/63256262
复制相似问题