欢迎光临 Enjoy IT (ITECN.NET) 登录 | 注册 | 帮助

QQ 和 Windows Vista

作者:张康宗(Smallfrogs, http://www.KZTechs.com)
难度:Level 100

QQ 在 Windows Vista 上不能正常运行,甚至导致 Windows Vista 崩溃的问题大家想必已经得知了。其原因有二,下面让我一一道来:

实际上,导致 QQ 在 Windows Vista 上不能正常运行的原因有3个:
1、为了保护QQ的密码输入窗口不被计算机木马程序通过技术手段获取到用户输入的内容,Tencent 公司在QQ里面嵌入了驱动程序。该驱动程序会直接从键盘中断获取到用户输入的内容,然后再传给运行在用户层的QQ程序。由于 Windows Vista 内核的调整,导致了 QQ 嵌入的驱动程序出现错误,最终导致 Windows Vista 崩溃。这个是第一个QQ不能在 Windows Vista 上正常运行的原因。
解决方法是删除 QQ 安装目录下的 npkcrypt.sys 和 npkcusb.sys 文件以标准用户权限启动QQ。

2、由于 QQ 登陆的时候会创建一个以自己 QQ 号作为文件夹名字的文件夹用于存放该 QQ 号的数据,在 Windows Vista 下,系统强制使用 NTFS 文件系统作为系统分区的文件系统,如果 QQ 安装在默认的目录下面,当一个新的用户试图使用 QQ 程序,但是这个用户没有对 QQ 安装目录进行写的权限。这个时候,QQ 将长时间的停留在正在登陆界面。
解决方法是赋予这个用户对 QQ 目录完全控制权限就可以了。

3、Windows Vista 的虚拟重定向技术也会导致 QQ 工作异常,表现为如果第一次以完整管理员权限启动QQ,第2次没有以标准用户权限启动,那么第1次的聊天记录将不能够在第2次登陆以后看到。这是因为如果默认安装在 Program Files 目录下,一个标准用户试图往 Program Files 目录下写文件时,系统会自动地重定向到虚拟文件夹 C:\Users\[用户名]\AppData\Local\VirtualStore\Program Files\Tencent\QQ\QQ号 里面。但是当以完整管理员权限启动,则 QQ 进程就会拥有往 Program Files 下写文件的权限,这个时候所有的配置信息就会写到 C:\Program Files\Tencent\QQ\QQ号 目录里面。由于这个问题,会造成QQ本地信息不同步现象的出现。

今天,Tencent 启用了第二代QQ密保https://dna.qq.com,在这个登陆界面上,我发现 Tencent 设计了一种叫做“安全模式”的登陆模式(图):

当启用这个模式以后,网页会询问是否安装一个安全控件(图):

当我对这个安全控件进行分析以后发现,这个控件也有可能导致 Windows Vista 崩溃。这是因为这个控件也采用了 npkcrypt.sys 和 npkcusb.sys 这2个和 Windows Vista 不兼容的驱动文件。

本人建议:如果您正在使用 Windows Vista,当打开第二代QQ密保网站的时候,暂时不要使用“安全模式”,否则你的系统将面临崩溃的危险。

 

已发表 2006年10月17日 23:36 作者 smallfrogs
归档在:

评论通知

如果您想在帖子更新时接到邮件通知,请先登录。这里

订阅帖子评论使用 RSS

评论

2006年10月17日 23:41 by Smallfrogs' Technical BLOG

# QQ 和 Windows Vista

2006年10月18日 0:53 by Liu_hui

# re: QQ 和 Windows Vista

他们干吗把自己搞得那么被动,都第二代了,还不好好考虑一下和Vista的兼容性问题,难道真要等Vista正式发布了,一大堆用户遇到这种问题的时候才着手解决么
2006年10月18日 0:59 by wuzhen

# re: QQ 和 Windows Vista

哈哈,这个我早就发现咯,但是没想那么多...

不过我更关心的是微软方面打算怎么解决这个问题?
2006年10月18日 1:07 by shixinyu

# re: QQ 和 Windows Vista

这是否意味着把Vista弄崩溃是一件很容易的事儿?
2006年10月18日 7:23 by appbeta

# re: QQ 和 Windows Vista

QQ就令Vista崩溃,看来用户要细心呵护Vista了……
2006年10月18日 8:36 by Lee

# re: QQ 和 Windows Vista

似乎应该是应用解决与操作系统之间的问题,而不是操作系统来解决与操作系统之间兼容性的问题。
to stone.sxy,不管什么系统,胡乱编写的软件总是很容易让其崩溃,即使是Unix,写个烂程序让它资源耗尽然后死掉,也不是啥难事。
2006年10月18日 9:30 by junxiulee

# re: QQ 和 Windows Vista

没错,应用程序写的不规范还是会导致系统不稳定的。
2006年10月18日 10:21 by Liu_hui

# re: QQ 和 Windows Vista

想起另一个问题,Vista下驱动不是已经是User Mode了么,怎么还会造成这种问题。

我不懂驱动开发,不知道这是不是也必须使用For Vista的驱动才可以实现,老版本的驱动依然是Kernel Mode的?不过刚才用Everest看了一下,就算Vista自带的驱动,也依然是Kernel Mode的,那么这到底是因为Everest无法识别新的模式还是其他什么原因
2006年10月18日 11:13 by ahpeng

# re: QQ 和 Windows Vista

To石头:
正如Lee等兄弟所言,系统crash主要是因为驱动和应用本身的问题所导致。Windows的蓝屏是对系统的一种自我保护,例如当一个编写不合法的驱动试图写入OS中的某个只读区域,系统就会马上crash,这样方便查出问题原因。而不是任由冲突发生,导致出现更严重的问题而宕机(这样更难以发现问题的真正症结)。
2006年10月18日 11:19 by ahpeng

# re: QQ 和 Windows Vista

To刘晖:
Windows Vista驱动并没有都采用user-mode。我看到的文档显示,只有打印机等的驱动采用了user-mode driver体系。
user-mode driver运行在low的级别上,这样它们就可以接受其他low进程发出的消息。IE进程就是运行在low的级别,如果某个print monitor运行在IE进程里,那么它将无法给kernel mode的驱动发消息,也就是说永远无法打印。
有关vista安全的很多课程里,都会提到一个著名的示意图,这个示意图里显示从XP到vista,系统被划分为更多的层次,服务和进程的很多特权已经取消。这里面最外层的low特权层,就列举了user-mode驱动和low进程(IE)。
2006年10月18日 20:32 by wuzhen

# re: QQ 和 Windows Vista

# re: QQ 和 Windows Vista
2006年10月18日 7:23 by appbeta
QQ就令Vista崩溃,看来用户要细心呵护Vista了……



哈哈 如果可以 含嘴里 玩笑
我这里得到的反馈Vista还是不错的操作系统,"比较坚固".

我发现Vista网络上优化了很多,BT等软件在Vista下比在XP下速度快出不少(XP 100-200 Vista 150- 300),而且IE7打开网页的速度也比IE6快.

说说您的看法?

(必填) 
必填 
(必填)