4  Windows下硬件运行异常

我们在使用Windows时,经常会遇到各种各样的问题,比如在运行过程中出现错误信息,遇到某些设备不能正常使用,使用时死机,无法关机等,产生这些故障的原因多种多样,有些是硬件原因,有些是软件原因,需要具体情况具体分析。本章将分类别归纳同种故障现象产生的不同原因和处理方法。读者只要详细阅读此章后,应该就能独立解决一些常见的Windows故障。

4.1  设备工作不正常

Windows环境下,硬件设备工作不正常首要检查的应该是驱动程序,因为驱动程序是连接硬件与操作系统的桥梁。除此之外,还应该考虑硬件之间的兼容性问题,以及硬件本身的稳定性。

4.1.1  USB设备为何工作不正常

问:我有一个杂牌U盘,插入我家的电脑后总显示“不知名的USB设备”,更换到其他USB口后仍然无法使用,而在家里的电脑上使用其他USB设备却很正常,请问是什么原因,是不是我的主板不支持?

答:现在USB设备已经越来越普及了,但随着USB设备的增多,用户也遇到了各式各样的问题。一般来说,出现无法识别USB设备的情况,大多因为USB设备所需要的电量较多,而主板USB端口又供电不足。

杂牌USB设备因为做工较粗,导致功耗较大,因此即使遇到名牌的主板,也可能因为主板无法供应足够的电量而无法使用。而如果是杂牌主板,因为无法给USB口提供足够的电量,那么也就自然无法使用USB设备。因此USB设备是否能够正常使用取决于USB设备和主板两方面的共同作用。

外,如果使用了USB延长线或者将USB设备插到了机箱的前置USB口,那么这一类问题也是经常出现的。其原因同样也是因为供电问题。所以,出现USB设备不能正常使用的时候,最好先把USB设备直接插到机箱后面的主板USB口上试试,如果还不行的话,那就是主板USB端口供电不足的原因了。解决的方法也只有更换主板或者USB设备,因此在选购主板和USB设备时尽量选择比较知名的品牌,而且尽量少使用USB延长线。

4.1.2  驱动程序引起硬件工作不正常

问:我新安装了一个显卡,但是发现它不能正常工作,有时出现花屏,甚至会死机,工作极不正常,请问如何解决这个问题?

答:除了硬件本身的问题以外,我们要特别注意驱动程序的安装。根据笔者的经验,硬件本身的故障非常少见,而驱动程序方面的问题才是最为常见的。

操作系统只有通过驱动程序才能控制硬件设备的工作。假如某硬件设备的驱动程序未能正确安装,或者是安装的版本不正确,就会使硬件工作不正常。这时就需要我们卸载以前安装的驱动程序,再来安装其他的驱动程序,下面介绍几种卸载驱动程序的方法。

1)运行卸载程序。直接运行驱动程序自带的卸载程序就行了,目前绝大多数的主板驱动程序、ATINVIDIA显卡驱动程序、声卡驱动程序一般都带有这种卸载程序,就像我们删除普通软件一样,使用起来极为简单,卸载得也很干净。

2)在设备管理器中删除。如果驱动程序中不带有卸载功能,在设备管理器中一般也可以直接删除,具体操作可参考本书第16章的驱动程序专题。

3)还原注册表。错误的驱动程序可能造成系统无法正常启动,尤其是主板驱动更是如此。一旦无法启动,可以试试启动安全模式,再按上述的方法操作就可以了。但如果连安全模式也进不去,就只能试试最后一种卸载方法了:还原注册表。因为硬件驱动安装后会对系统注册表作出相应的修改,如果将注册表还原到此前状态,尽管驱动并未彻底从系统中删除,但已经不起任何作用了。

Windows 98系统中还原注册表的方法在本书第12章第5节有详细的介绍,在此不再赘述。

Windows 2000/XP系统中还原注册表的方法是:在启动选单下选择“最后一次正确配置”,这一项的操作只还原注册表项[HKEY_LOCAL_MACHINE\SYSTEM\ControlSe]中的信息,而其他注册表项中所作的更改均保持不变,所以既可以解决驱动程序与硬件不相符的问题,又不影响其他软件的运行,但注意一定要经常备份注册表。

4.1.3  摄像头在笔记本上工作不正常

问:我有一个摄像头,原来在品牌台式电脑上可以正常使用,但是连接到笔记本电脑后就不能使用了。请问是否与笔记本电脑上的什么设备有冲突?我查看过“设备管理器”中并没有黄色符号。

答:摄像头与显示卡最容易冲突,发生问题之后,除了查找摄像头自身的原因外,最主要的就是要检查显示卡。我们可以尝试降低图形显示卡的速度以起到使摄像头与显卡相互兼容的目的。具体操作步骤如下:

1)在桌面上单击鼠标右键,选择“属性”,打开“显示属性”对话框,如图4-1所示。

2)单击“设置”选项卡,然后单击“高级”按钮,进入“即插即用监视器和Randeon 9550属性”对话框,如图4-2所示。

3)单击“疑难解答”选项卡,将“硬件加速”滑块从最高档降低一档,然后重新插入摄像头。如果摄像头仍不能正常使用,再次降低“硬件加速”级别。

4)如果在某一档上摄像头可以使用,那么再逐渐提高“硬件加速”级别,直到操作系统找到摄像头并可以正常使用,同时“硬件加速”级别又足够使用的平衡点。

            

4-1  显示属性                            4-2  显卡硬件加速

4.1.4  使用USB硬盘引起资源冲突

问:我新装的电脑,在未超频未安装任何PCI设备的情况下,安装了随主板附带的主板驱动,能够正常使用。但安装移动硬盘自带的USB2.0驱动程序后发现硬盘不能正常使用,有时不能被发现,有时被发现后又认不出USB移动硬盘。请问如何解决?

答:安装主板驱动程序后,USB设备不能正常使用的问题应该首先考虑到IRQ的分配。查看方法如下:

1)在“我的电脑”上右键单击,选择“属性”,出现“系统属性”对话框,单击“硬件”选项卡,如图4-3所示。

2)单击“设备管理器”按钮,双击“通用串行总线控制器”展开子选项,如图4-4所示。

            

4-3  系统属性“硬件”对话框图                  4-4  设备管理器IDE设备

3)双击“Sis 7001 PCI to USB Open Host Controller”,在出现的“Sis 7001 PCI to USB Open Host Controller 属性”对话框中,单击“资源”标签,出现如图4-5所示对话框。

4-5  硬件资源

通过上述操作可以发现USB设备(PCI 0上的设备2)和声卡(PCI 0上的设备6/5)、网卡(PCI 0上的设备4)共用一个中断IRQ20。由此我们既找到了故障所在,同时也找到了解决问题的方法:只要为每一个硬件分别指定IRQ就可以了。

如果更改中断界面中的“更改设置”按钮是灰色的,如图4-5所示。那么只能从BIOS里面为USB分配中断,同时也要按照顺序重新安装各种驱动程序。操作步骤如下:

1)进入BIOS设置,并选择“Onboard Peripherals”选项卡,找到“AssignAllocate IRQ To USB”一项,设为Enable,为USB分配中断,如图4-6所示。

4-6  AssignAllocateIRQ To USB设置选项

2)然后在操作系统中卸载声卡和网卡驱动程序,重新启动后,在BIOS中禁用这些设备。操作方法与(1)相反,设置为Disable

3)再依次安装USB驱动程序、声卡驱动程序、网卡驱动程序,并且保证每次只安装1个设备。

如果还不能解决问题,则参考主板说明书手动指定资源,比如声卡的中断为9USB设备的中断为10、网卡的中断为11,并在BIOS内将“PNP OS Installed”设为No,此操作有可能需要重新安装操作系统。

4.1.5  解决电脑声卡不正常工作的问题

问:我的声卡以前工作正常,最近出现了问题,玩游戏时没有声音。不知道是什么方面的问题?

答:声卡类的问题应该首先检查工具栏右下角的“小喇叭”,是否出现一个红色中间带一杠的圆圈。如果是的话,那是由于将声卡输出设置为“静音”所致,如图4-7所示。只需单击“小喇叭”图标,在出现音量调节滑块后,去掉“静音”复选项前的对钩即可,如图4-8所示。

文本框:  
图4-7  声音图标

如果安装了新版的DirectXWindows启动时有声音,用Windows Media Player播放MP3时有声音,惟独玩游戏时没有声音。这时可以到“DirectX诊断工具”的“声音”一项中,将“硬件的声音加速级别”从“完全加速”调为“没有加速”即可。操作步骤如下:

1)单击“开始”菜单,单击“运行”,输入“DxDiag”并执行。

2)单击“声音”选项卡,出现如图4-9所示对话框。

3)把“硬件的声音加速级别”滑杆拉到最左方,这样可以关闭声卡主DSP芯片的加速功能。

           

4-8  音量控制                         4-9  DirectX声音测试

声卡的故障有时候需要检查一下音箱与声卡的接口是否有松动,音箱是否正常工作,如果问题仍然存在,该问题应该是声卡损坏造成的,建议更换声卡。

4.2  单个程序CPU占用率达100%

如果在正常操作过程中发现单个程序的CPU占用率达100%,那么极有可能是病毒引起的,而系统设置与软件之间的冲突也会导致该问题的出现。这种情况千万不要认为是硬件问题,因为如果是硬件问题,CPU不但不会占用100%,反而会经常死机。

4.2.1  网络连接导致CPU占用率达100%

问:我的机器安装了Windows XP专业版,并且自己安装了IIS服务用来进行网站服务,但是经常发现机器的CPU使用率达到100%,并伴随有死机现象发生,请问是什么原因?

答:处理这种故障,首先要查看网络连接,尤其是网卡。当Windows XP作为服务器时,如果收到来自端口445的连接请求,系统将分配内存和少量CPU资源来为这些连接提供服务,而当负荷过重时,就会出现上述情况。

要解决这个问题可以通过修改注册表来解决,具体操作步骤如下:

1)首先单击“开始”菜单,然后单击“运行”选项,在出现的“运行对话框”的“打开”文本框中输入“regedit”命令,运行注册表编辑器。

2)依次找到

HKEY_LOCAL_MACHNE\SYSTEM\CurrentControlSet\Services\lanmanserver,如图4-10所示。

3)在右面窗格新建一个名为“maxworkitems”的DWORD值,如图4-11所示。

  

4-10  注册表lanmanserver键值                   4-11  新建DWORD

4双击该值,如果你的电脑有512 MB以上内存,就设置为“1024”;如果小于512MB就设置为256,如图4-12所示。

4-12  设置DWORD

4.2.2  expiorer.exe进程造成CPU使用率达100%

问:我的电脑最近运行速度慢,而且在任务管理器里发现有一个名为expiorer.exe的进程的CPU使用率总是达到100%。听说expiorer.exe是系统的必备程序,请问是不是我的系统出现了问题?

答:这种情况是因为用户的机器感染了病毒,有些病毒为了更好地隐蔽自己,经常伪装成系统文件的名字。本例中的expiorer.exe就是模仿系统正常程序Explorer。其第四个字母是英文字母i而不是英文字母l,二者之间只有一个字母之差。

expiorer.exe进程是木马程序Acid Battery的主程序,正是因为该木马造成CPU使用率为100%,因此只要阻止这个木马的运行就可以了。具体操作步骤如下:

1)首先单击“开始”菜单,然后单击“运行”选项,在出现的“运行”对话框的“打开”文本框中输入“regedit”命令,运行注册表编辑器。

2)依次找到

HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer键值,删除Explorer=C:\Windows \expiorer.exe”即可,如图4-13所示。

4-13  阻止Expiorer病毒启动

3)进入到C:\Windows文件夹中删除expiorer.exe文件。至此病毒成功删除。

此操作实际上是一种手动删除病毒的方法,希望读者能掌握并能用同样的方法来处理其他病毒。

4.2.3  svchost.exe造成CPU使用率达100%

问:我的电脑最近运行速度慢,而且在任务管理器里发现有多个名为svchost.exe的进程的CPU使用率总是达到100%。请问是什么原因?

答:这种情况很多用户认为是病毒造成的,甚至有一种说法是凡是svchost.exe都是病毒。其实这种说法是不恰当的,在此笔者详细说明一下svchost.exe的作用。

首先我们要了解的是Windows系统中的进程分为独立进程和共享进程两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源,微软把很多的系统服务做成了共享模式,而svchost.exe的作用就是作为这些服务的宿主,也就是说由svchost.exe来启动这些服务。

svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。因此svchost.exe只是负责为这些服务提供启动的条件,其自身并不具备实现任何服务的功能,当然也不能为用户提供任何服务。

正是因为svchost.exe的这种特殊性,所以使得程序的启动方式更为隐蔽,因此也越来越多地被病毒、木马的编写者所利用。它们总是挖空心思地利用svchost.exe的这个特性来迷惑用户以达到入侵、破坏电脑的目的。

如果怀疑电脑有可能被病毒感染,或者svchost.exe的服务出现异常的话,一般来说只要通过搜索svchost.exe文件就可以发现异常情况。正常情况下只会找到一个在 C:\Windows\System32目录下的svchost.exe程序。如果在其他目录下发现svchost.exe程序,那很可能就是中毒了。

上面简单地介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是系统的一个核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计地入侵svchost.exe。上面介绍了一种简单有效的方法,即只要通过察看svchost.exe进程的执行路径就可以确认是否中毒。同样地,这种思路也同样适用于其他病毒。

4.2.4  Windows XP中使用鼠标右键引起CPU 100%占用问题的解决

问:我的机器在资源管理器里面使用鼠标右键单击一个目录或一个文件时会导致CPU资源100%占用,并且会导致机器反应速度变慢,当关闭快捷菜单的时候才返回正常水平。不知应该如何解决?

答:这种故障是因为右键弹出菜单的过渡效果造成的,只要关闭“为菜单和工具提示使用过渡效果”就可以了。具体操作步骤如下:

1)单击“开始”菜单,进入“控制面板”,在控制面板里双击“显示”图标,打开“显示属性”对话框。

2)单击“外观”选项卡,如图4-14所示。

3)单击“效果”按钮,出现如图4-15所示的“效果”对话框。

         

4-14  设置Windows外观               4-15  禁用菜单和工具的过渡效果

4)在“效果”对话框里面,清除“为菜单和工具提示使用下列过渡效果”前面的复选框。

5)单击两次“确定”按钮使设置生效。

4.3  内存错误提示

内存错误是我们在使用Windows的过程中几乎每一位用户都遇到过的问题,那么是不是出现了这样的提示就表明电脑中的内存已经坏了呢?也不尽然,出现内存错误提示的另外一个重要原因就是软件调用内存时出现了问题。

因此,如果读者的机器长时间正常使用没有出现死机等情况,那么内存错误提示基本可以判断为软件问题,此时重复以前的操作应该会出现同样的错误提示。

4.3.1  IE浏览器出现“0x70dcf39f”指令引用的错误提示

问:我的机器最近打开IE浏览器没过几分钟就会出现“0x70dcf39f指令引用0x00000000内存。该内存不能为‘read’。要终止程序,请单击‘确定’”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。请问是什么原因造成的?

答:一般出现这个问题有两方面的原因,一是硬件,二是软件。

1.硬件方面

一般来说,较为常见的故障是内存条损坏或者内存质量有问题。虽然内存出现质量问题的可能性相对较小,但是也应该考虑到。

如果两个不同牌子、不同容量的内存混插,也比较容易出现不兼容的情况。同时还要注意散热问题,特别是超频后。你可以使用MemTest这个软件来检测一下内存,它可以彻底地检测出内存的稳定度。使用极为简单,简述如下。

1)到http://www.memtest86.com/http://www.simble.com/book/index.htm下载该软件并启动后,出现如图4-16所示对话框。

2)单击“开始检测”按钮,开始检测,底部状态栏将显示正在检测的进度和错误数量,如图4-17所示。

               

4-16  开始检测内存                   4-17  内存检测状态

3)如果内存存在质量问题,那么会在状态栏中显示错误状态。

2.软件方面

先简单说说Windows运行程序的原理,每个程序运行时都先要申请内存,而在此过程中内存单独划出一部分称为缓冲区的数据区存放数据,当程序把数据放在缓冲区时,如果内存没有足够空间,就会发生溢出现象。表现在系统上则是屏幕会出现各种错误提示。因为Windows 2000/XP对硬件的要求比较苛刻,所以出现在Windows 2000Windows XP系统上的概率要高一些,而一旦遇到资源死锁、溢出或者类似内存的非法操作,系统为保持稳定,就会出现上述情况。

4.3.2  运行程序出现“0x00000078错误错误提示

问:我编写了一个名为AutoRun.exe的程序,在Windows 98里运行正常,但是在Windows XP下却出现“该指令引用0x00000078内存。该内存不能为‘written’。要终止程序,请单击‘确定’”的错误提示,请问是什么原因?如何解决?

答:这是系统的兼容性问题,由于Windows 2000/XP是基于NT内核的,与Windows 98/ME等系统是不同的,二者之间也存在一定的兼容性问题。虽然这种情况极少出现,但是我们也应该掌握处理方法。因为我们不太可能为一个程序单独准备一个操作系统。所以我们只要设置软件运行的兼容模式就可以了。具体操作步骤如下:

1)在Windows XP中右键单击“AutoRun.exe”文件,选择“属性”,并单击“兼容性”选项卡,如图4-18所示。

4-18  用兼容模式运行程序

2选中“用兼容模式运行这个程序”复选框,并在下拉菜单中选择“Windows 98/Me”,然后再运行该程序就可以了。

3)如果程序有特殊需要或者以上方法不能运行,那么也可以同时选中“显示设置”选项组中的“用256色运行”、“用640x480屏幕分辨率运行”以及“禁用视觉样式”三个复选项。

4.3.3  从桌面或开始菜单中打开程序时出现错误提示

问:我的电脑最近出现了问题,从桌面或开始菜单中打开任何一个程序都会出现错误提示:“0x000000.”指令引用的“0x00000000”内存,该内存不能为“read”。而从“运行”对话框中打开程序则没问题。

答:从描述中可以看出,直接运行程序没有问题,但是在菜单或桌面不执行程序本身而是通过快捷方式运行的话就会出现问题,因此判断这是COM对象ShellExecuteHooks接口出现了故障。解决该问题的方法如下:

1)首先单击“开始”菜单,然后单击“运行”选项,在出现的“运行”对话框的“打开”文本框中输入“regedit”命令,运行注册表编辑器。

2)依次展开找到

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks

3)在该键值下应该只有一个正常的键值{AEB6717E-7E19-11d0-97EE- 00C04FD91972},将其余的全部删除,如图4-19所示。

4-19  设置键值

4.4  未知设备

Windows系统中存在未知设备,绝大多数都是驱动程序没有正确安装引起的。一般来说只要重新安装驱动程序就可以解决问题。而此时设备管理器则是我们检测硬件和升级硬件驱动程序的主要工具。

4.4.1  在“设备管理器”中列出“未知设备”

问:我在“设备管理器”中发现里面列出了很多“未知设备”,请问如何解决?

答:在“设备管理器”中发现“未知设备”,多数是因为没有为硬件安装驱动程序造成的,解决此问题的方法也不复杂,只要正确安装驱动程序一般就能解决。如果确定驱动程序已经正确安装,那么多使用替换法就可以确定问题所在。以下列出了有可能的故障原因:

1)驱动程序未能正确安装或安装不完整。所有的USB设备在安装后都需要安装驱动程序。某些设备还需要安装Windows安装光盘中的一些基本的文件才能正常工作。因此一般情况下,必须严格按照安装说明进行安装,并准备好Windows安装光盘。驱动程序的安装方法请参考本书第16章第3节。

2USB设备或USB适配器本身电源不足,如果您的USB设备或适配器带有AC适配器,连接该适配器进行测试。

3)硬件没有插牢或没有正确连接。

4.4.2  如何解决驱动程序导致的“未知设备”问题

问:我的电脑刚刚重新安装了操作系统,并已经安装了所有的驱动程序,但是仍然发现设备管理器中有很多黄色的惊叹号,提示无法识别硬件,或者无法正确安装该设备的驱动程序。怎么才能解决这个问题,找到合适的驱动程序呢?

答:设备管理器中无法识别的硬件设备几乎都是因为驱动程序而引起的。因此,我们要取消这些黄色感叹号,就必须找到该设备的驱动程序,而查找驱动程序的首要条件就是要知道硬件的类型和型号。

为了方便用户查找硬件的型号和类型,笔者建议用户使用一款小巧的绿色软件Unknown Device,该软件可以方便快速地检测到系统中所安装的硬件设备,为我们查找和安装驱动程序提供了方便。

该软件运行时不依赖于操作系统,几乎可以辨认出所有的硬件设备,包括常见的USB设备、IEEE1394设备、PCI-EAGP接口的板卡,甚至可以识别出主板所集成的硬件设备。对于管理器中标有黄色问号的“未知设备”,其检测结果非常丰富,包括设备的制造商、设备类型、硬件版本、芯片制造商、芯片/芯片组型号等信息。

可以从http://www.zhangduo.com/udi.htmlhttp://www.simble.com/book/index.htm下载得到一个zip文件,解压后只有一个可执行文件和一个pcidevs.txt文件。

该软件在Windows98/Me/2000/NT/XP下都可以直接运行。启动软件之后,经过几秒钟的等待,就会检测到一些设备,如图4-20所示。

在一台正常的电脑上安装了一款显卡并且未安装驱动程序,启动电脑后发现在设备管理器中出现了数个黄色的惊叹号,再启动Unknown Device,就会发现名为“多媒体视频控制器”和“多媒体控制器”这两个未安装驱动的设备,如图4-21所示。

            

4-20  Unknown Device检测设备列表               4-21  未安装驱动程序的设备

展开该项可以看到,Unknown Device识别到了显卡采用的主芯片为Radeon 9000。有了该型号后,我们就可以通过本书第9章第3节介绍的方法来查找该显卡的驱动程序。

这款软件还可以识别设备的生产厂商,在检测某些品牌机配件的时候尤为有用。利用这个功能,我们可以发现电脑的板卡是出自哪个厂商的产品,让我们可以对配件设备的真实身份一目了然。

4.4.3  PCI Universal Serial Bus带有黄色感叹号

问:我的电脑在设备管理器中有一项“PCI Universal Serial Bus”带有黄色感叹号,我在网上查找了一下,PCI Universal Serial BusUSB的全称,但是我的鼠标和其他USB设备都可以正常使用,请问是什么原因?为什么出现黄色感叹号?

答:“PCI Universal Serial Bus”就是我们平时所说的USB总线。或许很多读者会认为操作系统没有安装USB驱动程序,为什么鼠标和其他USB设备都可以正常使用呢?事实上,该未知设备“PCI Universal Serial Bus”是板载USB 2.0控制器,也就是说出现这个故障是因为USB2.0驱动未安装。因此虽然其他设备能够正常使用,但是始终工作在USB1.1标准上,速度比USB2.0要慢很多。因此,我们最好安装USB2.0驱动。

解决这个故障的方法首先要确保在BIOS中已经启用了USB接口,并且找到主板附带的光盘,只要安装主板驱动程序后,USB设备就会工作在2.0的标准之上。