ORSetVirtualFlags 函数
在脱机注册表配置单元中的指定打开注册表项上设置虚拟化标志。
语法
DWORD ORSetVirtualFlags(
_In_ ORHKEY Handle,
_In_ DWORD dwFlags
);
参数
-
处理 [in]
-
脱机注册表配置单元中打开的注册表项的句柄。
-
dwFlags [in]
-
此参数控制在虚拟化配置单元中的项上的创建或打开操作失败时注册表的行为。 此参数可使用以下一个或多个值。
值 含义 - REG_KEY_DONT_SILENT_FAIL
- 4
如果设置了此标志,并且对其启用了虚拟化的项执行“打开”操作失败,则注册表不会尝试重新打开该键。 如果此标志为清除,注册表将尝试使用MAXIMUM_ALLOWED访问权限重新打开密钥。 - REG_KEY_DONT_VIRTUALIZE
- 2
如果设置了此标志,并且由于调用方在父键上没有KEY_CREATE_SUB_KEY权限而使创建密钥操作失败,则注册表将无法执行创建操作。 如果此标志为清除,注册表将尝试在虚拟存储中创建密钥。 调用方必须在父密钥上具有KEY_READ。 - REG_KEY_RECURSE_FLAG
- 8
如果设置了此标志,则会从父项传播注册表虚拟化标志。 如果此标志明确,则不会传播注册表虚拟化标志。
返回值
如果函数成功,则返回值为 ERROR_SUCCESS。
如果函数失败,则返回值为 Winerror.h 中定义的非零错误代码。 可以将 FormatMessage 函数与 FORMAT_MESSAGE_FROM_SYSTEM 标志结合使用来获取错误的常规说明。
备注
注册表虚拟化是一种临时应用程序兼容性技术,使具有全局影响的注册表写入操作能够重定向到每用户位置。 此重定向对从注册表读取或写入注册表的应用程序是透明的。
从 Windows Vista 开始,支持注册表虚拟化。 但是,随着更多应用程序与 Windows Vista 兼容,Microsoft 打算将其从 Windows 操作系统的未来版本中删除。 因此,应用程序不应依赖于系统中注册表虚拟化的行为。
仅对以下各项启用注册表虚拟化:
- 32 位交互式进程
- HKEY_LOCAL_MACHINE\Software 中的键
- 管理员可以写入的密钥
有关详细信息,请参阅 注册表虚拟化。
要求
要求 | 值 |
---|---|
可再发行组件 |
Windows 脱机注册表库 1.0 或更高版本 |
标头 |
|
DLL |
|
另请参阅