Jak wykryć przekierowanie pliku do Windows VirtualStore?
Od czasu wydania Win Vista Microsoft wprowadził wirtualizację plików dla starszych aplikacji działających jako procesy 32-bitowe. Wydane jako część kontroli konta użytkownika (UAC) firmy Microsoft wszelkie starsze aplikacje próbujące pisać do dowolnych lokalizacji uznanych za chronione przez system operacyjny są przekierowywane do VirtualStore.
W tym momencie podjęto kroki w celu zapewnienia, że dana aplikacja działa teraz jako proces 64-bitowy, który jest świadomy UAC, jednak nie ma to nic wspólnego z kwestią migracji danych użytkowników do lokalizacji uważanej za bezpieczną od wirtualizacji.
Podczas rozwiązywania tego problemu odkryłem, że podczas pracy z wieloma kontami użytkowników niektóre zmiany zostały wprowadzone w ścieżce starszej znajdującej się w C: Program Files (x86) MyApp Dane, podczas gdy w tym samym czasie dokonano zmian w VirtualStore znajduje się w% localappdata% VirtualStore Programy MyApp Dane. Pytanie brzmi, jak mogę wykryć, czy ma miejsce wirtualizacja plików / folderów i jak mogę połączyć te dwie lokalizacje?
EDYTOWAĆ: Znalazłem kilka stron internetowych, które szczegółowo opisują problem i powielają go, ale nic, co zawiera sposób na jego naprawienie. Znalazłem to odniesienieFILE_ATTRIBUTE_VIRTUAL który definiuje atrybut pliku, który wydaje się obiecujący - znalazłem gdzieś inną referencję, chociaż nie pamiętam, gdzie, że to jest atrybut używany przez Windows do wskazania, że odbywa się wirtualizacja plików i sygnalizuje żądanie przekierowania.
Te linki opisują problem:
http://www.c-sharpcorner.com/uploadfile/GemingLeader/windows-file-and-registry-virtualization/
http://www.codeproject.com/Articles/66275/Windows-Vista-File-and-Registry-Virtualization