Problemas com NTDVM.exe
Novas tecnologias vão surgindo a cada momento, novas aplicações da tecnologias vão sendo empregadas, no entanto, nem todo software acompanha essa evolução.
Os modelos de processadores mais comuns, que atualmente operam a 32 bits (atualmente já existem os de 64 bits), marcam um grande passo do avanço, mas muitas aplicações mais antigas podem apresentar alguns problemas ao serem executados, pois são desenvolvidos com linguagens de programação ultrapassadas (são 16 bits e em DOS).
Não há problemas em executá-los em versões do Windows 95 e 98, já que nessas duas versões do Windows o próprio sistema gerencia o quanto de memória ele necessita para que o programa funcione corretamente. Mas já na plataforma NT, os problemas começam a aparecer, entrando em ação o arquivo NTDVM (NT Dos Virtual Machine). Sua função é, teoricamente, simples: executar programas DOS e WIN16 nos sistema Windows 2000 e XP.
Há quem diga que esse arquivo é um sério Bug, pois o NTDVM.exe usa o processador além do que é necessário. Os sintomas são bem visíveis, até para um leigo em informática: o sistema fica muito lento e instável. Para fazer um rápido teste, basta minimizar a tela do DOS e o uso do processador já diminui consideravelmente; ou mesmo teclar CTRL+SHIFT+ESC e ir na guia Desempenho para verificar o uso da CPU. Além disso, é possível que apareçam mensagens de erro ao tentar executar aplicações 16 bits, como do tipo:
Subsistema Windows a 16 bits - Consola oculta de WOWVDM.
O CPU NTVDM encontrou a seguinte instrução ilegal. Origem - ou - 16 Bit Windows Subsystem - Hidden Console of WOWVDM. The NTVDM CPU has encountered an illegal instruction.
Quando recebemos esse tipo de mensagem, significa que os arquivos Config.nt ou Autoexec.nt podem estar com algum tipo de problema. Estes são verificados toda vez que a aplicação de 16 bits é executada.
Agora temos mais um arquivo que ajuda os programas DOS, mas em contra partida auxilia o NTDVM: wowexec ou wowexec.exe que faz com que os processos 16 bits sejam permitidos e o sistema suporte-os. Os sistemas operacionais da família Windows Server 2003 executam programas de 16 bits através de um processo denominado WOW (Windows on Windows), convertendo programas de 16 bits em modo avançado. Este processo faz com que os programas de 16 bits consumam recursos de sistema adicionais.
A partir deste ponto, pode-se tomar as providências necessárias para acabar com este problema, ou pelo menos amenizar os sintomas. Na verdade não há uma única coisa a ser feita, mas um conjunto de pequenas configurações. Antes disso, é recomendado criar um Ponto de Restauração, pois caso alguma modificação desnecessária seja feita acidentalmente, há como voltar atrás para recuperar o status inicial do sistema.
Caso o problema seja mensagem de erro, iremos primeiramente restaurar os arquivos AUTOEXEC.NT e CONFIG.NT para que qualquer entrada inválida seja desfeita. Basta substituir esses dois pelos que estão na pasta "c:\windows\repair". Ou mesmo executar esse Fix que fará a mesma coisa, e até copiar esse arquivo para a pasta c:\windows\system32.
Logo depois que reiniciamos o computador vem a decepção: “o autoexec.nt desapareceu da pasta system32”. Para driblar este erro, copie as linhas abaixo, cole no bloco de notas, e salve o arquivo como AUTOEXEC.NT na pasta c:\windows\system32:
@echo off lh %SYSTEMROOT%\system32\mscdexnt.exe lh %SYSTEMROOT%\system32\redir lh %SYSTEMROOT%\system32\dosx SET BLASTER=A220 I5 D1 P330 T3
Caso não resolva o problema, vamos editar o arquivo AUTOEXEC.NT no bloco de notas e acrescentar a linha:
“SET CLIPPER=F255”
Já que uma boa parte dos programas DOS que acusam erro de NTVDM são programados em Clipper. Depois acrescentaremos no CONFIG.NT
“FILES=255 e BUFFERS=30,0”,
Sempre no final do arquivo.
Com essas modificações, os problemas com erro de NTDVM deve ser sanado.
Outra excelente solução, seria clicar com o botão direito do mouse sobre o arquivo AUTOEXEC.NT, ir em Propriedades, depois em Atributos e marcar a opção “Somente Leitura”.
Agora, se o problema for apenas com o consumo excessivo do processador, podemos resolver com o auxilio de um utilitário bastante conhecido hoje em dia, o TAME. Infelizmente esse programa é shareware, e depois de 30 dias, sua licença expira. E o que esse TAME faz? Ele “diz” ao Windows a quantidade necessária de memória que o computador vai precisar para executar o programa DOS 16 bits. Depois de instalar o TAME, quando tentarmos executar novamente aplicações de 16 bits uma mensagem aparece:
tame-nt Release 4.5d
Copyright 1988-2004 by David G. Thomas
tame-nt loaded.
Ele é tao bom que ele cria um item de menu no menu iniciar e voce consegue abrir um console com a tela do seu sistema e os arquivos que o seu sistema está usando no momento (e não é preciso fazer nenhuma configuração para usá-lo, apenas executar o aplicativo 16 bits que o Tame se encarrega de fazer o resto).
É possível fazer o download da versão trial dele clicando aqui.
Mas não é apenas nisso que o NTDVM pode atrapalhar.
Geralmente quando acessamos algum site que necessita de uma maior segurança (como sites de bancos, por exemplo) uma ferramenta de segurança é requisitada para ser instalada, o Sniper. Ele também pode interferir no funcionamento do NTDVM, mas pode ser removido.Para isso basta entrar no Menu Iniciar e depois em Executar, para digitar o seguinte comando:
sniperiu /uninstall
É possível, no entanto, solucionar o problema apenas desativando a proteção e continuar podendo acessar o home banking do Banrisul.
ATENÇÃO! Não recomendamos que altere os arquivos de registro se não tiver certeza do que está fazendo, pois são configurações bastante complexas que podem afetar o seu computador.
Para isso, abra o REGEDIT e localize a chave HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services.
Localize o serviço SNMgrSvc e altere o item Start de 0x00000002 para 0x00000004. Localize também o serviço SNSMS e altere o Start de 0x00000001 para 0x00000004.
Reincie o computador e faça o teste. O problema deve estar resolvido e você continuará podendo acessar o home banking.
Como a maioria dos programas baseados em Windows 3.x é adequadamente executada sob o Windows XP, às vezes é difícil diferenciar as aplicações de 16 e 32 bits. E para diferenciar se uma aplicação é 16 ou 32 bits, seguimos o roteiro:
- Clique com o botão direito no arquivo executável do programa e escolha Propriedades. Se você vir uma guia chamada Versão, é um programa de 32 bits.
- Ou, se o programa estiver sendo executado, pressione Ctrl+Shift+Esc para abrir o Gerenciador de Tarefas do Windows. Na guia Processos, olhe para a coluna Nome da Imagem para ver o nome do arquivo executável do programa. Se algum programa de 16 bits estiver sendo executado, você verá uma entrada para Ntvdm.exe, a máquina virtual do DOS. Logo acima dela na lista, você verá entradas pretendidas para o Wowexec.exe (o Windows em seu subsistema) e o nome do executável de cada programa de 16 bits na máquina virtual.
Em âmbitos gerais, essas são as soluções consideradas como “universais”, pois na maioria dos casos, resolve o problema.
Por Jonata Santos
