usb驱动引起了蓝屏

toshbia   2009-4-8 15:28 楼主
还有另外一个问题,我写了 一个usb的驱动,偶尔会在插拔cable的时候引起蓝屏幕问题。。。从故障记录文件memory.dmp的信息上看,最后一行的记录

Probably caused by : hardware ( CyUsb!KUsbLowerDevice::DeActivateConfiguration+17 )
推测属于驱动中下面这个函数的m_Lower.DeActivateConfiguration();代码行造成的,但是我用的是driverstudio的框架,,这个函数有问题的话,,怎么办呢?
如何避免这个问题呢?
下面为函数原代码。。
VOID CypressRWDevice::Invalidate()
{
        NTSTATUS status = STATUS_SUCCESS;
        //if(m_bDeviceStart)
        {
                status = m_Lower.DeActivateConfiguration();
                if (!NT_SUCCESS(status))
                {
                        m_bDeviceStop = false;
                        T.Trace(TraceWarning, __FUNCTION__" DeActivateConfiguration failed, STATUS %x\n", status);
                }
        }
        if(m_bDeviceStop) //m_bDeviceStart
        {
                m_Lower.ReleaseResources();
        m_bDeviceStop = false;
        }
       
}

回复评论 (9)

如果是这个函数的问题,那就不要用它了,自己参考这个函数写段代码代替它。
DriverStudio早已停止更新了,有问题都得自己想办法解决,最好还是不要用了。
点赞  2009-4-9 00:04
你应该看下蓝屏时候的错误代码,然后在bug checks中找到对应的说明,就能确定你的蓝屏的原因了,一般是访问内存出错,或者是访问的内存指针为空,或者在高的中断级别上访问分页内存
点赞  2009-4-11 09:15
最大是不用DriverStudio
点赞  2009-4-22 15:38
不要再用这个 driverstudio 框架了,遇到问题不好找哈...
点赞  2009-4-22 15:43
不用DRIVER STUDIO
点赞  2009-4-29 15:24
这个问题好呀,学习
点赞  2009-5-5 10:47
UPING
点赞  2009-5-5 10:51
问题解决了哦,,其实也说不好是那边的问题,,我把Driver Studio生成的框架代码中部分代码的位置做了一些调整,,后来试验了三个月的应用,,没有再发现该问题了,完全是试验出来的,,详细的原因不再此讲述。
点赞  2009-5-30 17:57
请问怎样调整?
linew78@163.com
点赞  2009-8-11 15:02
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复