在基于.NET的通用组件的上下文中,该组件可以托管在各种场景中--即64位或不存在、交互进程与否--我需要在一个受UAC虚拟化影响的区域内写入注册表。但是,我希望防止这种访问被虚拟化,以便每个执行都不受当前上下文变幻莫测的影响(也就是说,不希望从HKLM读取一条信息,因为它有一个清单,而另一条来自HKCU..VirtualStore,因为它没有)。
换句话说,我在寻找something analogous to KEY_WOW64_64KEY或reg.exe REG_KEY_DONT_VIRTUALIZE
来表明我不想在任何情况下被虚拟化。或者,是否有某种形式的规范化相关语法,我可以用您指定>260 char文件名的方式强制它使用la?
如果正在执行的用户对所讨论的注册表项没有适当的权限,则代码失败,我对此没有意见。
这个问题与this question on registry virtualization密切相关,但在这种情况下检测显然是不够的。
发布于 2010-06-24 19:25:46
具有UAC感知清单的应用程序,无论是指定asInvoker还是requireAdministrator,都不是虚拟化的.如果你对失败没意见,那就和asInvoker一起去吧。
https://stackoverflow.com/questions/1322412
复制相似问题