man*_*ged 16
我能够在windbg中修复它,在Windows 7 32位上:
ed Kd_DEFAULT_Mask 8
Run Code Online (Sandbox Code Playgroud)
根据msdn文章,您也可以使用注册表,但必须重新启动它才能生效.在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Debug Print Filter调用下创建一个DWORD键DEFAULT,其值为8.
有关最新的microsoft文档,请访问:http://msdn.microsoft.com/en-us/library/windows/hardware/ff551519(v = vs.85).aspx
grz*_*z_p 13
好的,我在这里找到了解决方案.它可能会帮助人们:
问题:在Windows Vista上运行驱动程序时,您的DbgPrint或KdPrint消息不会出现在WinDbg(或KD)中.
原因?Vista自动将DbgPrint和朋友映射到DbgPrintEx.现在,您可能还记得,DbgPrintEx允许您通过函数调用中的组件名称和级别以及注册表或内存中的关联过滤器掩码过滤消息来控制将消息发送到内核调试器的条件.
在Vista中,DbgPrint和KdPrint映射到组件"DPFLTR_DEFAULT_ID"和级别"DPFLTR_INFO_LEVEL".当然,在Vista中,默认情况下禁用xxx_INFO_LEVEL输出.因此,默认情况下,您的DbgPrint/KdPrint不会被发送到内核调试器.
怎么解决?两种选择:
默认情况下启用DbgPrint/KdPrint消息的输出 - 打开密钥
HKLM\SYSTEM\CurrentControlSet\Session Manager\Debug Print Filter.在此键下,使用名称创建一个值将此键的值DEFAULT设置为等于DWORD值8,以启用xxx_INFO_LEVEL输出和xxx_ERROR_LEVEL输出.或者尝试将掩码设置为0xF,以便获得所有输出.您必须重新启动才能使这些更改生效.专门更换组件过滤器桅杆
DPFLTR.在Vista/LH的早期版本中,您通过在Kd_DPFLTR_MASK("ed Kd_DPFLTR_MASK")指定DWORD的掩码值来更改默认打印输出掩码.在构建5308(Vista的2月CTP)中,似乎掩码变量已更改,您需要在Kd_DEFAULT_MASK("ed Kd_DEFAULT_MASK")设置DWORD的掩码值.在任何一种情况下,DPFLTR_INFO_LEVEL除了DPFLTR_ERROR_LEVEL输出之外,还指定8以启用输出或0xF以获得所有级别的输出.有关使用DbgPrintEx/KdPrintEx的完整详细信息,请参阅WDK文档以获取读取和过滤调试消息(请参阅路径:驱动程序开发工具\用于调试驱动程序的工具\在驱动程序\调试代码概述中使用调试代码).或者在DbgPrintEx上查看Windows调试工具文档(附录A).
| 归档时间: |
|
| 查看次数: |
17815 次 |
| 最近记录: |