Como detectar o redirecionamento de arquivos para o Windows VirtualStore?

Desde o lançamento do Win Vista, a Microsoft introduziu a virtualização de arquivos para aplicativos legados em execução como processos de 32 bits. Lançado como parte do Controle de Conta de Usuário (UAC) da Microsoft, qualquer aplicativo legado que tente gravar em qualquer local considerado protegido pelo sistema operacional é redirecionado para a VirtualStore.

Neste ponto, foram tomadas medidas para garantir que o aplicativo em questão agora seja executado como um processo de 64 bits que é ciente do UAC, no entanto, isso faz pouco para resolver o problema de migrar os dados de usuários para um local considerado seguro da virtualização.

Ao solucionar esse problema, descobri que ao lidar com várias contas de usuário, algumas alterações foram feitas no caminho herdado localizado em C: \ Arquivos de Programas (x86) \ MyApp \ Data e, ao mesmo tempo, foram feitas alterações em o VirtualStore localizado em% localappdata% \ VirtualStore \ Programs \ MyApp \ Data. A questão é, como posso detectar se alguma virtualização de arquivo / pasta está ocorrendo e como posso mesclar os dois locais?

EDITAR: Eu encontrei vários sites que detalham o problema e como duplicá-lo, mas nada que inclua uma maneira de corrigi-lo. Eu encontrei esta referênciaFILE_ATTRIBUTE_VIRTUAL que define um atributo de arquivo que parece promissor - encontrei outra referência em algum lugar, embora não me lembre onde, que afirma que esse é o atributo usado pelo Windows para indicar que a virtualização de arquivo está ocorrendo e sinaliza a solicitação de redirecionamento.

Esses links descrevem o problema:

http://www.c-sharpcorner.com/uploadfile/GemingLeader/windows-file-and-registry-virtualization/

http://www.codeproject.com/Articles/66275/Windows-Vista-File-and-Registry-Virtualization

http://download.microsoftvirtuallabs.com/download/8/a/7/8a71365b-4c80-4e60-8185-8f12f59bf1d4/UACDataRedirection.pdf

questionAnswers(3)

yourAnswerToTheQuestion