Compartilhar via


Segredos do Windows: Histórico – o caminho longo através de

Ingresse em nosso colunista de segredos do Windows para um tour decididamente rotatória de todas as pastas com a palavra “ sistema ” em seu nome.

Raymond Chen

Uma vez era tempo, em dias do Windows de 16 bits, havia um diretório chamado C:\Windows\System. Que foi o que últimos tempo de coisas estavam simples.

Com a introdução do Win32, houve uma segunda pasta de sistema adicionada chamado C:\Windows\System32. Essa segunda pasta continha os arquivos de sistema de 32 bits. Os arquivos de sistema de 16 bits permanecem na pasta do sistema antigo. Bem, exceto que no Windows 95, os dois arquivos de sistema de 32 bits e 16 bits estavam localizadas no mesmo diretório retido seu antigo nome do C:\Windows\System. Se não falamos do Windows 95 novamente.

Arquivos em lotes executado programas de C:\Windows\System32 com a expectativa de que o programa resultante deve coincidir com o sistema operacional nativo. Essas expectativas não eram explícitas, mas eles foram implicados a natureza da atividade. Se o diretório System32 foram preenchido com programas de 32 bits, em seguida, um arquivo em lotes que executou o programa de C:\Windows\System32\REG.EXE chateados uma configuração de registro do sistema estaria executando a versão de 32 bits do REG.EXE, o que significa que ele poderia atualizar a versão de 32 bits simulada do registro em vez da versão de 64 bits real. Outros tipos de arquivos de scripts (como arquivos REG) têm o mesmo problema.

Há um grande número de existentes nesse caminho de embutir em código o System32 de programas de 32 bits em vez de chamar a função GetSystemDirectory. Quando esses programas são recompilados Windows de 64 bits, eles ainda tenta acessar o diretório System32, esperando encontrar arquivos de 64 bits (porque o programa agora é compilado de 64 bits). Gravado no registro ou arquivos de configuração de caminhos precisam ser significativa para os processos de 32 bits e de 64 bits e ainda precisam consultar o diretório apropriado dependendo “ bits ” do programa, fazendo a perguntar.

Limpar como lama?

Para extricate próprio dessa situação confusa, a equipe do Windows decidiu possuem o diretório System32 contêm arquivos de 64 bits nos sistemas de 64 bits e os arquivos de 32 bits em sistemas de 32 bits. Os 32 é apenas parte do nome e não significam nada. É semelhante a como o DVD é apenas um nome e realmente não quer dizer nada ou como várias grandes empresas oficialmente alterar seu nome como uma seqüência de cartas que podem ter uma vez significava de forma alguma coisa, mas agora apenas um nome, como HSBC, KFC, BP e KPMG.

Redirecionamento de sistema de arquivos para os processos de 32 bits adiciona outra camada de complexidade para este texto já confuso. Quando um processo de 32 bits acessa o diretório c:\Windows\System32. em um sistema de 64 bits, as operações são redirecionadas para o diretório C:\Windows\SysWOW64, que é onde você encontrará o DLLs do sistema de 32 bits.

Como resultado, você deve considerar System32 como o nome de um pouco estranho para o diretório de DLLs de sistema “ no mesmo número de bits como o aplicativo que esteja executando o ”. Em um mundo ideal mais, algo assim poderia ter foi chamado no diretório SysExec porque ela contém arquivos que correspondam o ambiente de execução.

Mas -não aguardar, é mais

E se você deseja acessar o diretório de sistema real de 64 bits a partir de um processo de 32 bits? Redirecionamento de sistema de arquivos levará a tentativa de acessar o diretório c:\Windows\System32. e redirecioná-la para o diretório C:\Windows\SysWOW64. Programaticamente, você pode usar as funções com nomes de difícil de manejar como desativar o Wow64 ­ ­ Wow64 ­ FS ­ redirecionamento, mas aquelas desativar o redirecionamento para todas as operações até que elas são reativadas. Isso causa problemas se você estiver fazendo algo mais complicado do que a abertura de um único arquivo. Executar uma operação complexa pode resultar em acesso a vários arquivos ou, possivelmente, criação de threads de trabalho.

Esse é o fim do nosso tour rotatória dos vários diretórios com o sistema em seu nome. Se parecer confuso, basta Lembre o significado do diretório raramente corresponde a seu nome.

Raymond Chen

Raymond Chen Web site, O Old New Thing, e escreveu um livro (Addison-Wesley, 2007) homônimo lida com o histórico do Windows, programação Win32 e os poderes illusory de reparo da fita elétrico preto.

Conteúdo relacionado