さまざまなシナリオ (64 ビットかどうか、対話型プロセスかどうかなど) でホストできる一般化された .NET ベースのコンポーネントのコンテキストでは、UAC 仮想化の対象となる領域のレジストリに書き込む必要があります。ただし、各実行が現在のコンテキストの気まぐれの影響を受けないように、そのようなアクセスが仮想化されるのを防ぎたいです (つまり、マニフェストがあるため HKLM から 1 つを読み取り、HKCU からもう 1 つを読み取りたくありません)。 .VirtualStore ではないため)。
つまり、 KEY_WOW64_64KEY に類似したものを探しているかreg.exe REG_KEY_DONT_VIRTUALIZE
、どのような状況でも仮想化されたくないことを示しています。または、260文字を超えるファイル名を指定する方法で強制するために使用できる正規化関連の構文がありますか?
実行中のユーザーが問題のレジストリ キーに対する適切なアクセス許可を持っていない場合、コードが失敗しても問題ありません。
この質問は、レジストリ仮想化の検出に関するこの質問と強く関連していますが、このコンテキストでは検出するだけでは十分ではありません。