RtlWriteRegistryValue 函数 (wdm.h)

RtlWriteRegistryValue 例程将调用方提供的数据沿给定值名称处的指定相对路径写入注册表。

语法

NTSYSAPI NTSTATUS RtlWriteRegistryValue(
  [in]           ULONG  RelativeTo,
  [in]           PCWSTR Path,
  [in]           PCWSTR ValueName,
  [in]           ULONG  ValueType,
  [in, optional] PVOID  ValueData,
  [in]           ULONG  ValueLength
);

参数

[in] RelativeTo

指定 Path 是绝对注册表路径,还是相对于预定义路径,如下所示之一。

含义
RTL_REGISTRY_ABSOLUTE Path 是绝对注册表路径。
RTL_REGISTRY_SERVICES 路径相对于 \Registry\Machine\System\CurrentControlSet\Services
RTL_REGISTRY_CONTROL 路径相对于 \Registry\Machine\System\CurrentControlSet\Control
RTL_REGISTRY_WINDOWS_NT 路径相对于 \Registry\Machine\Software\Microsoft\Windows NT\CurrentVersion
RTL_REGISTRY_DEVICEMAP 路径相对于 \Registry\Machine\Hardware\DeviceMap
RTL_REGISTRY_USER 路径相对于 \Registry\User\CurrentUser。 (对于系统进程,这是 \Users\。Default.)
RTL_REGISTRY_OPTIONAL 指定此参数和 Path 参数引用的键是可选的。
RTL_REGISTRY_HANDLE 指定 Path 参数实际上是要使用的注册表句柄。 此值是可选的。

[in] Path

指向绝对注册表路径或相对于 RelativeTo 参数指定的已知位置的路径的指针。 如果指定了RTL_REGISTRY_HANDLE标志,则此参数是已打开的项的注册表句柄,可直接使用。

[in] ValueName

指向要写入注册表的子项或值项的名称的指针。

[in] ValueType

指定确定 ValueName 参数类型的 REG_XXX 值。 有关可能值的列表,请参阅 ZwSetValueKeyType 参数。

[in, optional] ValueData

指向子项的名称的指针,或子项的值条目 (或两者都) 要写入注册表。

[in] ValueLength

指定要写入注册表的 ValueData 的字节数。

返回值

RtlWriteRegistryValue 返回操作的状态,STATUS_SUCCESS或错误状态。

注解

如果指定的键不存在,则例程将尝试创建该键。 要使此尝试成功,新密钥必须是 Path 参数引用的键的直接子项,并且 Path 引用的密钥必须已打开才能KEY_CREATE_SUB_KEY访问。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL

另请参阅

RtlCheckRegistryKey

RtlCreateRegistryKey

RtlDeleteRegistryValue

RtlQueryRegistryValues

ZwCreateKey

ZwOpenKey

ZwSetValueKey