RtlDeleteRegistryValue function (wdm.h)

The RtlDeleteRegistryValue routine removes the specified entry name and the associated values from the registry along the given relative path.


NTSYSAPI NTSTATUS RtlDeleteRegistryValue(
  [in] ULONG  RelativeTo,
  [in] PCWSTR Path,
  [in] PCWSTR ValueName


[in] RelativeTo

Specifies whether Path is an absolute registry path or is relative to a predefined key path as one of the following.

Value Meaning
RTL_REGISTRY_ABSOLUTE Path is an absolute registry path.
RTL_REGISTRY_SERVICES Path is relative to \Registry\Machine\System\CurrentControlSet\Services.
RTL_REGISTRY_CONTROL Path is relative to \Registry\Machine\System\CurrentControlSet\Control.
RTL_REGISTRY_WINDOWS_NT Path is relative to \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion.
RTL_REGISTRY_DEVICEMAP Path is relative to \Registry\Machine\Hardware\DeviceMap.
RTL_REGISTRY_USER Path is relative to \Registry\User\CurrentUser. (For a system process, this is \Users\.Default.)
RTL_REGISTRY_HANDLE Specifies that the Path parameter is actually a registry handle to use. This value is optional.

[in] Path

Specifies the registry path according to the RelativeTo value. If RTL_REGISTRY_HANDLE is set, Path is a handle to be used directly.

[in] ValueName

Pointer to the value name to be removed from the registry.

Return value

RtlDeleteRegistryValue returns STATUS_SUCCESS if the value entry was deleted.

Note that if RelativeTo is set to RTL_REGISTRY_HANDLE, the following occurs:

  • On Windows 98/Me and Windows NT 4.0, the routine closes the specified handle before returning.
  • On Windows 2000 and later versions of Windows, the routine leaves the handle open.


Minimum supported client Available starting with Windows 2000.
Target Platform Universal
Header wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
DDI compliance rules IrqlRtlPassive, HwStorPortProhibitedDDIs

See also