|
还有另外一个问题,我写了 一个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;
}
}
|
|