阅读:2027回复: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-15 11:27
却是有点奇怪啊!
我觉得应该还可以正常访问设备的 在2k中的驱动中有对Surprise Remove的处理 其过程基本上与stope device的操作相同。 没有卸载设备 但我用u盘的时候总是非法拔下, 以后也不影响用啊 可能会对系统有一定的影响吧 |
|
|
5楼#
发布于:2004-11-16 00:55
有做这方面的高人帮忙给出出主意吧,我这厢求您了!
|
|
|
6楼#
发布于:2004-11-16 20:58
有做这方面东西的高人请帮我试试啊,这绝对是个值得研究的问题!
|
|
|
7楼#
发布于:2004-11-29 15:35
现在开发的怎么样了?我现在被逼着开发windows上的pcmcia无线网卡驱动,从没做过驱动,惨了,一切从头来,你如果能帮帮我的话,不胜感激,我在北京,13810821706,我也可以个人出钱购买你的代码和文档,
|
|
8楼#
发布于:2007-05-15 18:02
同问,顶。
|
|
|