Por que existe um c: \ windows \ syswow64 \ userinit.exe nas versões de 64 bits do Windows?

1

O interior do Windows deixa claro que o winlogon.exe após a autenticação com o lsass.exe inicia o conteúdo da chave UserInit, que por padrão é c: \ windows \ system32 \ userinit.exe para configurar o ambiente e, em seguida, inicia o que estiver especificado em HKLM \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ Winlogon \ Shell que por padrão é explorer.exe mas por que há uma versão wow64 do userinit? (ou seja, c: \ windows \ syswow64 \ userinit.exe) Especificamente, a questão é girar em torno do fato de que os binários nativos para staturp, lsass, winlogon e similares já são 64 bits e usarão uma versão de 64 bits, então qual é a necessidade de uma versão de 32 bits do userinit?

    
por Dan 26.04.2013 / 19:48

2 respostas

4

Pela mesma razão, há uma versão SysWOW64 de quase todos os outros binários da Microsoft: compatibilidade com aplicativos de 32 bits. Talvez ninguém o use, mas assim que a Microsoft parar de distribuir a versão de 32 bits do binário, seja calc.exe ou ping.exe ou Bubbles.scr, alguém, em algum lugar, usando algum aplicativo antigo de 32 bits, irá reclamar.

    
por 26.04.2013 / 21:10
2

Essa seria a versão de 32 bits. Acredite ou não, o SysWOW64 é onde estão os binários de 32 bits. WOW64 significa Windows-on-windows64, ou seja, o material de 32 bits que pode sobre o sistema real de 64 bits.

C: \ windows \ system32 é onde estão os binários de 64 bits, apenas porque esse é o caminho mais antigo que sempre foi incluído no caminho de todos. Eu percebi isso tentando forçar o PowerShell a ser lançado do SysWOW64 em vez do System32 e depois descobri que meu material de 64 bits não funcionaria ...

Então, em resumo:

System32 = versões de 64 bits
SysWOW64 = versões de 32 bits

Obrigado pela Microsoft!

    
por 26.04.2013 / 21:21