由句柄所调用的 NtClose 已使用 NtSetInformationObject 以防止关闭 问题解决
今天使用VS2008调试dll程序,调用dll的exe抛出异常
由句柄所调用的 NtClose 已使用 NtSetInformationObject 以防止关闭
发现原因是小红伞Avira更新导致的。
官方的解决方案为:
http://www.avira.com/de/support-for-free-faq-detail/faqid/805
不过是德语的
官方称这个bug已经被修复,可以通过产品更新将目前使用的
avipbb.sys 10.0.22.20 更新到 avipbb.sys 10.0.22.22
就不会再发生上述的情况。但是中文版的似乎更新不上。我尝试更新了,但是截止到目前为止更新下来的仍然是avipbb.sys 10.0.22.20,不解决问题,估计是中文版的更新速度跟不上英文版的原因。
有两个解决方法:
1.安装12月20日发布的英文版Avira,直接安装即可覆盖现有的安装。
http://free-av.com/zh-cn/download/download_servers.php
选择下载avira_antivir_personal_en.exe
下载后可以看一下:avipbb.sys 已经是 10.0.22.22 版本的了。
2.使用了下面的临时解决方法。
临时解决方案步骤如下:
1.Open the configuration via " Tools → Configuration "Avira AntiVir in the" Product Update ". There you disable the automatic product update.
1.打开配置 通过“附加程序-->配置” 将更新->产品更新->选择不下载产品更新
2.Under " General → Security ", please temporarily disable the protection of file and Regisrtyeinträge.
2.常规-->安全 将防止对文件和注册表进行操作勾掉
3.Next, please rename the file "C: / WINDOWS / system32 / drivers / avipbb.sys in avipbb.sys.bak" around.
3.将C: / WINDOWS / system32 / drivers / avipbb.sys 重命名为avipbb.sys.bak
4.Please run now reboot and check your back to protect the file and registry entries.
4.将防止对文件和注册表进行操作重新勾上,然后重启电脑。
可以勾上之后先试一下,对于我的电脑,这时VS2008已经可以调试dll了。不过重新启动之后杀毒软件就不管用了,可要小心中毒啊。