Wykrywanie wirtualizacji rejestru

Mam zestaw aplikacji C # (v2) i walczę z wirtualizacją rejestru w Win7 (iw mniejszym stopniu Vista).

Mam wspólny obszar konfiguracji rejestru, który moje aplikacje potrzebują, aby uzyskać dostęp w HKLM Software Company ... Przed Vista, wszystko było po prostu pisane i odczytywane z tej lokalizacji w razie potrzeby.

Kod odpowiednio wykryty awarie zapisu do tego klucza rejestru i odpowiednio cofną się (zamiast tego napisać do HKCU i powiadomić użytkownika, że ​​zastosowane przez nich ustawienia wpłyną tylko na bieżącego użytkownika).

W systemie Vista wirtualizacja rejestru złamała to wszystko, ponieważ sprawdzanie dostępu, którego używaliśmy do zapisu HKLM, „powiodło się” w sposób cichy i wirtualizowało do HKCR VirtualStore. W tym przypadku użytkownik pomyślałby, że zapisał konfigurację na całym komputerze, ale zamiast tego zapisał tylko w sklepie wirtualnym.

Niestety, nawet próba wyliczenia uprawnień w kluczu reg HKLM wyraźnie zwraca wyniki wskazujące, że użytkownik ma dostęp bez względu na to, czy to robi, czy nie.

Kiedy dodaliśmy obsługę Vista, obejście, którego użyliśmy, polegało na wykonaniu zapisu sondy w HKLM ... a następnie sprawdzeniu HKCR VirtualStore ... dla tej samej wartości i zauważeniu, że wirtualizacja wystąpiła, jeśli wartość została znaleziona.

Wydaje się, że Win7 złamał to (ponownie), ponieważ zapytania dotyczące jawnej lokalizacji wirtualnej (HKCR) pokazują teraz scalone wyniki z lokalizacji HKLM, nawet jeśli zapis nie był zwirtualizowany.

Czy ktoś ma jakieś sugestie dotyczące obejścia tego?

Ograniczenia: - Potrzebuję rozwiązania, które działa bez konieczności podniesienia uprawnień (gdy nie mam uprawnień na poziomie administratora, powrócę do konfiguracji na użytkownika w HKCU, ale muszę być w stanie niezawodnie wykryć tę sprawę).

Musi działać z aplikacją C # v2 (Jedną z opcji, którą widziałem dla kodu C ++, jest osadzenie manifestu, który wyłącza wirtualizację dla pliku .exe, ale nie byłem w stanie tego zrobić w C # V2 zobaczwyłącz wirtualizację folderów w oknach).

Musi działać bez „instalatora” (wyklucza to możliwość wyłączenia wirtualizacji w kluczu rejestru, którego potrzebujemy ala komenda REG FLAGS ...).

questionAnswers(4)

yourAnswerToTheQuestion