在 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 商店中的 Windows Phone 应用程序(8.1 XAML)迁移到 8.1 Silverlight?
csharp 在Windows 8.1和Windows Phone 8.1应用程序中运行的Expander控件的代码隐藏。