ORSetValue function

Sets the data for the value of a specified registry key in an offline registry hive.


  _In_     ORHKEY Handle,
  _In_opt_ PCWSTR lpValueName,
  _In_     DWORD  dwType,
  _In_opt_ const BYTE *lpData,
  _In_     DWORD  cbData


Handle [in]

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

lpValueName [in, optional]

The name of the value to be set. If a value with this name is not already present in the key, the function adds it to the key.

If lpValueName is NULL or an empty string, "", the function sets the type and data for the key's unnamed or default value.

For more information, see Registry Element Size Limits.

Registry keys do not have default values, but they can have one unnamed value, which can be of any type.

dwType [in]

The type of data pointed to by the lpData parameter. For a list of the possible types, see Registry Value Types.

lpData [in, optional]

The data to be stored.

For string-based types, such as REG_SZ, the string must be null-terminated. For the REG_MULTI_SZ data type, the string must be terminated with two null characters.

cbData [in]

The size of the information pointed to by the lpData parameter, in bytes. If the data is of type REG_SZ, REG_EXPAND_SZ, or REG_MULTI_SZ, cbData must include the size of the terminating null character or characters.

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.


Value sizes are limited by available memory. Long values (more than 2048 bytes) should be stored as files with the file names stored in the registry. This helps the registry perform efficiently. Application elements such as icons, bitmaps, and executable files should be stored as files and not be placed in the registry.


Requirement Value
Windows Offline Registry library version 1.0 or later

See also