资料分类
硬件内存 |主板 |CPU |硬盘 |显卡 |网卡 |声卡 |光驱 | 笔记本专区 | 刻录机| 鼠标| 键盘 |病毒专题

办公:打印机|扫描仪|复印机 网络ADSL|局域网| 防火墙 | 路由器 | 无线网络 | 系统winxp win2003 winvisa 服务器

常用维修软件: GHOST | DM | PC3000 | NDD | PQMagic | 效率源 | 还原精灵 电子基础: 电子元件 | 工具应用 | 电路基础
您现在的位置: 龙腾电脑维修网 >> 技术资料 >> 软件专栏 >> 其他 >> 文章正文

全面认识svchost.exe进程

全面认识svchost.exe进程


很多朋友对svchost.exe进程都不太了解,有时在任务管理器中一旦看到有多个该进程(图1中有6个),就以为自己的电脑中了病毒或木马,其实并非如此!正常情况下,windows中可以有多个svchost.exe进程同时运行,例如windows 2000至少有2个svchost进程,windows xp中有4个以上,windows 2003中则有更多,所以当你看到多个svchost进程时,未必就是病毒!



    svchost.exe进程是干什么的?

  svchost.exe文件存在于“%system  root%\system32”(例如c:\windows\system32)目录下,它是windows nt核心的重要进程(windows 9x没有该进程),专门为系统启动各种服务的。例如svchost.exe调用rpcss.dll文件,就会启动rpcss服务(remote procedure call)。

  svchost.exe实际上是一个服务宿主,它本身并不能给用户提供任何服务,但是可以用来运行动态链接库dll文件,从而启动对应的服务。svchost.exe进程可以同时启动多个服务。
svchost是如何启动系统服务的?

  由于系统服务都是以动态链接库(dll)形式实现的,它们把可执行程序指向svchost,因此svchost只要调用某个动态链接库,即可启动对应的服务。那么svchost启动某服务时,又是如何知道应该调用哪个动态链接库?这是由于系统服务在注册表中都设置了相关参数,因此svchost通过读取某服务在注册表中的信息,即可知道应该调用哪个动态链接库,从而启动该服务。

  下面我们以svchost启动helpsvc(help and support)服务为例,介绍其启动服务的方法。在windows xp中点击“开始”|“运行”,输入“services.msc”命令,弹出服务对话框,然后双击打开“help and support”服务属性对话框,可以看到helpsvc服务的可执行文件的路径为“c:\windows\system32\svchost.exe -k netsvcs” (如图2),说明helpsvc服务是依靠svchost调用“netsvcs”参数来实现的,而参数的内容则是存放在系统注册表中的。


图2

  在运行对话框中输入“regedit.exe”后回车,打开注册表编辑器,找到[hkey_local_machine\system\currentcontrolset\services\helpsvc]项,找到类型为“reg_expand_sz”的键“magepath”,其键值为“%systemroot%\system32\svchost.exe -k netsvcs”(这就是在服务窗口中看到的服务启动命令),另外在“parameters”子项中有个名为“servicedll”的键,其值为“%windir%\pchealth\helpctr\binaries\pchsvc.dll”,其中“pchsvc.dll”就是helpsvc服务要使用的动态链接库文件。这样svchost进程通过读取“helpsvc”服务注册表信息,就能启动该服务了。

    svchost到底启动了哪些服务?

[1] [2] 下一页

  • 上一篇文章:

  • 下一篇文章:

  • 如果您发现该文章有错误,请通知管理员,谢谢!
    作者:未知
    点击数:
    更新时间:2006-7-28 11:08:40
    我要发表评论
    本站论坛
    返回文章首页
    我要发表文章
    评论内容只代表网友观点,与本站立场无关!

    公司简介 - 联系方法 - 合作伙伴 - RSS订阅 - 意见反馈 - Dragon computer(龙腾电脑英文站) - 版权声明
    @ 2006-2008龙腾电脑 版权所有. ALL RIGHTS RESERVED. 浙ICP备05046531号
    友情连接QQ:42738612 本站QQ群:28651784 26926005