IRegistryKey::SetValueKey 方法 (portcls.h)
方法 SetValueKey
替换或创建打开键下的值条目。
语法
NTSTATUS SetValueKey(
[in, optional] PUNICODE_STRING ValueName,
[in] ULONG Type,
[in] PVOID Data,
[in] ULONG DataSize
);
参数
[in, optional] ValueName
指向包含要设置的值项的名称的字符串的指针。 名称字符串由 UNICODE_STRING 类型的结构指定。 如果值条目没有名称,请将此参数设置为 NULL。 如果调用方指定名称字符串,但给定名称相对于其包含键不是唯一的,则 方法将替换现有值条目的数据。
[in] Type
指定要为 ValueName 写入的数据类型。 将此参数设置为以下系统定义的类型之一:
REG_BINARY
REG_DWORD
REG_DWORD_LITTLE_ENDIAN
REG_DWORD_BIG_ENDIAN
REG_EXPAND_SZ
REG_LINK
REG_MULTI_SZ
REG_NONE
REG_SZ
REG_RESOURCE_LIST
REG_RESOURCE_REQUIREMENTS_LIST
REG_FULL_RESOURCE_DESCRIPTOR
ZwSetValueKey 中介绍了这些参数类型。
[in] Data
指向包含数据的缓冲区的指针。 此参数指向用户提供的适合函数的结构或值。
[in] DataSize
指定 数据的大小(以字节为单位)。 此参数指定方法将从 Data 指向的缓冲区复制 的数据 字节数。
返回值
SetValueKey
如果调用成功设置指定的值键,则返回STATUS_SUCCESS。 否则,该方法将返回相应的错误代码。 下表显示了一些可能的返回状态代码。
返回代码 | 说明 |
---|---|
|
指示传递给 方法的参数之一无效。 |
|
指示方法找不到命名值键。 |
注解
如果给定键没有与给定 ValueName 匹配的名称的现有值条目, SetValueKey
则创建一个具有给定名称的新值条目。 如果存在匹配的值条目名称,则此例程将覆盖给定 ValueName 的原始值项。 因此, SetValueKey
保留任何特定键的每个值条目的唯一名称。 虽然每个值项名称对于其包含项必须是唯一的,但注册表中的许多不同键可以具有具有相同名称的值项。
要求
要求 | 值 |
---|---|
目标平台 | 通用 |
标头 | portcls.h (包括 Portcls.h) |
IRQL | PASSIVE_LEVEL |