Aug 31

【原创】【MS】NTVDM.exe不能删 不指定

felix021 @ 2007-8-31 02:41 [IT » 操作系统] 评论(5) , 引用(0) , 阅读(16886) | Via 本站原创 | |
【转贴请保持本帖的完整性,谢谢。 By Felix】

刚刚突然想看看百度能搜到NTVDM的解释是什么
但是我发现,搜到的第一个页面是这样的:
( 百度 NTVDM.exe吧 http://post.baidu.com/f?kz=139233222

关于ntvdm.exe占用CPU资源100%的解决办法 
最近电脑老是很卡,一检查才发现是ntvdm.exe进程占用CPU资源几乎达到100%。在网上搜索了一下解决办法,基本都是介绍ntvdm.exe进程的用途,如像是“ntvdm.exe进程Windows 16位虚拟机的一部分,看看系统里是否运行了什么可疑的16位进程,如果有,直接kill……”等等,几乎都是照抄书上的话,没得实质性的东西。后经过本人几天的实验,发现以下方法基本可行:(以xp为例) 
1、重起电脑F8进入安全模式。 
2、在C:\WINDOWS\system32下找到ntvdm.exe的文件,删除之。 
3、在同一子目录下创建一个空白文件夹,将其保存为ntvdm.exe。 
4、再重起电脑即可。 
希望本帖子对大家有所帮助,若不对请高手纠正。 

作者: 南充黄亮  2006-10-9 23:32   回复此发言   

我只能想到两个词来形容这个帖子:
1.因噎废食  2.荒唐

让我们来看看百度到的第二个页面页面 http://www.redoffice.cn/jincheng/ntvdm/ 对ntvdm.exe的解释:
ntvdm.exe是Windows 16位虚拟机的一部分。该进程用于使16位的进程能够运行在32位的系统环境下。这个程序对你系统的正常运行是非常重要的。

这是什么意思呢?
众所皆知,微软新的桌面操作系统是向下兼容为旧系统开发的应用程序的(比如你可以在xp下玩仙剑奇侠传98柔情版),其中包括运行于DOS内核操作系统的PE/NE格式可执行文件,以及为DOS开发的只包含16位指令、运行于处理器实模式的可执行程序/命令(排除那些试图直接操作硬件的,因为这逾越了NT内核操作系统给应用程序的权限,或者说它们试图运行于处理器的0环,与操作系统内核运行于同一级别,为了内核的安全性,这显然是不能被允许的)。
微软采用了WOW(Windows On Windows)技术使得在xp等NT内核操作系统上可以运行那些为旧版操作系统开发的应用程序,这样我们便可以正常的运行Windows98的甚至是Windows3.2的计算器程序等。让我们在WindowsXP下打开Windows3.2的应用程序,如记事本<我的经典收藏啊。。。Felix注>,你就会发现NTVDM这个程序幽灵般的出现了,还带上了一个子进程WOWEXEC.exe,这就是WOW的一个体现了。
而针对那些为DOS也就是CPU运行于实模式的情况下开发的16位程序,微软则使用了DOS虚拟机(VM)的方法。NTVDM通过使用x86 CPU的虚拟8086模式,使得16位程序能够在一定权限范围内正常运行,除非它们试图直接访问硬件,原因如上所述。让我们在XP下打开HD-copy<我的有一个经典收藏啊。。。Felix再注>,看看吧:ntvdm.exe又冒出来了。

很好。理论性的内容到此为止。

那么如果像那个帖子所言,删掉ntvdm会出现什么后果呢?
<请不要随意模仿如下操作。我已经事先清除了dllcache,如果看不懂请不要问,我不想对此提供任何解释,请善用搜索引擎,Felix注>
打开命令提示符:

C:\>cd WINDOWS

C:\WINDOWS>cd system32

C:\WINDOWS\system32>ren ntvdm.exe ntvdm.bak

C:\WINDOWS\system32>

好了,让我们再次打开windows3.2的记事本
“噔!”微软在警告我了
---------------------------
G:\Programs\OldApp\NOTEPAD(win2.0).EXE
---------------------------
Windows 找不到文件 'G:\Programs\OldApp\NOTEPAD(win2.0).EXE'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。
---------------------------
确定 
---------------------------

那么HDcopy呢?
“噔!”又来了:

---------------------------
G:\Programs\DOStool\HD-copy.EXE
---------------------------
Windows 找不到文件 'G:\Programs\DOStool\HD-copy.EXE'。请确定文件名是否正确后,再试一次。要搜索文件,请单击「开始」按钮,然后单击“搜索”。
---------------------------
确定 
---------------------------

现在,你还会听信那个帖子吗?因为NTVDM.exe的CPU占用率为100%所以想要删除这个正常甚至是重要的系统组件?除了荒唐和因噎废食这两个adj之外,欢迎各位跟贴来形容它。

据Felix的判断,发这位帖子的朋友大概是中了为旧系统环境开发或是在旧系统环境下开发的木马或病毒(当然不排除其他很多更有可能的原因),导致NTVDM.exe占用过高的CPU资源。如果遇到这种情况,Felix的建议是先确认是否中了木马或病毒,普通用户这可能需要请教身边的高手,当然,把一些软件的检测信息贴到论坛求助也是一种好办法(但请注意一定要把问题描述清楚!),如果确实没有病毒或者木马,有可能就是windows系统出的毛病(为什么?因为Windows出毛病不需要理由!),那么普通用户们,Felix能给的最好建议就是把系统安装光盘插入光驱,在运行中输入 sfc /scannow;对于那些不屑于用这条命令的高手们,很抱歉,Felix没有更好的建议,请好自为之。

最后补充一点:
想要把ntvdm捏掉,根本就不需要重启。
按照如下步骤即可--拒绝做任何解释!请善用搜索引擎!
C:\> cd windows\system32\dllcache
C:\windows\system32\dllcache>ren ntvdm.exe ntvdm.bak
C:\windows\system32\dllcache>cd ..
C:\windows\system32>ren ntvdm.exe ntvdm.bak

OK, Let's have a summarization:
1. NTVDM是重要的系统组件
2. NTVDM是为了兼容旧版应用程序而存在
3. NTVDM不能删除
4. NTVDM占用过高CPU资源的时候请参考Felix的建议


------------------OVER-------------------- 



附上该贴第43帖的解释,或许是标准答案: 

41 L的 我告诉你吧 你中了某种16位的病毒或16位的其他程序 需要使用ntvdm来处理 而可能是因为这个程序在编写方面有参数等问题没处理好 所以导致 这个进程陷入了死循环 所以问题在于你运行了一个有BUG的程序而不是ntvdm这个进程的错误 





欢迎扫码关注:




转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php
Tags:
tiger
2009-3-6 21:30
如果出了问题就重装系统也算是首选解决方案的话,卖杀毒软件的早就失业了!南充黄亮至少提出了一种不重装系统的解,大家应该感谢他。毕竟还在抱残守缺用16位程序软件的人不多了我们应该原谅Felix的无知,如果他不尊重别人谁会尊重他?
felix021 回复于 2009-3-7 01:56
嗯,我也不知道当时我杂写得这么冲,大概心情不大好把,不过写都写了,懒得改了,
FJI
2009-2-16 11:34
受教了。
五公主
2008-8-16 21:47
不能根本解决问题,比如我现在要用到的一个外挂程序必须要用到NTVDM.EXE.
felix021 回复于 2008-8-16 22:01
额。NTVDM本身根本没错。问题应该是出在某些不正常的地方
sk
2008-5-24 22:55
很好的文章w
felix021 回复于 2008-5-25 08:41
:)
yzzy
2008-3-28 14:08
很好,险些犯了这个错误……
多谢了……
分页: 1/1 第一页 1 最后页
发表评论
表情
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
emotemotemotemotemot
打开HTML
打开UBB
打开表情
隐藏
记住我
昵称   密码   *非必须
网址   电邮   [注册]