无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 6541|回复: 6
打印 上一主题 下一主题

[讨论] 幽灵硬件从何而来

[复制链接]
跳转到指定楼层
1#
发表于 2011-1-26 20:10:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
换块网卡或者显卡而留下幽灵硬件的话倒也无妨,
可是因驱动的卸载而带来幽灵硬件的话,的确令我担忧。
如图所示,虚拟机里“人体学输入设备”多出4个幽灵了!
当初刚装完虚拟机时只有两个 USB 人体学输入设备的。

我卸载驱动一次,重启电脑,
重新识别硬件,这样原先的两个设备成了幽灵了。
再卸载驱动一次,重启电脑,
硬件识别之后,幽灵成了 2+2=4 了!

假设我再次卸载,……,幽灵岂不成了 2+2+2=6 了?



没话说了,经再次卸载驱动验证,完全被我猜中了。
人体学幽灵数 = 2 * 卸载次数 = 2*3 = 6 个
软驱幽灵数目 = 1 * 卸载次数 = 3
下面 HID-compliant mouse 有一大串……



结论:
    幽灵硬件主要来自驱动的卸载!
至于更换网卡、显卡或者U盘之类带来的幽灵硬件我可以完全忽略,
但是,若因驱动的卸载而导致“灵满为患”的话,那真的是令人无法忍受。



通过删除注册表里以下子键的整个键值
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
我消除了成批的幽灵。
再重新启动电脑一次,发现上不了网!
然后再次重启电脑,竟然又能上网了……

猜想:
    系统封装前,如果卸载了某个驱动,
    系统封装后,还应当删除与此对应的注册信息。
    这个信息不删除的话,下次就会成为幽灵了。



我通过完全删除以下3个键值的方法可以消除幽灵硬件:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Enum (本项与上一项只需删除任意一项即可)
    HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Enum (本项不删也行)
却不知这种方法是否会带来更多的问题?
诸如今后使用功能上的问题,还有其它键上的残余信息等等……

[ 本帖最后由 2010- 于 2011-1-27 21:15 编辑 ]
2#
 楼主| 发表于 2011-1-26 20:35:57 | 只看该作者
不知道手动卸载驱动会不会出现这样的现象。
我是用批处理自动卸载的,执行命令 devcon remove 硬件ID
这条命令仅仅删除驱动,却不清除注册表里与之相关的残余信息……

另外,幽灵硬件查看工具网上可以搜索到。

[ 本帖最后由 2010- 于 2011-1-27 21:26 编辑 ]
回复

使用道具 举报

3#
 楼主| 发表于 2011-1-28 11:09:29 | 只看该作者
倒不是我对幽灵硬件斤斤计较,看一下截图或许会令人大吃一惊。

我在虚拟机里安装了一个 Windows XP,然后对此系统进行封装,再制作 Ghost 镜像。
最后将 Ghost 镜像还原到真实电脑,得到一个 Windows XP 的克隆系统。
在这台真实电脑里使用幽灵硬件查看器查看了一下,结果如图所示。



在真实电脑里,原虚拟机里的硬件基本全部报废,生成大批幽灵。
无论封装前有没有卸载驱动,只要不清除注册表信息,这些幽灵都将存在。
撇开克隆后的系统性能不谈,仅仅看一下这副截图就够伤大雅的了。
特别是系统设备里那一大串 PCI standard PCI-to-PCI bridge !

本来,我是想制作一个完美接近于安装版的 Windows XP Ghost 镜像文件,
现在看来很不现实了,就凭我这两三下,是搞不了的。
而我那彻底删除以下键值的方法,
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum
虽然能够消除幽灵,但并没有清除注册表里其它键值中残余的驱动信息。
最重要的问题就是担心系统功能会因此而受到影响,
如果真是那样,那等于是制作了一个畸形的 Ghost 系统了。

[ 本帖最后由 2010- 于 2011-1-28 12:52 编辑 ]
回复

使用道具 举报

4#
发表于 2011-1-28 12:08:44 | 只看该作者
devcon /findall *
搜索所有设备 包括以前安装过的

个人觉得这些就是以前安装过的吧
回复

使用道具 举报

5#
 楼主| 发表于 2011-1-28 12:33:14 | 只看该作者
3楼截图里那些发虚的是虚拟机里的原有硬件,现在Ghost到我的真实电脑里,也可以看成是以前安装的。
1楼截图里是调用 devcon remove 硬件ID 卸载驱动程序后形成的。
命令 devcon remove 在卸载驱动之后,似乎并不清除注册表里与之对应的注册信息。
而 Windows 在重新识别之前被卸载的硬件时,好象是在注册表里重新注册,
这样,旧的注册信息似乎就成垃圾了……

[ 本帖最后由 2010- 于 2011-1-28 12:48 编辑 ]
回复

使用道具 举报

6#
发表于 2011-1-28 14:39:29 | 只看该作者
你去这里看看吧,红色字的第6点是封装时删除注册表信息的。

http://bbs.wuyou.net/forum.php?mod=viewthread&tid=129853
回复

使用道具 举报

7#
 楼主| 发表于 2011-1-28 15:49:31 | 只看该作者
非常感谢楼上的推荐!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2025-8-3 20:22

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表