解决Windows DdbPrint输出消息不全的方法——by 飞尘
解决Windows DdbPrint输出消息不全的方法——by 飞尘
widows的DbgPrint用于输出消息,但是它一次只能输出512字节。
因此,当做了个小驱动让它输出我的大名时,结果是这样的:
kd> g
load me
***
*** ***
***** ***
****** **
******** ** *
******** * *** **
****** *** *** ** ** ****
******* *** *** * *** ** *****
***** *** *** **** * ** ****
*** *** *** **** *******
*** *** **** *

既然它一次输出512字节,我们想让它完整地输出,就必须加一点
自己的动作了。
计算需要输出的缓冲区是512的N倍,分配相应的空间,复制到新
空间中去,循环输出每512字节即可。
结果如下:
kd> g
load me
***
*** ***
***** ***
****** **
******** ** *
******** * *** **
****** *** *** ** ** ****
******* *** *** * *** ** *****
***** *** *** **** * ** ****
*** *** *** **** *******
*** *** **** ****
** ***** ** **
** **** * * ***
** ****** ****
** **** * ******
** **** * *********
****** ** *******
***** *** *****
************** ***
*********** ********
******* ***********
************
****

查了一下WDK发现还可以使用kctrldbg -sdg 来调节DbgPrint的输出大小
但是试了一下,它总提示0xc0000003 参数错误?。
算了,不用微软这个工具了,通用性不高。