Quando um aplicativo de 32 bits iniciado em um Windows de 64 bits aborda as variáveis de ambiente do sistema% ProgramFiles% ou% commonprogramfiles%, o subsistema WoW64 substitui os valores dessas variáveis pelos valores das variáveis% ProgramFiles (x86)% e "% commonprogramfiles (x86)%. Assim, por exemplo,% ProgramFiles% será aberto como" C: \ Arquivos de Programas (x86) "ao endereçar de um programa de 32 bits.
Esse comportamento é determinado pelo sistema de redirecionamento de registro que fornece compatibilidade com versões anteriores do software de 32 bits com sistemas operacionais de 64 bits. O ambiente de 32 bits é emulado para programas de 32 bits, mesmo que os dados que eles estão endereçando estejam localizados em um local diferente.
Para evitar tal redirecionamento em um programa de 32 bits, você deve usar as variáveis de ambiente% programfiles% ou% COMMONPROGRAMFILES% (ou seja, com caso inverso) ou o sinalizador KEY_WOW64_64KEY ao acessar os nós de registradores correspondentes.