Eu acho que você provocou uma falha, talvez. Como a extensão * .COM é do MS-DOS e apenas para binários de 16 bits, o Windows de 32 bits criou um atalho PIF para esses arquivos, o que acionaria a camada de compatibilidade para configurar o ambiente relacionado ao 16bit. No entanto, essa parte não existe no Windows de 64 bits, pois os executáveis de 16 bits têm idade suficiente e existem muitas alternativas para executá-los; DOSBOX por exemplo.
No entanto, parece que a rotina para detectar esta situação ainda existe no x64 Windows e é acionada por segmentação de um arquivo * .COM, enquanto todas as camadas de compatibilidade desapareceram!
Você pode verificar por si mesmo que a tentativa de criar um atalho para um arquivo COM ainda produz um arquivo PIF:
- Crie uma nova pasta vazia.
- Copie qualquer arquivo COM que você queira testar. Mesmo você pode renomear qualquer arquivo para * .COM.
- Na pasta, clique com o botão direito e selecione novo atalho.
- Insira o caminho completo do seu arquivo COM de teste e clique em "terminar"
- Ele dirá que "não é possível criar um atalho", mas o atalho é realmente criado.
- Veja as propriedades do novo atalho - é PIF.
No entanto, como o x64 Windows não tem camada de compatibilidade de 16 bits, esse PIF não pode ser executado e não pode ser configurado corretamente. Acredita-se, naturalmente, que a lógica para produzir arquivos PIF para COM também deve ser removida, mas, por algum motivo, isso ainda não é feito. O que eu posso imaginar sobre o motivo é .. uma vez que é muito raro usar o arquivo COM no Windows x64, ele teve prioridade muito baixa para corrigir.
Então, quais são esses arquivos * .COM na pasta do Windows? Eles são realmente executáveis de formato de arquivo "EXE" de 64 bits, mas renomeados como * .COM para scripts de lote antigos.
Também é verdade que o atalho para um arquivo COM pode enganar os usuários para executar um malware para que o MS intencionalmente bloqueie isso, mas ainda é possível anexar um arquivo COM renomeado (que é originalmente um arquivo EXE) diretamente em um email ou algo assim, e ainda é possível criar um atalho para um arquivo EXE regular e depois renomeá-lo para * .COM. Então eu não acho que o problema de segurança foi o principal motivo para fazer o Windows fazer esse comportamento estranho. Se fosse para o problema de segurança e intencional, ele exibiria uma mensagem de erro / aviso adequada.