Метод 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, если вызов успешно задается с заданным ключом значения. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые возможные коды состояния возврата.

Код возврата Описание
STATUS_INVALID_PARAMETER
Указывает, что один из параметров, переданных методу, недопустим.
STATUS_OBJECT_NAME_NOT_FOUND
Указывает, что методу не удалось найти ключ именованного значения.

Комментарии

Если указанный ключ не имеет существующей записи значения с именем, соответствующим заданному значению ValueName, SetValueKey создает новую запись значения с заданным именем. Если имя совпадающего значения существует, эта подпрограмма перезаписывает исходную запись значения для заданного значения ValueName. Таким образом, SetValueKey сохраняет уникальное имя для каждой записи значения любого конкретного ключа. Хотя имя каждой записи значения должно быть уникальным для содержащего его ключа, многие разные разделы в реестре могут содержать записи значений с одинаковыми именами.

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть portcls.h (включая Portcls.h)
IRQL PASSIVE_LEVEL

См. также раздел

IRegistryKey

UNICODE_STRING

ZwSetValueKey