Поделиться через


Метод 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

Задает размер в байтах данных. Этот параметр указывает, сколько байтов данных метод будет копировать из буфера, на который данные указывает.

Возвращаемое значение

SetValueKey возвращает STATUS_SUCCESS, если вызов выполнен успешно при задании указанного ключа значения. В противном случае метод возвращает соответствующий код ошибки. В следующей таблице показаны некоторые возможные коды состояния возврата.

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

Замечания

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

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка portcls.h (include Portcls.h)
IRQL PASSIVE_LEVEL

См. также

IRegistryKey

UNICODE_STRING

ZwSetValueKey