阅读:1140回复:5
(急)如何避免直接拔出设备引起的死机问题
我编写的USB设备驱动在正常情况下运行的很好,但如果在传输数据的时候突然把设备拔出(非法操作),一定会出现PAGE FAULT问题。我跟踪了一下原代码,发现拔除设备后系统直接发送remove device irp,但驱动程序仍然在内存中。继续发送数据还会调用驱动程序。请问高手该如何避免这种非法操作(没法老板逼着解决这个问题)
|
|
沙发#
发布于:2003-07-24 10:53
你的驱动程序有严重错误。
|
|
板凳#
发布于:2003-07-24 16:18
处理相应的PNP IRP
|
|
地板#
发布于:2003-07-25 08:59
remove device irp要做相应的处理。
当热插拔数设备时,你的读写设备的 IRP 就会返回错误,这你也要仔细的处理。其实这些都属于异常处理的问题。 |
|
|
地下室#
发布于:2003-07-25 10:29
能否讲的详细点?
remove device irp要做如何相应的处理。 如何处理异常处理,或告诉我在哪里有资料?谢谢! |
|
5楼#
发布于:2003-07-25 12:55
remove device irp里应当delete device(IoDeleteDevice),当调用了IoDeleteDevice后,设置DeviceObject为空(NULL);在驱动里的需要DeviceObject的地方都要判断DeviceObject是否为空(== NULL)
[编辑 - 7/25/03 by dazzy] |
|