問:我的電腦配置是:微星845主板、七彩虹顯卡、40GB硬盤、256MB HY內存,使用的是新的新世紀大風車真版電源。主機只要一插電源線就自動啟動了,這是什麼原因?
答:這是因為你使用了主板的來電喚醒功能造成的,請先打開機箱,仔細查看主板上的“Soft PowerOn”插針上的跳線是否正常。如主板上沒有這個跳線或一切正常,可以在開機自檢時,按Del鍵進入BIOS設置程序,進入“Power Management Setup”(省電功能設置)選項,然後將“AC BACK Function”設置成“Soft-Off”即可。有些主板的BIOS選項可能有所不同,請具體查看主板說明書後再操作
全面了解系統中 svchost.exe文件
svchost.exe是NT核心系統非常重要的文件,對於Win2000/XP來說,不可或缺。這些svchost進程提供很多系統服務,如:rpcss服務(remote procedure call)、dmserver服務(logical disk manager)、dhcp服務(dhcp client)等等。
如果要了解每個svchost進程到底提供了多少系統服務,可以在WinXP的命令提示符窗口中輸入“tasklist /svc”命令來查看。
工作原理
一般來說,Windows系統進程分為獨立進程和共享進程兩種。svchost.exe文件存在於%systemroot%system32目錄下,屬於共享進程。
隨著Windows系統服務不斷增多,為了節省系統資源,微軟把很多服務都做成共享方式,交由svchost進程來啟動。但svchost進程只作為服務宿主,並不能實現任何服務功能,即它只能提供條件讓其他服務在這裡被啟動,而它自己卻不能給用戶提供任何服務。
這些服務是如何實現的呢?原來這些系統服務是以動態鏈接庫(dll)形式實現的,它們把可執行程序指向svchost,由svchost調用相應服務的動態鏈接庫來啟動服務。
那svchost又怎麼知道某個系統服務該調用哪個動態鏈接庫呢?這是通過系統服務在注冊表中設置的參數來實現的。
具體實例
下面以Remote Registry服務為例,來看看svchost進程是如何調用DLL文件的。在WinXP中,點擊“開始→運行”,輸入“services.msc”命令,會彈出服務對話框,然後打開“Remote Registry”屬性對話框,可以看到Remote Registry服務的可執行文件的路徑為“C:WindowsSystem32svchost -k LocalService”(圖1),這說明Remote Registry服務是依靠svchost調用“LocalService”參數來實現的,而參數的內容則是存放在系統注冊表中的。
在運行對話框中輸入“regedit.exe”後回車,打開注冊表編輯器,找到“HKEY_LOCAL_MACHINESystemcurrentcontrolsetservicesRemote Registry”項,再找到類型為“reg_expand_sz”的“Imagepath”項,其鍵值為“%systemroot%system32svchost -k LocalService”(這就是在服務窗口中看到的服務啟動命令),另外在“parameters”子項中有個名為“ServiceDll”的鍵,其值為“% systemroot%system32 egsvc.dll”,其中“regsvc.dll”就是Remote Registry服務要使用的動態鏈接庫文件。這樣svchost進程通過讀取“Remote Registry”服務注冊表信息,就能啟動該服務了。
也正是因為svchost的重要性,所以病毒、木馬也想盡辦法來利用它,企圖利用它的特性來迷惑用戶,達到感染、入侵、破壞的目的。那麼應該如何判斷到底哪個是病毒進程呢?正常的svchost.exe文件應該存在於“C:Windowssystem32”目錄下,如果發現該文件出現在其他目錄下就要小心了。
提示:svchost.exe文件的調用路徑可以通過“系統信息→軟件環境→正在運行任務”來查看.