在 Windows 8.1 中查看 DbgPrint 消息

Posted

技术标签:

【中文标题】在 Windows 8.1 中查看 DbgPrint 消息【英文标题】:Viewing DbgPrint messages in Windows 8.1 【发布时间】:2014-10-28 13:39:22 【问题描述】:

我正在尝试编写 MiniFilter 驱动程序。我已经在我的 Windows 8.1 机器上启动并运行了 Visual Studio 2013 Update 3 和 WDK,以及来自安装的名为“过滤器驱动程序:文件系统微型过滤器”的 MS 模板。我使用此模板创建了一个新项目,可以使用小批处理文件部署到远程(在我的 LAN)8.1 VM 以安装驱动程序,而不是内置驱动程序安装程序(我认为尚不支持用于微过滤器)。

在这个模板中,有许多调试语句是对 DbgPrint 的调用进行类型定义的。我真的很希望能够在 SysInternals 套件的 DebugView 中查看这些内容。显然,我需要做的就是在注册表中创建一个名为DEFAULT 的 DWORD,根据http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v=vs.85).aspx 在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter 下设置为0xF。但是,DebugView 中仍然没有显示任何内容。我在 VM 上以管理员身份启动它,并禁用捕获 Win32。

我假设来自 WDK 的部署工具会正确设置内核调试(它在我的 VM 上创建了第二个名为 WDKRemoteUser 的用户并为我运行 BCDEdit /debug),但这似乎还不够。有什么想法吗?

【问题讨论】:

【参考方案1】:

我认为问题在于测试机器必须启动,并且调试器等待附加到它。当我这样做时,内核消息会显示在 Visual Studio 调试器中,我也假设在 DebugView 中。

【讨论】:

【参考方案2】:

Sysinternals DebugView 不需要“调试开启”机器,您必须为 DebugView 使用这样的设置:

从管理员权限开始并设置以下权限: 捕获内核、启用详细内核输出、传递

现在关闭 DebugView 并以管理员身份重新打开。

如果您仍然看不到任何内容,则可能是 typedef 的 DbgPrint() 未包含在部署的驱动程序中。

【讨论】:

以上是关于在 Windows 8.1 中查看 DbgPrint 消息的主要内容,如果未能解决你的问题,请参考以下文章

pycharm社区版创建django项目(Windows 8.1)

windows 8.1 平铺背景和图像设置不正确

Windows Phone 8.1向导控件

在 Windows phone 8.1 中实时跟踪位置

如何将 Windows 商店中的 Windows Phone 应用程序(8.1 XAML)迁移到 8.1 Silverlight?

csharp 在Windows 8.1和Windows Phone 8.1应用程序中运行的Expander控件的代码隐藏。