阅读:1276回复:2
DbgPrint()导致系统重起的问题
我在sfilter的基础上修改。
在IRP_MJ_READ历程中 : buffer = Irp->UserBuffer; DbgPrint("观察:IRP_MN_NORMAL buffer = %s\n", buffer); 发现把DbpPrint注销掉,是一点问题都没有的。很稳定 而要是加了DbgPrint 不定时的系统会重新启动 不知道为什么 还有个问题是紧接上面的代码 //Irp->IoStatus.Information = length; Irp->IoStatus.Status = STATUS_SUCCESS; Irp->Tail.Overlay.OriginalFileObject->CurrentByteOffset.QuadPart = offset.QuadPart + Irp->IoStatus.Information; IoCompleteRequest(Irp, IO_NO_INCREMENT); return Irp->IoStatus.Status; 把//Irp->IoStatus.Information = length; 注销掉是完全没有问题的,可是加上后,系统就有问题了。会导致重新启动。 请各位大虾帮帮忙解决下 |
|
沙发#
发布于:2007-11-17 08:50
gPrint("观察:IRP_MN_NORMAL buffer = %s\n", buffer);
你能保证你的buffer有空结尾? 这是基本的c编程问题... |
|
|
板凳#
发布于:2007-11-17 09:06
恩,明白,这就是为什么会导致重起的原因。
请楼上大哥能否解答:之后的问题呢。//Irp->IoStatus.Information = length; 现象是:当打开一个文件如:双击c:\Documents and Setting\Administratro\桌面\1.txt 提示:“由于应用程序配置不正确,应用程序未能启动。重新安装应用程序可能会纠正这个问题” |
|