阅读:1313回复:6
如何卸载VXD?送50分!
问题是这样的:当应用程序被非法中止时,vxd就没有机会被卸载,等到我再次启动应用程序时,用CreateFile()打开VXD结果返回错误,请问有没有办法在这个时候卸载掉VXD,然后再重新加载VXD?
|
|
沙发#
发布于:2004-01-03 11:23
你应该想的是如何防止你的应用被异常终止,而不是这个
比如你因该在你的应用里加上SEH机制,在发生异常的时候自己卸载VXD,而不是靠别的什么程序,当然,最好避免程序的异常终止,说明你的程序有不完善的地方。。。。。。 |
|
|
板凳#
发布于:2004-01-03 11:41
没错,老大说得非常对!确实是应该先避免程序异常,但是如果避免不了的话,有没有办法实现呢?还有一种情况就是如果用户按了Alt+ctl+delet来中止应用程序时,SEH是不是也可以发挥作用?还有就是我对SEH一点都不了解,能否提供一些信息该如何做?谢谢?
|
|
地板#
发布于:2004-01-03 11:43
发表帖子的时候忘了改为50分了,不好意思!我再开个帖子给分吧!
|
|
地下室#
发布于:2004-01-03 20:04
SEH机制可以参考HUME的SEH教程网上很多的
还有如果你想防止Alt+ctl+delet,可以参考WIN9X下的 RegisterServiceProcess来注册为系统服务,防止被意外关掉。。。。。 |
|
|
5楼#
发布于:2004-01-03 22:50
如果你在AP里打开了driver的句柄,这时候按Alt+ctl+delet应该是杀不死你的AP的吧?
|
|
6楼#
发布于:2004-01-04 11:20
楼上,用户按了alt+ctl+del让然可以终止APP的,只是driver却仍然在内存中,所以才导致我上面说得问题,在下一次程序启动时无法再次加载driver了!另外非常感谢wowocock的提示!
|
|