阅读:2041回复:8
PCMCIA驱动――一个不得不问的问题!
问题的产生过程:
1、我在用户态程序中用设备接口GUID打开设备,获得设备句柄; 2、在程序不关闭句柄的情况下,拔走设备; 3、再次插上设备; 4、程序再次通过设备接口GUID获得设备句柄; 5、退出程序; 6、再次启动程序; 7、继续用设备接口GUID获取设备句柄; 8、访问设备,这时设备无法正常工作。 好像对I/O端口操作不起作用了,不知何故? |
|
|
沙发#
发布于:2004-11-10 22:25
对上面的问题,我再补充几点:
1、此PCMCIA驱动程序是用Driver Studio 2.6生成的; 2、此问题在2K和XP上肯定会出现,在98上不一定有,因为98没有Surprise Remove的概念。 3、可热插拔的PnP设备应该都会碰到这个问题,打开的设备句柄没有完全关闭就拔走了设备,会导致驱动程序不能完全卸载。 |
|
|
板凳#
发布于:2004-11-10 22:44
各操作背后,驱动程序层的动作:
1、我在用户态程序中用设备接口GUID打开设备,获得设备句柄; 2、在程序不关闭句柄的情况下,拔走设备;//驱动没有完全卸载 3、再次插上设备; //驱动创建一个新的设备对象,并配置启动 4、程序再次通过设备接口GUID获得设备句柄; 5、退出程序; //老的设备对象得到删除 6、再次启动程序; 7、继续用设备接口GUID获取设备句柄;//仍可成功获得设备句柄 8、访问设备,这时设备无法正常工作。//IRP仍可到达设备对象 |
|
|
地板#
发布于:2004-11-14 19:24
没人理我,估计大家都没有碰到过这样的问题!
|
|
|
地下室#
发布于:2004-11-16 00:55
有做这方面的高人帮忙给出出主意吧,我这厢求您了!
|
|
|
5楼#
发布于:2004-11-16 20:58
有做这方面东西的高人请帮我试试啊,这绝对是个值得研究的问题!
|
|
|