阅读:1311回复:4
安装死机的虚拟miniport驱动!(WDM:给分50!)
在WDM框架下,写一个miniport可是在安装过程中总是死机!
我发现有几个常见的现象: 1)在发送阶段申请的指针没有销毁(不是我没有delete,而是...); 2)死机之后,系统自动安装了好几个网卡驱动:ndiswan.sys;raslztp.sys;raspptp.sys;raspti.sys 我判定初步原因是在send()例程中的指针没有销毁! 我的思路:在send()例程中将接收的分组封装成以太帧,向NDIS提前通知,通知完毕就销毁该缓冲区! 疑惑: 1)一般在中断处理程序调用Indicate,是不是与中断有关? 2)为什么销毁不了指针? KNdisPacket pkt(Packet);//接收分组 buf = pkt.QueryFirstBuffer(); 。。。 while(buf.IsValid())//如果有缓冲!! { //将分组组装在以framebuf为指针的缓冲中,组装为以太帧 framebuf = new char[FrameLen]; //提前通知 m_Lookahead.Indicate (this, 16, IndicateLen, buf.Length(), framebuf); //在缓冲链中的下一个缓冲 buf = buf.GetNext(); //销毁(好像总没有运行!) delete framebuf; } m_Lookahead.IndicateComplete(this);//程序最后! |
|
沙发#
发布于:2004-03-25 08:52
和我碰到的问题一样
顶一下 |
|
板凳#
发布于:2004-03-25 09:00
是不是发送后的状态不是STATUS_SUCCESS,可能在PENDING状态
|
|
|
地板#
发布于:2004-03-25 12:10
我认定:一定是发送不正确,因而内存不能正确释放,对同一个指针变量重复申请内存,当发送次数超过某个限制造成内存的页面泄漏,所以才死机现象。
问题: 1)为什么系统这个时候要自动安装许多无关的miniport驱动呢? 2)怎样才能解决虚拟环境下的发送问题? |
|
地下室#
发布于:2004-03-26 13:57
在WDM框架下,写一个miniport可是在安装过程中总是死机! 我遇到过你这种情况,安装和收发例程无关系 我也是根据ne2000更改的虚拟网卡驱动,没有硬件,安装成功,并且能设置IP地址,只是我还没有写收发功能(保留ne2000的源代码)。我给你发信了,收到没? |
|
|