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 值。 有关可能值的列表,请参阅 ZwSetValueKey 的 Type 参数。
[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 |