ORSetVirtualFlags function

Sets virtualization flags on the specified open registry key in an offline registry hive.


DWORD ORSetVirtualFlags(
  _In_ ORHKEY Handle,
  _In_ DWORD  dwFlags


Handle [in]

A handle to an open registry key in an offline registry hive.

dwFlags [in]

This parameter controls the behavior of the registry when a Create or Open operation fails on a key in a virtualized hive. This parameter can be one or more of the following values.

Value Meaning
If this flag is set and an Open operation fails on a key for which virtualization is enabled, the registry does not attempt to reopen the key. If this flag is clear, the registry attempts to reopen the key with the MAXIMUM_ALLOWED access.
If this flag is set and a Create Key operation fails because the caller does not have the KEY_CREATE_SUB_KEY right on the parent key, the registry fails the Create operation. If this flag is clear, the registry attempts to create the key in the virtual store. The caller must have the KEY_READ right on the parent key.
If this flag is set, registry virtualization flags are propagated from the parent key. If this flag is clear, registry virtualization flags are not propagated.


Return value

If the function succeeds, the return value is ERROR_SUCCESS.

If the function fails, the return value is a nonzero error code defined in Winerror.h. You can use the FormatMessage function with the FORMAT_MESSAGE_FROM_SYSTEM flag to get a generic description of the error.


Registry virtualization is an interim application compatibility technology that enables registry write operations that have global impact to be redirected to per-user locations. This redirection is transparent to applications reading from or writing to the registry.

Registry virtualization is supported starting with Windows Vista. However, Microsoft intends to remove it from future versions of the Windows operating system as more applications are made compatible with Windows Vista. Therefore, applications should not depend on the behavior of registry virtualization in the system.

Registry virtualization is enabled only for the following:

  • 32-bit interactive processes
  • Keys in HKEY_LOCAL_MACHINE\Software
  • Keys that an administrator can write to

For more information, see Registry Virtualization.


Requirement Value
Windows Offline Registry library version 1.0 or later

See also


Registry Virtualization